前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >媒体容器新标准—CMAF

媒体容器新标准—CMAF

作者头像
用户1324186
发布2018-03-05 17:35:09
6.7K0
发布2018-03-05 17:35:09
举报
文章被收录于专栏:媒矿工厂

1. 视频流量持续走高

随着移动互联网的快速发展,数据流量呈现出爆发式的增长,互联网传输的视频流量也呈爆炸性增长,预计未来几年将持续增长。根据2017年思科预测,到2021年,如果要看完全球IP网络上每个月的视频,需要花费500多万年的时间,IP视频流量将占所有消费者互联网流量的82%,63%的总IP流量将转移到无线和移动设备,IP连接设备的数量将是全球人口的三倍。

图1 思科网络流量预测

如此良好的市场发展前景自然吸引了各个平台的争相竞争,中国网络视频服务市场空前繁荣,媒体、社交、电商等企业纷纷进军该行业,市场继续保持增长。

2. CMAF的提出背景

目前MPEG已经发布了几个规范来尝试解决这个问题,其中包括CMAF。CMAF是Common Media Application Format的缩写,由微软、苹果联合MLBAM、思科、Akamai和Comcast在2016年2月向动态图像专家组(MPEG)提出,并在今年7月被批准成为国际标准。CMAF是一种可扩展的编码标准,通过指定一致的媒体包装和加密来实现内容和设备之间的互操作性。

图2 CMAF标准

要理解CMAF如此重要的原因,可以首先了解视频如何传送。虽然今天几乎所有的流媒体视频都是使用标准化的编码技术进行压缩的,文件必须是包裹在另一层被称为“容器”的信息中。容器为这些文件添加时间信息,以便它们可以在目的地同步,以及一些额外的元数据 - 即关于文件包含的信息。而这些容器是不规范的。例如,苹果的HTTP实时流传输(HLS)协议将数据封装或封装成MPEG-2传输流(“TS”容器格式),而MPEG-DASH使用MPEG-4容器(“ISOBMFF”容器格式)。

这种差异意味着即使最终播放的实际媒体格式相同,由于不同的封装格式,需要创建不同的封装格式版本。OTT服务提供商必须在视频传输流之前这样做,在这种情况下,它需要大量的存储空间,因为需要创建和存储所有不同的版本,这需要额外的处理能力来在传输时重新打包和封装介质。

而CMAF是一个标准化的容器,可以同时容纳视频和音频文件,且并不会对现有编码格式进行任何改变。

图 3 CMAF 序列组成结构

3. CMAF系统模型

CMAF序列(CMAF Tracks)包含存储在CMAF指定的容器中的编码的媒体样本,包括音频,视频和字幕, 由一个CMAF头片段和其后的包含媒体样本的CMAF切片组成。CMAF序列包含存储在CMAF指定的容器中的编码的媒体样本,包括音频,视频和字幕,源自ISO基本媒体文件格式(ISOBMFF)。

CMAF切片(CMAF Fragments)可以独立解码和解密,并结合相关的CMAF头文件。

CMAF交换集(CMAF Switching Sets)包含可以在CMAF片段边界处切换和拼接的备选CMAF序列,以不同的比特率和分辨率自适应地流传送相同的内容。

CMAF选择集(CMAF Selections Sets)包含选择替代内容的可选CMAF切换集,例如,不同的语言或角度,可选的编码,或不同的编解码器。

CMAF可寻址媒体对象(CMAF Addressable Media Objects)被指定用于CMAF序列存储和传送,包括CMAF Chunks(小于CMAF切片),CMAF Segments(一个或多个CMAF切片)和CMAF Tracks Files(一个完整的CMAF Track)。

CMAF假设模型(CMAF Hypothetical Reference Model)定义了CMAF文件如何在CMAF播放器中传递,组合和同步CMAF序列,且允许任何兼容的实现,包括广播和MPEG-DASH自适应流媒体。

图 4 CMAF系统模型示意图

这样看来,CMAF格式与MPEG-DASH有着很多的相似点,但DASH需要MPD文件,CMAF却没有定义一个manifest文件。下面具体比较一下DASH和CMAF的结构区别。

图5 DASH协议文件组织结构

如图5所示,一个MPD文件包含多个periods,每个period可能包含多个adaptation sets且每个adaptation set可能包含多个representations,其提供了实际segment存放的URL地址。而CMAF中的presentation即相当于DASH中的period,但这在CMAF的定义中并没有任何概念。每个CMAF的presentation可能包含多个CMAF selection sets,例如编解码方式,字幕语言等。每个selection set可能包含多个track,并重命名为switching set。它的功能类似于DASH中的adaption set。DASH中的初始化切片对应的是CMAF中的Header文件。具体结构如下所示。

图6 CMAF组织结构

可以看出,CMAF将每个切片分成了更小的chunk单位,每个chunk结束后可以直接播放,可以实现降低延迟的功能。

4. CMAF特点解析

4.1通用加密性

CMAF对在不同的保护设备下不同的DRM系统使用通用性加密。与标准HTML5 API兼容,增强了应用程序的互操作性。

4.2.自适应性

CMAF定义可互操作的CMAF媒体配置文件。这些媒体配置文件指定解码和所需的编码和编码规则,以及确保动态自适应流所需的无缝跟踪转换的需求,交换集可以在CMAF切片边界处切换和拼接备选的CMAF序列,以不同的比特率和分辨率自适应地流传送相同的内容。

4.3可拓展性

CMAF是可扩展的。媒体配置文件可以通过引用标准的CMAF切片、序列和切换集来定义,这些格式在核心标准中定义,与媒体文件特定的编解码器以及ISOBMFF的编码相互约束。

4.4独立性

CMAF切片的编码和解码CMAF媒体资料独立于传输方法,可以独立解码和解密。

4.5低延时性

CMAF把每个切片切成更小的chunk单元,因此编码器可以在完成一个chunk单元后就传输给CDN和播放器去处理。既可以保证极低延时的传输,同时还不影响CDN缓存的效率,CMAF可以同时储存多种协议的播放列表,所以CMAF大大降低了编码和存储成本、提高了CDN的缓存效率,从而降低延时。

4.6无缝切换性

CMAF交换集控制各种单向的缓冲和译码器开关,使内容可以在大多数的设备和浏览器中无缝切换。

4.7兼容性

CMAF可以在数以亿计的网络设备上应用,例如Web浏览器中的播放器,或设备自带的播放器。该模型允许使用任何兼容的实现,包括广播和MPEG DASH自适应流媒体。

5. CMAF技术总结

CMAF切片编码允许随着每个CMAF切片完成编码和打包而逐渐递送CMAF片段请求,而不是等待对片段中的所有样本进行编码和打包。稍后的请求或未优化的系统将响应请求而接收单个片段。

CMAF规定每个CMAF片段包含解码所需的元数据,并根据CMAF序列、切换集、选择集和播放器的规则进行处理和播放。允许每个播放器在回放过程中选择和组合序列,在一个单独的CMAF序列中存储每个媒体组件,并指定如何对齐和同步CMAF序列。每个播放器可以选择并下载符合CMAF选择集的不同媒体内容,如各种语言、编解码器、比特率和视频分辨率,并针对不同的用户、设备和网络条件进行优化。

CMAF切片可由具有不同比特率,分辨率和编解码器的各种播放器使用播放。由于每个CMAF切片只被存储和缓存一次,因此可以更有效地利用网络带宽,存储和缓存。

CMAF采用了一种低延时chunk模式。目前的播放器需要拿到一段视频切片后才能播放,但CMAF可以把每个切片切成更小的chunk单元,因此编码器可以在完成一个chunk单元后就传输给CDN和播放器去处理。最终,这种方式既可以保证极低延时的传输,同时还不影响CDN缓存的效率,让其可以更好地去扩展,以减少实时流的显示延迟。

6. 前景期望

市场前景的看好便意味着竞争的日趋白热化,而视频的传输与播放质量将是OTT视频服务商生存和发展的关键。CMAF的出现也许为OTT视频的低延时传输带来了更光明的未来,随着视频终端商、分发商都开始支持CMAF,CMAF的使用或许也将成为OTT视频服务提供商成功的又一关键所在。CMAF通过创建一个标准的容器或封装格式来寻求突破,我们对这个新标准所期望的是,一个更加均匀的环境,一个能大大简化设置服务的新标准。

[1] Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update, 2016–2021 White Paper

[2] Common Media Application Format (CMAF)-MPEG White Paper

[3] What is CMAF? Threat or Opportunity? – Bitmovin Blog

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档