【问题标题】:Fragmented mp4 cannot be played on pure html5 video碎片化的mp4不能在纯html5视频上播放
【发布时间】:2017-11-23 02:03:42
【问题描述】:

我需要使用视频标签在网络上投放超过 3GB 的视频。 页面加载时,媒体元素需要很长时间才能接收到'loadedmetadata event'

我发现moov box的尺寸太大了(33MB)。 因此,当我使用 'ffmpeg''empty_moov + frag_keyframe' 选项对其重新编码时,从 ' 中获取所有碎片信息也需要更长的时间Chrome 中的 Inspector - Network' 选项卡。

在播放带有 html5 视频标签的 'fragmented mp4' 时,有没有办法加速加载?

【问题讨论】:

标签: html video web ffmpeg streaming


【解决方案1】:

您没有提及将视频传送到浏览器时使用的协议,但分段 MP4 通常使用 ABR(自适应比特率)流协议传送。在撰写本文时,最常用的 ABR 协议可能是 HLS 和 DASH。

使用 ABR 允许客户端以较低的比特率开始,从而加快初始播放速度 - 然后它可以逐步提高不同的质量级别,以达到特定设备和当前网络条件的最佳质量。

您可以在大型流媒体服务中看到这种效果,其中视频质量在启动时会明显降低,然后在 10-20 秒后改善。在此答案中查看更多信息:

Bowsers 通常不支持带有 HTML5 标记的 ABR - 因此,您通常会使用基于 Javascript 的播放器,该播放器使用 HTML5 MSE(媒体源扩展)机制来支持 ABR。您可以查看开源示例,例如:

【讨论】:

  • 我不知道协议,但我知道在使用视频标签时它是一个http协议。无论如何,您的意思是,如果文件很大,则不使用 ABR 就无法开始快速播放。不管moov还是moof大小,视频文件大就不可能吗?
  • 一个支持流媒体的播放器通常会在它有标题信息以及它认为缓冲区中有足够的缓冲帧时开始播放,所以如果你的播放器和服务器支持某种形式的流媒体,HTTP, ABR 等然后视频长度并不那么重要。最初使用低比特率 ABR 只会让玩家在开始时更快地获取帧。
猜你喜欢
  • 2021-02-16
  • 2017-01-14
  • 1970-01-01
  • 2011-05-20
  • 2012-08-02
  • 2016-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多