【发布时间】:2018-06-09 16:33:52
【问题描述】:
给定一个普通的网络视频,例如:
<video src="my-video.mp4"></video>
如何生成它的音频波形?
不播放视频可以生成波形吗?
注意事项:
- 我对实现这一目标的可用 API 感兴趣,而不是“如何将波形渲染到画布”指南。
- 请使用纯 JavaScript。没有图书馆。
【问题讨论】:
标签: javascript html html5-video webrtc html5-audio
给定一个普通的网络视频,例如:
<video src="my-video.mp4"></video>
如何生成它的音频波形?
不播放视频可以生成波形吗?
注意事项:
【问题讨论】:
标签: javascript html html5-video webrtc html5-audio
你可以试试AudioContext.decodeAudioData,虽然我不知道视频媒体是否得到很好的支持,这可能很大程度上取决于编解码器和浏览器。
看到 FF、chrome 和 Safari 接受它并带有 mp4 和 mpeg4a 音频,我有点惊讶。
如果可行,那么您可以使用OfflineAudioContext 尽快分析您的音频数据并生成您的波形数据。
【讨论】:
如果您将使用网络音频 API,您将在客户端进行渲染。 您将无法控制体验质量,因为渲染可能会导致客户端出现内存和时间问题。 您可以在后端使用 FFmpeg 生成波形图像并将其传递到前端。 这很简单。
https://trac.ffmpeg.org/wiki/Waveform
示例: ffmpeg -i C:\test.mp3 -filter_complex "showwavespic=s=640x120" -frames:v 1 C:\waveform.png
【讨论】: