首页 > 解决方案 > 如何在我们的旧系统中使用 MPEG-DASH

问题描述

我有一个旧的视频分发原型,它允许用户在他们的设备上录制视频,将其(整个视频作为单个文件)上传到云,同时将其转码为特定格式,然后与其他设备共享玩。我们的用例是 1-2 分钟的用户自拍视频(所以不是电影,而且视频不是很长)。

现在我们想用自适应流(MPEG-DASH)升级我们的系统。我们需要对管道进行哪些更改?例如,我们需要分割视频(如何?),具有特定的持续时间(多长?),保留每个 segmnet 的各种质量版本(最好的方法?),适应播放等。

任何关于程序、需要做什么以及任何优化的指导都会有所帮助。

标签: videovideo-streamingvideo-processingmpeg-dashhttp-streaming

解决方案


您的问题非常广泛-我认为您基本上需要为 OTT 视频点播系统进行设计,但要解决您提出的各个问题:

例如,我们需要分割视频(如何?)

假设您的视频当前是 mp4,有多种工具可让您从中创建 DASH 清单和媒体片段,包括 ffmpeg:https ://ffmpeg.org/ffmpeg-formats.html#dash-2 。许多打包程序(见下文)也将支持这种类型的功能。

具有特定的持续时间(多长时间?)

段长度通常是延迟、编码开销和质量之间的权衡。这里有一个很好的总结:https ://bitmovin.com/mpeg-dash-hls-segment-length/

一般来说,如上篇文章所述,此时大多数应用程序选择 2-4 秒的段长度。

保留每个 segmnet 的各种质量版本(最好的方法?)

大多数视频流解决方案将使用源服务器来处理媒体流 - 如果您使用其中之一,那么它很可能适用于您的 DASH 文件。

对播放的适应

几乎所有标准的 HTML5、Android 和 iOS 播放器都支持 DASH 和自适应流媒体作为标准,因此您不必在播放器端开发任何自定义内容。

更笼统地说,大多数 OTT 视频解决方案通常同时支持 HLS 和 DASH 流协议。这是因为不同的设备和应用程序支持不同的协议,这提供了最佳覆盖范围。作为一个非常高级的一般规则,请注意有例外:

  • Android、Chrome 浏览器、Edge 浏览器 - 使用 MPEG DASH
  • iOS、Safari 浏览器 - 使用 HLS

出于这个原因,许多 OTT 解决方案将以“轮播”格式(例如 HLS)存储转码视频,然后根据需要即时重新打包到请求设备实际需要的任何内容(HLS 或 DASH)。'Just In Time' 打包程序用于此目的,这些打包程序通常与原始服务器结合使用。看一些例子:

还值得一提的是新兴的行业标准 CMAF,它有望统一 HLS 和 DASH 流媒体的大部分复杂性。由于不同设备上的加密支持存在一些差异,因此推出的速度不如预期的那么快,但值得了解和计划:https ://www.cta.tech/Resources/Standards/CMAF-IF


推荐阅读