12

从 Chrome/Safari(最新和 Chrome Canary)开始播放 HTML5 视频需要相当长的时间。似乎需要在开始播放之前下载整个视频文件。

在 Firefox 18.0.2 (HTML5) 和 IE 8,9,10 (Flash) 中,播放几乎是即时的。

在 Chrome 中,我在使用时看到了这个问题:

我发现即使在 Chrome 中打开本地 mp4 (h264) 文件也需要很长时间才能加载:开发人员网络工具显示视频正在加载/挂起,在大文件上需要 10-15 秒。

供参考,这是一个视频: http: //mediaelementjs.com/

在开始播放之前下载完整的视频文件 (5MB)。这个小视频还不错,但是大文件却很痛苦。

我有两个问题:

  • Webkit 是否支持渐进式下载/播放?
  • 如果没有,是否有已知的解决方法?

谢谢

4

2 回答 2

12

正如福斯特所说,元数据块需要在视频的早期,这样视频就不必加载到它上面(如果它放在最后,可能需要加载整个视频)。

但是您不需要.exe来自产品网站的一些黑盒文件来移动元数据块。以下是如何使用 good old 来做到这一点ffmpeg

ffmpeg \
-i input.mp4 \
-codec copy \
-movflags faststart \
-f mp4 output.mp4

这会:

  1. -i input.mp4:input.mp4作为输入。
  2. -codec copy:按原样复制流(没有编码/解码步骤)。
  3. -movflags faststart:将元数据块移动到开头。
  4. -f mp4 output.mp4: 格式化为 MP4 文件并以名称输出output.mp4

链接到此处ffmpeg的完整文档。这里有各种平台的安装说明( Mac用户一个简单的就够了)。brew install ffmpeg

于 2018-02-09T10:30:08.813 回答
4

问题既不是编解码器也不是浏览器......

问题是您的视频文件中的元块!

大多数浏览器只有在下载了元数据后才能播放视频。一些编码工具将此元块放在输出文件的末尾,因此浏览器必须加载整个文件才能“查看”元数据。

解决方案:

http://rndware.info/products/metadata-mover.html

获取这个小工具,打开您的视频,让 MetaData 移动器发挥它的魔力。

不需要那么长时间,您的文件就可以流式传输了!

于 2015-07-10T12:23:26.273 回答