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

标签 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 协议(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/

相关文章:

swift - tvOS:AVPlayer 音频播放但没有视频

javascript - 如何使用 javascript 删除辅助谷歌日历

http - Nginx proxy_cache_key $request_body 被大请求体忽略

javascript - 在轮播中使用视频

javascript - 使用 express 和 fetch 获取 POST 请求正文

iphone - 显示来自 iOS 本地服务器的动态网络内容(即使用浏览器作为远程屏幕)

ios - iOS视频里面没有声音

ffmpeg rtp 流错误 : RTP: dropping old packet received too late

javascript - 双向绑定(bind)不在 ng-repeat 中更新

java - 传递给 servlet 的 JSP 表单值