我研究了一个星期,以找到一种简单且独立于平台的方法来将 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 协议(protocol)说它支持多路复用文件,但问题是 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 文件。
关于javascript - 只有一个 mp4 文件的 MPEG-DASH 视频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35239044/