2016-02-12 53 views
0

如何管理由大量小视频组成的视频?例如,原始视频被拆分为1秒的视频,每个视频都以不同的字节速率提供,以便我可以根据当前的带宽选择每个部分。或者原始视频是360视频,并且可以在不同区域以更好质量提供的1s块中拆分,以便我可以将相应用户当前正在查看的块传输。html播放由大量排队小视频组成的视频

看来MPEG-DASH玩家解决这个问题的字节速率适配,即使他们可能做得更多。

这听起来并不复杂的和一帮HTML5视频在台式机+ JavaScript来做到这一点,与小心与什么是流时和处理过渡。但是,在手机上,我需要用户交互来加载视频并播放它。但我不希望用户每秒都用手机拍...

理想情况下,最终的东西会有一个非常类似于html5视频的api,有额外的可能性以定期选择流源。对我来说,它对移动设备非常重要。

很多谢谢!

回答

1

是,MPEG-DASH和HLS正在解决等等这个问题。

DASH和HLS玩家使用新的HTML5 Media Source Extensions API(MSE),就好像他们只是一个单一的文件播放多个视频片段。

移动是一个问题。 MSE适用于Android的Chrome浏览器,但请注意大多数Android手机附带的内置浏览器。他们是臭名昭着的缺乏功能。

不幸的是MSE不会对iOS工作。在iOS上唯一可用的是HLS。

大多数人都使用HLS,因为它在iOS设备上传播非常广泛,并得到很好的支持。 HLS在Android上也受到支持,尽管它可能会在某些设备上出现问题(正如你所知道的,几乎所有的硬件制造商也在制造Android手机,并且知道他们正在将哪些硬件放入手机中。而当谈到机顶盒的时候,更糟)。对于桌面浏览器,使用javascript HLS播放器,如hls.js(开源)或Viblast(商业版)。一些流媒体服务器以多种格式打包视频流--HLS,MPEG-DASH,rtmp,因此可以实现回退机制:如果支持HLS,请使用HLS,如果支持,则使用MPEG-DASH;如果使用的是旧版浏览器,则使用rtmp 。

一个DIY解决方案是有趣的事情,但你把它在大多数平台(移动和桌面)工作之前,你应该准备可能投入大量的时间。