0

如何管理由许多小视频部分组成的视频?例如,原始视频被分割成 1s 个视频,每个视频都以不同的字节率提供,这样我就可以根据当前带宽选择每个部分。或者原始视频是 360 度视频,并被分成 1s 块,这些块在不同区域具有更好的质量,这样我就可以流式传输与用户当前正在查看的位置相对应的块。

似乎 MPEG-DASH 播放器正在解决这个问题以适应字节速率,尽管它们可能做得更多。

使用桌面中的一堆 html5 视频 + javascript 来执行此操作听起来并不复杂,同时要小心流式传输的内容和处理转换。但是,在移动设备上,我需要用户交互来加载视频并播放。但我不希望用户每秒都点击他的手机......

理想情况下,最终的东西应该有一个与 html5 视频非常相似的 api,并有额外的可能性来定期选择流媒体源。它在移动设备上工作对我来说非常重要。

非常感谢!

4

1 回答 1

1

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

DASH 和 HLS 播放器使用新的 HTML5媒体源扩展 API (MSE) 来播放多个视频片段,就好像它们只是一个文件一样。

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

不幸的是 MSE 在iOS上不起作用。唯一适用于 iOS 的是 HLS。

大多数人都选择 HLS,因为它在 iOS 设备上传播得非常广泛并且得到很好的支持。Android 也支持 HLS,尽管它可能会出现问题,尤其是在某些设备上(如您所知,几乎所有硬件制造商也在制造 android 手机,谁知道他们在手机中放入了什么硬件。当谈到机顶盒时,事情就是这样更糟)。对于桌面浏览器,使用hls.js(开源)或Viblast(商业)等 javascript HLS 播放器。

一些流媒体服务器以多种格式打包视频流 - HLS、MPEG-DASH、rtmp,因此可以实现回退机制:如果支持 HLS,则使用 HLS,如果支持则使用 MPEG-DASH,或者对于真正的旧浏览器使用 rtmp。

DIY 解决方案很有趣,但您应该准备好投入大量时间,然后才能使其在大多数平台(移动和桌面)上运行。

于 2016-02-13T12:27:22.783 回答