-->

如何产生CMAF输出和测试回放

文章特色图片

我们一直在讨论通用媒体应用程序格式(CMAF),以至于有必要实际生成和测试一些CMAF输出. 这就是我们在本教程中要做的. 具体来说,我们将使用 AWS Elemental MediaConvert 并在一系列本机播放器,现成播放器和浏览器插件上测试播放. 

为什么选择AWS Elemental MediaConvert? 除了AWS Elemental在市场上的信誉, MediaConvert是一个基于云的编码器,任何拥有AWS账户的人都可以访问它来复制我们的测试. 除了, AWS Elemental MediaConvert有一个GUI,使其成为可视化教程的理想选择,还有一个应用程序编程接口(API),使其成为大批量生产的理想选择. 到这里为止, CMAF是足够成熟的,你应该能够得到类似的结果与几乎任何商业编码器, 云或其他. 

接下来要做什么

对于有TL;DR性格的读者(或者没有的人)?),让我来告诉你该怎么做,该去哪里. 当我第一次开始使用CMAF和AWS Elemental MediaConvert时, 我的目标是快速创建一些CMAF输出来测试各种玩家, 所以我使用了一个没有修改的系统CMAF模板. 一旦我发现这些文件与一系列现有播放器兼容(如本文后面所述), 我想创建一个自定义模板来生成我自己的编码阶梯.

考虑到至少有一些读者会想要复制这些操作中的一个或两个, 我制作了两个教程. Track 1从现有模板创建CMAF输出——没有混乱,没有大惊小怪. 然而,由于我只是简单地使用了一个模板,所以Track 1并没有探索cmaf相关的选项. 

在第2部分中,我从零开始创建了一个自定义Job模板,并探索了cmaf相关的选项. 如果从你的角度来看,这是“金钱内容”,那么就通过 图14. 

在深入了解AWS Elemental MediaConvert之前,让我们简要介绍一下CMAF. 

CMAF

简而言之,CMAF是分段媒体的标准 按照ISO/IEC 23000-19正式交付. 具体地说, CMAF uses the ISO Base Media File Format (ISO BMFF) container—with common encryption (CENC); support for H.264, HEVC, and other codecs; and Web Video Text Tracks Format (WebVTT) and IMSC1 captioning. 

不像破折号和HTTP直播(HLS), CMAF isn't a presentation format; it's a container format that 可以保存一组音频/视频文件吗, 具有用于多种表示格式和多种drm的清单文件. 向发布者分发多重自适应 比特率(ABR)格式,如HLS, 破折号, 光滑的流, 和Adobe HTTP动态流(HDS), 这使得CMAF成为流媒体的圣杯:一个可以分发到所有输出点的单一文件存储. 

也许解释CMAF的最好方法是显示输出,您可以在 图1. 从上到下,第一 .m3u8文件是编码阶梯中各个梯级的HLS媒体播放列表, 以TOS_1080p结尾.m3u8,这是您将链接以启动HLS播放的主清单文件. 下一个文件是TOS_1080p.mpd,单个破折号清单文件. cmfa (CMAF音频)和cmfv (CMAF视频)文件是由两组清单文件调用的单个音频和多个视频文件. 我将音频/视频内容制作为单个文件,通过清单文件中的字节范围请求检索, 这就是为什么每个梯级和音频文件只有一个文件的原因吗, 而不是为每个输出多个fMP4文件. 

Ozer CMAF图1

图1. 练习的对象:一组CMAF输出,用于分发到HLS和破折号端点

本教程中创建的输出没有DRM和广告插入, 所以它们代表了CMAF部署的最简单的测试用例, 但它适用于最广泛的读者群. 有关CMAF在短期内对不同类别的流媒体发布者的有用程度的更多信息, 请查看标题为“CMAF的状态:圣杯或只是另一种格式”的文章?” (go2sm.com/cmafstate).

因此,图1所示的文件就是练习的对象. 让我们开始吧. 

在AWS Elemental MediaConvert中生成内容

要在AWS Elemental MediaConvert中生成内容, 您需要一个AWS帐户和一个身份和访问管理(IAM)角色,以允许MediaConvert访问您的输入文件和您要访问的位置 存储您的输出文件(位.ly / aws_iam_mc). 一旦你 登录到AWS后,您可以选择MediaConvert 其他AWS服务. 基本操作由上面显示的三个概念控制 图2-作业、输出预设和作业模板:

  • Jobs选项卡包含medium - aconvert执行的所有作业. 访问此选项卡可以跟踪作业的成功和完成情况. 
  • 输出预设包含单个音频输出流的编码参数, video, 或音频/视频.
  • 作业模板包含多个Output预设,以形成完整的编码阶梯, 以及输出中支持的ABR格式的相关配置. 启动作业的最简单方法是选择一个现有的job模板并添加输入文件.

Ozer CMAF图2

图2. 在MediaConvert中生成作业包括作业、输出预设和作业模板.

注意,大多数MediaConvert客户使用 API来编码大部分生产作业. 因为API可以调用Job模板, 最佳的工作流程是在GUI中创建Job模板来测试兼容性和质量,然后在API中使用该模板. 因此,创建Job模板所花费的时间是值得的. 

议题1:概念的快速验证

生成CMAF输出的最快方法是选择CMAF Job模板, 添加输入文件, 选择输出位置, 输入您的IAM角色, 创造工作岗位. 按照以下步骤来完成. 

  1. 选择作业模板(图3). 单击图3左侧的Job templates, 然后使用作业模板下面的下拉框选择系统模板和ot - cmaf. 您将看到四个模板,AVC和HEVC各两个,一个是常量编码比特率(CBR)控制,另一个使用AWS Elemental的质量定义可变比特率编码 内容感知版本的VBR[可变比特率] ,你可以在(go.aws / 3 a8whcb). I 首先测试了顶部预设,这是AVC/CBR. 

Ozer CMAF图3

图3. 选择工作模板

选择AVC和CBR的顶部模板. 选择模板后,您将看到顶部显示的选项 图4. 单击“创建作业”. 

Ozer CMAF图4

图4. 使用系统作业模板创建作业

  1. 添加你的输入. 在“创建作业”屏幕中(参见 图5), 单击Inputs右侧的Add按钮创建Input 1,然后选择Input 1. 在右侧“输入1”下方,单击“浏览”打开AWS简单存储服务(S3)桶. 

图5a

图5. 选择输入文件

单击Browse后,MediaConvert打开Choose a location窗口,如图所示 图6 在下一页. 通过S3桶下拉列表选择S3桶. 如果单击搜索文件输入字段中的指针, MediaConvert将列出存储桶中的所有文件. 最简单的方法是输入你要找的文件的前几个字母. 在图6中,您将看到我键入了大写的T,以显示列表中显示的四个文件. 单击以选择所需的输入文件. 

Ozer CMAF图6

图6. 选择输入桶和位置

  1. 选择输出位置. 在图5的左中,单击CMAF打开CMAF组设置,如图所示 图7. 单击Browse,并为CMAF输出选择一个位置. 
  2. 选择您的IAM角色. 在Create job屏幕的左下方(图5), 单击Settings显示作业设置菜单 图8 (第94页). 在“IAM角色”下拉列表中选择“MediaConvert”. 
  3. 创建工作. 在Create作业屏幕的右下角,单击Create(图5中没有显示). If
    一切正常,屏幕将关闭 Media-Convert将把作业添加到Jobs列表中. 如果不是, Media - Convert是非常具体的错误,会让你知道你做错了什么,以及如何修复它. 

ozer CMAF图7

图7. 选择输出位置

Ozer CMAF图8

图8. 选择IAM角色

使用一个简短的测试文件,媒体转换将在你知道它之前完成. 使用您选择的S3百家乐软件管理器,将文件夹中的所有文件设置为公共文件,以便播放器可以 播放它们,然后单击其中一个主清单文件 在浏览器中启用S3 Explorer(参见 图9). 请注意,AWS提供了一个HTTPS URL,因此您可以使用需要HTTPS输入的播放器(如Bitmovin web测试播放器)进行测试. 还要注意的是 如果您在第三方百家乐软件管理器实用程序(如Cloud-Berry)中检索URL, 我一开始就是这么做的, 你会得到一个HTTP URL 你无法使用需要HTTPS的测试玩家进行测试. 

ozer CMAF图9

图9. 下面是来自基于浏览器的S3 Explorer的HTTPS URL.

图10 显示了在JW Player测试播放器中播放的HLS流, 音乐播放器守护程序(MPD)也在哪里播放. 唯一的问题是,如果您想从S3存储桶中播放视频, 你必须把你的十字架源百家乐软件共享(CORS)配置,在 go2sm.com/cors. 做完这些之后, CMAF文件在Bitmovin播放器(HLS和破折号)中播放成功, 我的iPhone 10 (HLS), 在微软 Edge (HLS), 在Chrome中使用 原生MPEG-Dash + HLS播放插件(HLS和破折号),所有这些都没有任何调整. 唯一不能用的播放器是THEOplayer, 尽管AWS Elemental正在与THEO Technologies就这一问题进行讨论, 我相信在你读到这篇文章之前,这个问题早就解决了. 

Ozer CMAF图10

图10. HLS输出在CMAF包播放在JW播放器测试播放器

曲目2:创建你自己的 自定义CMAF作业模板

由于时间和空间的关系,我们只能把接下来的部分简短而甜蜜. 在高层次上,制作自己的CMAF作业模板包括四个步骤:

  1. 创建预设.创建自定义预置的最简单方法是选择现有的Output预置这与期望的输出参数很接近,然后修改它. 例如,我想从CBR转到CBR 编码为VBR编码. 所以我找到了一个CBR模板 接近我的目标输出参数并将其更改为VBR. 一旦我有了预设定制的需要,我复制它,改变参数的需要 梯子的下一级, 然后冲洗和重复,直到我完成了所有的视频级别(我使用了一个现有的MediaConvert音频模板). 请注意,如果你 创建用于CMAF作业模板的预设,您可以 应该创建仅视频和仅音频的模板, 因为CMAF只适用于非混合音频和视频. 

浏览媒体转换的输出预设, 单击“输出预设”,在“输出预设”菜单中选择“系统预设”和“ot - cmaf预设”(如图3所示,但为“输出预设”)。. 您可以根据它们的 名称或描述. 点击 所需的输出预设为 加载它,然后单击“复制”以创建您的自定义 版本. In 图11,我选择了8Mbps 1080p CBR CMAF预设和转换 它到6Mbps VBR,留下所有 其他未修改的设置. 

Ozer CMAF图11

图11. 将CBR预设转换为VBR

一旦我写出了首字母 预设,我复制了它 创建了下一个梯级 梯. 我使用了96Kbps的音频预设,就像我的自定义作业模板一样. 

  1. 创建自定义Job模板.单击Job templates打开该选项卡,然后单击Create template. 这将打开中显示的屏幕 图12. 输入图右侧显示的General信息,以便稍后找到模板. 

Ozer CMAF图12

图12. 创建自定义CMAF模板

在图12的左中间,单击右边的Add 输出组的. 这将打开Add输出组 选择器(见 图13). 选择CMAF,然后选择. 您已经创建了CMAF作业模板. 

图13. 创建CMAF输出组

  1. 配置CMAF选项.一旦创建了CMAF输出组,MediaConvert将打开CMAF选项屏幕,如图所示 图14. 

Ozer CMAF图14

图14. 配置CMAF选项

选项如下:

  • 段控制-如果您选择单一文件, 您将为清单文件将通过字节范围请求访问的每个音频/视频输出输出单个文件. 如果您选择分段文件, 您将为清单将检索的每个段生成单独的文件.
  • 片段长度dash玩家可以在片段边界上切换流, 而不是等待一个片段的结束. 此选项设置片段持续时间, 它应该与i帧间隔的持续时间相同,或者是它的倍数.
  • 段长度-这是HLS和破折号的传统分段的持续时间, 哪个应该是相同的持续时间,或者是用于生成文件的i帧间隔的倍数 (我使用的GOP大小为2秒). 
  • 最小终段长度-使用0,除非调试玩家问题.
  • 写HLS表如果使用MediaConvert生成HLS清单文件,则启用. 
  • 写破折号舱单-启用如果使用MediaConvert产生您的破折号清单文件.
  • MPD舱单配置文件-使用Main,除非你的破折号播放器需要. 

单击Advanced获取超出本教程范围的高级HLS和破折号编码选项. 

  1. 添加自定义预设到模板,并保存模板.在图14左侧仍然选中CMAF的情况下,向下滚动,直到看到所有输出的列表(图15). 在右上方, 单击“添加输出”,直到所有视频和音频输出预设有足够的输出. 

Ozer CMAF图15

图15. 向Job模板添加输出

在CMAF下面的图14的左侧,应该列出所有输出. 单击每个Output打开Output设置对话框(参见 图16), 然后从下拉列表中选择一个预设,并键入名称修饰符, 您通常希望以下划线开头. 自定义预设是你在轨道2的步骤1中创建的那些. Name修饰符是文本 MediaConvert将在编码期间附加到源文件,以区分清单文件中的内容. 

Ozer CMAF图16

图16. 选择您的预设和名称修饰符

对编码阶梯中的所有梯级重复此任务, 并单击右下角的Create(如图12所示)来生成预设. 

创建后,您可以在作业模板选项卡(图17),并运行轨道1中描述的作业.

Ozer CMAF图17

图17. 以下是可用于生产的新Job模板.

流媒体覆盖
免费的
合资格订户
现在就订阅 最新一期 过去的问题
相关文章

RIST和CMAF将在2020年成为强大的力量

CMAF的状态:圣杯或只是另一种格式?

这是会议上的热门话题, 但部署方面的挑战意味着CMAF还没有接管流媒体世界. 这就是为什么它得到了如此多的关注.

视频:CMAF是唯一的包装格式吗?

微软的大卫·赛义德说, Imagine Communications的David Heppe说, 和Akamai的Will Law讨论了CMAF和包装格式的未来,这是他们在2019年流媒体东部会议上的小组讨论.

提及的公司及供应商