只有单个mp4文件的MPEG-DASH视频流

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (351)

我正在研究一个星期,找到一个简单且独立于平台的方法来将mp4文件流式传输到任何浏览器。在浏览器不兼容的情况下,将使用渐进流(直接下载)方法。我的情况是这样的:

  • 单个mp4文件(不分段和多路复用(音频+视频))
  • 支持HTTP字节范围服务
  • 浏览器不兼容时支持渐进式流(直接文件下载)

在研究Apple HLS,Adobe Flash Stream,Microsoft Smooth,RTSP和MPEG-DASH之后,似乎MPEG-DASH是正确的解决方案。但问题是MPEG-DASH迫使我将mp4文件拆分为单独的分段文件,这导致存储mp4文件的重复消耗空间,因为在浏览器不兼容的情况下我必须支持渐进式流。然后存储带有分段mp4文件的单个mp4文件是不可避免的。

问题是:有没有办法在任何浏览器中将单个 mp4文件作为http流渐进流提供?

MPEG-DASH协议表示它支持多路复用文件,但问题是dash.js不支持它。有没有其他javascript播放器支持带字节范围请求的多路复用和单个mp4文件?

任何其他提交我的场景条件的解决方案都受到欢迎。谢谢。

参考文献: BitCodin.com 1 BitCodin.com 2

提问于
用户回答回答于

我认为所有主流浏览器都支持mp4。http://caniuse.com/#feat=mpeg4。您可以使用一个好的旧http服务器来流式传输它。MPEG-DASH只有当您需要自适应比特率流,多语言,drm等花哨的东西时才需要。

如果您坚持使用,MPEG-DASH您可以使用服务器端的mp4box简单地分割您的mp4文件(您只需要执行一次)。结果不是多个mp4文件,而是一个更适合流媒体方式组织的单个mp4文件。

用户回答回答于

您可以使用单个mp4文件为dash player提供服务。但是,您需要将索引信息放在此mp4文件的sidx框中。你可以用bento4去做。实际上,对于ondemand情况,通常使用一个文件来传输。您也可以在本地下载此文件。如果您只有一个比特率,则短划分流不需要更多存储空间。并且有很多javascript播放器支持破折号像shakashaka播放器,dashif播放器......

扫码关注云+社区

领取腾讯云代金券