我已经研究了很多关于视频流和在网络上播放的当前状态。我发布了我已经总结的内容以及我认为我应该遵循的策略,以支持跨大多数设备和浏览器的自适应流媒体。如果我正在制定的策略有任何重大漏洞/改进,我只想得到社群的反馈。
概要
<video>
元素中播放视频,我们需要以至少3种格式WEBM,OGG和MP4对视频进行编码据我所知,在使用mpeg-dash时它的作用基本上是它创建了源文件中不同比特率的各种不同媒体文件和一个配置文件,其中包含有关哪个流的描述/规则根据带宽发送给客户端。
相同的逻辑适用于HLS,但它创建的配置文件具有与mpeg-dash不同的扩展名。
如果我计划支持3种不同分辨率的3比特率,例如1020 * 720,800 * 600,400 * 300的视频,那么我需要为我支持的3种格式中的每种格式生成这样的视频(即WEBM,OGG,MP4)
因此,对于客户上传的任何一个视频,我需要生成3 * 3 = 9个视频,同时生成.mpd和.m3u8文件以支持非Apple和Apple设备。
这似乎是一种好习惯吗?或者有什么大的东西我缺少一个跨浏览器自适应流媒体解决方案?
欢迎提示/建议/建议。
谢谢!
答案 0 :(得分:1)
你的方法听起来有关仪式。 Mac上的Safari现在支持媒体源扩展,因此对于DASH来说也是如此。但iOS仍然需要HLS。我希望iOS9会包含它,但到目前为止,没有运气。理论上可以使用VideoToolkit在iOS应用程序中进行DASH,但是苹果是否会允许这样的东西进入应用程序商店还有待观察。就个人而言,我会忘记webm,只支持h264 / aac。应完全忽略Silverlight和HDS。 Adobe和微软都在转向DASH。也可以通过用javascript编写的转换器在MSE中播放HLS。它有点复杂,但有一些球员可以做到。
答案 1 :(得分:1)
在这里,您可以看到有关MPEG-DASH和/或HLS支持的不同浏览器和平台的概述:http://www.dash-player.com/blog/2015/06/replacing-flash-adaptive-streaming-and-drm-in-html5/
我们通常并行生成MPEG-DASH + HLS内容,并使用MPEG-DASH(使用例如http://www.dash-player.com的HTML5或Flash)和使用HLS的10%到20%服务所有用户的约80%到90%。