我正在一个需要向用户流式传输实时视频的网站上工作,因此,我不得不直奔当前基于浏览器的视频流技术的遗憾状态。目前,最流行的实时流媒体解决方案都存在兼容性问题。RTMP需要Flash,Safari和Chrome for Android仅本地支持HLS,DASH在任何地方均不受本地支持,使用dash.js需要Media Source Extensions,但尚未得到广泛支持。
这给我带来了一个显而易见的问题:是否可以使用简单的渐进式下载来替代需要浏览器支持或插件的HLS,RTMP和DASH之类的协议?
使用渐进式下载流式传输实时媒体的想法并不是前所未有的。人们已经将其用于音频。诸如liveCaster之类的工具可让您通过单个渐进式HTTP响应流式传输实时MP3音频,而无需预先录制的MP3文件,而AmplitudeJS之类的库已竭尽全力添加与这种实时音频流相关的功能。
不过,我还没有看到这种技术在视频中被广泛使用的任何实例,而且我也不能说出原因。似乎它将以较少的权衡消除一层混乱且困难的浏览器端兼容性问题。(即使是专业人士,兼容性仍然是实时流的一个巨大问题;如果我尝试在Firefox中BBC的iPlayer上观看实时视频,它只会给我一条错误消息,告诉我安装Flash。)这种技术,我从未见过有人提到我这个想法。
为什么?是否有基本限制(我看不到),使得它无法像正在生成的MP4一样通过渐进式下载流式传输视频文件,并在<video>
下载时在元素中播放?