如何编码和交付多种ABR格式
我最近在我的流媒体学习中心博客上发起了一项民意调查,询问DASH或HLS是当今部署的最佳自适应比特率技术. 我添加了一个评论选项, 我很高兴我这么做了, 因为有几个人很有见地, 其中一位受访者写道:“这不是一个选择问题, 您需要使用这两种方法来完全覆盖.”
这并不完全正确, of course; many producers are using HLS, 或dash——可以单独使用,也可以与其他技术协同使用——将内容传送给电脑和移动设备上的观众. 但关键是:大多数百家乐软件app最新版下载必须部署多种自适应比特率(ABR)格式,以达到他们的目标观众, 要么现在,要么近期. 这使得尽可能高效和经济地生产多个ABR包变得更加重要.
如何为直播生成多个ABR包是另一篇如何操作的文章的主题. 因此, this article focuses primarily on video on demand (VOD); specifically, 我将研究对多种ABR格式进行编码并将其交付到不同目标平台的最有效方法.
定义
像所有流媒体一样,在深入研究其背后的技术之前,学习术语会有所帮助. 让我们使用 图1,由a改编而成的图表 微软Azure关于动态打包的技术说明. 我们这里处理的是VOD内容, 所以视频开始时是一个单独的夹层文件, 一直到左边.
![传统的编码、包装和交付工作流程](http://dzceab466r34n.cloudfront.net/Images/ArticleImages/InlineImages/120251-Ozer-How-To-ABR-Fig1-ORG.png)
这个夹层文件被转码成多比特率MP4流,构成自适应组. 然后将这些文件打包(或转换)成块或分段视频文件和所有基于http的ABR格式所需的附带元数据文件的组合. ABR包被发送到一个或多个源服务器, 分发HLS (HTTP 在线直播。)资产到iOS和Android设备, 和DASH(通过HTTP的动态自适应流)到微软 Edge, Windows 10浏览器, 和谷歌Chrome浏览器.
图1还说明了通常称为静态交付的内容. 这是, ABR包被创建并存储在原始服务器上,以便分发给各种查看器. 在分发多个ABR包的上下文中,这种静态模式有几个缺点. 第一个, 当您决定支持其他ABR格式时, 您必须为整个库创建新包,并将它们上传到原始服务器, 这很耗时, 潜在的昂贵, 或两个. 例如, 尽管包装是一个非常轻量级的步骤, 大多数云编码提供商对额外的输出收取全价, 所以你会为MP4文件支付全价, 然后是HLS和DASH输出的全价. Zencoder是个例外, 将MP4文件转码为HLS输出只收取正常价格的25%, 这个折扣并不适用于DASH.
其次,在线存储成本将随着您支持的每一种额外的ABR格式而增加. 这两个缺点都可以通过一种称为动态打包的技术来解决.
动态打包
动态打包工作流的开始方式与静态工作流相同, 将夹层文件转换为多比特率MP4资产. 然后这些文件被上传到流媒体服务器,在那里一个单独的程序或进程动态地将MP4文件转换成请求设备所需的ABR格式. 使用示例请参见 图2,改编自Azure技术说明. 如果iOS或Android设备请求视频,将发送hls封装的视频. 如果微软 Edge或Google Chrome客户端请求视频,DASH将被发送. 取决于驱动转换的程序, 它可能能够生产其他ABR包装, 比如发送到Xbox的平滑流媒体内容. 毫不奇怪,这是Azure支持的一个特性.
![动态流发送MP4文件到源服务器](http://dzceab466r34n.cloudfront.net/Images/ArticleImages/InlineImages/120252-Ozer-How-To-ABR-Fig2-ORG.png)
动态流将MP4文件发送到源服务器, 它们在哪里为请求客户机动态打包.
对于支持多种ABR格式的用户来说,优势是显而易见的. 您可以通过更改服务器或播放器上的几行代码来启用对新格式的支持, 这样做不会增加存储负载和相关成本. 明显的缺点是执行打包的软件的成本(如果有的话), 因为有多种开源选项), 以及执行转码所必需的CPU使用, 虽然这可能比你想象的要低.
来解释, 封装在CPU上是一个非常轻量级的功能, 因为它不涉及真正的转码. 而, 打包只是转换文件的容器格式并创建任何必要的清单文件. In 其网站上有部署示例Wowza声称,一个单独的亚马逊云C3.8 xlarge实例, 哪一间租金只有8美元,每年300元(3年合约), 与Wowza流媒体引擎(每月65美元)相结合,可以将视频分发给多达1人,400名同时观看者. 虽然你的里程肯定会有所不同, 这些数字比将中等大小的内容库转换为新的ABR格式的成本要小, 无需与静态ABR组相关的存储和管理成本.
除了Wowza,还有多种产品或服务提供相同的功能. 例如, Elemental Delta是一款可以作为设备安装的产品, 作为VM例程, 或通过元素云访问, 而开源的基于nginx的MP4 Repackager是 可从Kaltura获得. 执行这些功能的服务提供者包括所有常见的嫌疑人:Akamai, 聚光灯下, 微软Azure, 和其他人.
如何选择供应商? 假设所有将执行基本包装功能良好, 虽然效率会因产品和服务提供商而异. 主要的区别在于更细微的地方——字幕, 数字版权管理, 还有广告插入——所以首先要检查这些方面. 例如,虽然Kaltura可能是许多用户的理想选择,但它不支持DRM.
格式支持是关键, 并且DASH支持在云上可用的所有流媒体服务器中尚未普及. 当然, 定价也将是关键, 还因为产品和服务提供者部署了不同的业务模型, 预算大量的电子表格时间来计算苹果与苹果的比较是很重要的.
实时云转码
那么实时转码和打包呢? This is every video producer’s dream; you upload and store one high quality mezzanine file to the web, 然后根据每个查看器请求的需要转码到所需的流和包. 虽然许多服务都在吹捧这种功能, 这是非常cpu密集的, 因此,转码成本肯定会消耗掉与存储相关的节省.
除了, Akamai, 这种方法的早期倡导者之一, 最近改变了方向, 发现所涉及的延迟, 特别是在用DRM转码和打包4K文件时, 字幕, 广告插入点, 可能很重要. 虽然这是一个值得关注的趋势,但要广泛的商业应用可能还需要2-3年的时间.
静态的包装
与动态包装相反的是静态包装, 在哪里输出所需的abr打包文件并将它们上传到原始服务器以进行分发. 如果你现在只支持HLS, 而不是DASH, 关键是要认识到您将在短期内生成DASH输出,并提前计划,以便减少编码费用.
具体地说, make sure that you’re not encoding to HLS in a single step; rather, 确保您的编码器首先生成MP4文件, 拯救他们, 然后生成HLS输出作为一个单独的步骤. 这种方式, 生成DASH文件的时候, 您的编码工具可以从以前编码的MP4文件工作, 而不是从头开始用夹层文件.
相关文章
如果你在传送实时视频流, 你可能希望将游戏发布到尽可能多的平台上. 这里有最好的硬件和软件来实现它.
2017年8月4日
许多公司在自适应比特率编码上花费太多. 事实证明,有一种昂贵的方法和一种更便宜的方法. 动态包装来拯救!
2016年12月2日
本节探讨了HEVC的现状, 确定使用HEVC编码直播和点播视频的选项,并讨论流媒体和OTT市场中的播放器选项.
2016年2月3日
是时候开始了. 下面是编码到H的最佳实践.265/HEVC与主概念和x265编解码器
2015年03月05日
如果你需要通过移动设备和OTT平台交付, 你需要提供HTTP 在线直播。 (HLS). 苹果为压缩者提供了很多建议, 但这里有一些编码和测试HLS文件的技巧和技巧
2014年3月6日
学习创建H的基本要素.264和WebM视频(当然,有一点更强调H.264比WebM).
2013年2月14日
1月时在这个长达一小时的演讲中解释了如何在苹果的移动设备上获得视频.
8月28日
提及的公司及供应商