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

Beh*_*z.M 3 javascript http video-streaming mpeg-dash dash.js

我正在研究一个星期,找到一个简单且独立于平台的方法来将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

Sve*_*nov 7

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

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


小智 5

是的,有一个解决方案.dash.js只播放已打包的碎片mp4.然而,来自Telecom Paristech的Cyril的这个项目将做你想要的:

https://github.com/gpac/mp4box.js/

这是mp4box的js版本.它可以做的是将非碎片mp4动态转换为媒体片段,然后将其馈送到MSE sourceBuffer.他们有一个样本播放器可以执行此操作,您可以复制:

http://download.tsi.telecom-paristech.fr/gpac/mp4box.js/

干杯威尔