什么是CMAF(通用媒体应用格式)?CMAF工作原理及优缺点

在开发直播或视频点播 (VOD) 应用时,您可能需要它在多种设备上运行,同时尽量减少延迟或其他可能导致用户转向竞争对手的问题。开发这样的应用要困难得多,因为需要付出双倍的努力才能使用一种协议覆盖 Apple 设备,使用另一种协议覆盖 Windows 和 Android 设备。通用媒体应用格式(CMAF) 是让这一难题不再那么棘手的原因之一。

什么是CMAF(通用媒体应用格式)?CMAF工作原理及优缺点

什么是CMAF(通用媒体应用格式)?

CMAF,全称 Common Media Application Format (通用媒体应用格式)是通过基于 HTTP 的不同流媒体协议编码和传输媒体的标准。它于 2018 年发布,旨在提高兼容性并降低成本。

由于 Flash Player 的生命周期即将结束,RTMP 将逐渐被取代,基于 HTTP 的流媒体协议变得更加普遍。

2010 年代初,苹果公司专有的 HLS 和运动图像专家组(MPEG)的开源 MPEG-Dynamic Adaptive Streaming over HTTP(MPEG-DASH 或简称 DASH)开始普及。与 Flash Player 和 Apple 的 QuickTime 中使用的协议相比,它们提供了更好的性能。HLS 是 Apple 设备首选的协议,而 Microsoft 和 Android 平台大多使用 DASH。

当时,HLS 使用 .ts 格式,而 DASH 使用标准的 .MP4 和 fMP4 格式。这就需要为每个媒体片段编码和存储两个文件,成本增加了一倍。

微软、苹果和 MPEG 联手创建了 CMAF,使 DASH 和 HLS 能够共享一种通用的容器格式,从而提高了互操作性。CMAF使用了基于ISO的媒体文件(ISOBMFF)容器和常见的加密方式(CENC)。其支持H.264,HEVC和其他编解码器,以及网络视频文本跟踪格式(WebVTT)和IMSC-1字幕。不像DASH和HLS,CMAF不是一种表现格式,它是一种容器格式,可以包括一组音视频文件和用于多种表示格式和DRM的清单文件。

CMAF 如何工作?

CMAF 使用两步流程来简化内容交付:

  1. 分块编码:CMAF 的开发目标是减少延迟,这是全行业的目标,借助分块编码和分块传输编码过程可以实现。它本质上涉及将数字内容分割成更小、更易于管理且具有固定持续时间的块,这些块可以在编码后无延迟地发布。通过这种方式,内容发布者可以实现近乎实时的内容交付,因为编码过程会逐步处理视频块。
  2. 文件加密和数字版权管理:与视频流行业中存在的不同媒体格式不一致的问题类似,还有另一个需要解决的不兼容性问题——文件加密和数字版权管理 (DRM)。随着越来越多的内容在线发布,需要使用 DRM 和文件加密软件保护版权持有者的权利,以防止内容遭到未经授权的访问、分发和修改。CMAF 支持大多数主要的 DRM( FairPlay、PlayReady和Widevine ) ,因此可以有效地支持加密系统。

低延迟 CMAF

由于视频流不再需要进行两次编码和存储以促进自适应比特率流式传输,因此它减少了对其他程序的依赖并简化了流式传输工作流程。通过这种方式,CMAF 有效地消除了延迟问题并确保快速交付视频内容。

CMAF 的规格

以下是 CMAF 的技术规格:

什么是CMAF(通用媒体应用格式)?CMAF工作原理及优缺点

CMAF 有哪些优缺点?

每种流媒体方法都有其独特的优点和缺点。CMAF 具有成本效益,可帮助开发人员将内容大规模交付到许多平台,但它在复杂性、旧设备以及需要实时流式传输时可能会出现一些问题。

优点

HLS 和 DASH 采用统一的标准化格式,这意味着用户可以在您的应用程序或网站上观看视频和流媒体,而无需重复。标准化简化了跨平台兼容性并降低了成本。

通过分块编码和分块传输编码,CMAF 能够实现低延迟性能。用户无需长时间等待播放器加载分块,从而减少了缓冲的可能性。

它使用的 ABR 支持广泛的用户连接。您的用户可以在家中或旅途中进行流式传输。质量将根据带宽可用性进行调整。

缺点

低延迟并非 WebRTC 所提供的超低延迟(ULL)。它不能实现毫秒级的延迟,因此在某些需要实时交互的使用案例中,如在构建视频聊天应用程序时不是一个好的选择。

使用 CMAF 时,您需要使用两种协议。这会增加编解码器、字幕和隐藏字幕格式、加密和数字版权管理(DRM)方面的复杂性。

它与大多数现代平台兼容,但早期的设备并不支持,而且有些设备可能无法接收新功能所需的更新。例如,任何低于 iOS 和 tvOS 10.0 或 MacOS 10.12 的 Apple 设备都不太可能兼容。如果用户群使用的是较旧的设备,就需要进行复制,这可能会降低或完全抵消因降低编码和存储成本而节省的费用。

CMAF 与 HLS、DASH、RTMP 和 WebRTC

虽然 CMAF 本身不是一种协议,但值得将其与一些流行协议进行比较,包括 HLS 和 DASH:

  • HLS:虽然 HLS 与其他没有 CMAF 的容器兼容,但通常使用 MPEG-2 传输流 (.ts) 容器。这是 Apple 设备上主要使用的流媒体协议。
  • DASH: DASH 已经主要使用了 fMP4 格式,但如果不遵守此标准,碎片化就会有所不同。它是 Windows 和 Android 设备上最常用的流媒体协议。
  • RTMP:基于传输控制协议 (TCP),Macromedia(后来被 Adob​​e 收购)创建了 RTMP。它的弃用为 CMAF 的创建奠定了基础。您可以使用 RTMP通过 WebRTC以及 HLS 和 DASH 进行摄取,无论是否使用标准。
  • WebRTC: WebRTC 是一种 P2P 协议,而 DASH 和 HLS 协议使用 HTTP。使用对等连接使其能够实现 ULL(亚秒级延迟),但如果不使用多点控制单元(MCU) 或选择性转发单元(SFU),则无法处理大量受众,这需要额外成本。

何时使用 CMAF?

在流媒体方面,CMAF 有两个强大的用例:在多个平台上以最小的延迟进行流媒体传输,以及进行扩展以适应大量观众。

您希望在各种平台上实现低延迟性能

它与几乎所有现代设备兼容。大多数用户无需下载特殊播放器或其他编解码器即可登录您的网站或应用并访问您的视频。

ABR 和分块编码可防止用户长时间缓冲,让他们可以不间断地观看。您的内容创建者和流媒体无需担心因等待视频加载而失去观众。

您需要接触大量的受众

如果您的应用拥有大量受众,则 CDN 的边缘服务器将能够更快、更高效地向您的用户提供视频和直播。分块编码也有助于以最小的延迟覆盖这些更大的受众群体。WebRTC 提供 ULL,这让它看起来像是直播的默认选择,但由于其 P2P 特性,扩展成为一个问题,如果不付出大量成本,其效率就会降低。

常见问题

MP4 和 CMAF 有什么区别?

CMAF 是一种编码和流媒体标准。MP4 是一种最常用于视频和音频的容器格式。它还可以存储其他内容,如章节信息、交互式菜单、字幕和说明文字。遵循此标准的协议使用 MP4 的变体,称为分片 MP4。

在流式传输过程中,CMAF是标准,HLS或DASH是协议,fMP4是格式。

CMAF 和 LL HLS 有什么区别?

CMAF 是适用于协议的标准。Low latency HTTP Live Streaming (LL HLS) 是 Apple HLS 协议的低延迟变体。

您可以以与此规范兼容的方式配置 LL HLS,但这不是必须的。它也可以像常规 HLS 一样使用 .ts 文件容器。

哪些公司使用 CMAF?

许多提供 VOD/OTT 流媒体和直播的公司都在使用它。一些著名的公司包括 Netflix、Hulu、Disney+ 和 Twitch。

CMAF 是否与所有流媒体设备兼容?

它通过 HLS 或 DASH 与近年来的大多数技术兼容。支持 CMAF 的平台包括:

  • Google Chrome
  • Firefox
  • Safari
  • Microsoft Edge
  • Apple devices
  • Windows devices
  • Android devices
  • Xbox One and Xbox Series S/X
  • 等等

其他基于 Chromium 的浏览器应该能够运行它,但可能需要进行一些调整。由于设置阻止了第三方 cookie 或 Widevine 等数字版权管理 (DRM) 系统,一些 Brave 用户在使用基于 CMAF 的流媒体服务时遇到了问题。

CMAF如何提高内容分发效率?

CDN 无需缓存两个文件,只需缓存一个可进一步细分为块的碎片化 MP4。这节省了存储和编码成本,并为内容观看者带来了更快、更无缝的交付过程。CMAF 切换集和 ABR 使不同比特率之间的切换更加顺畅,以适应观看者的带宽可用性。

CMAF支持哪些视频和音频编解码器?

支持 H.264/AVC、H.265/HEVC、VP9 和 AV1视频编解码器。您可以使用 AAC、HE-AAC、AC3 和 EAC3 作为音频编解码器。

CMAF支持哪些加密和 DRM 选项?

可以通过高级加密标准计数器 (AES-CTR)“cenc”模式或 AES 密码块链接 (AES-CBC)“cbcs”模式使用 CENC 进行加密。对于 DRM,它支持 Widevine、PlayReady、FairPlay 和 ClearKey。加密和 DRM 都发生在段级别。

CMAF 如何处理字幕和说明文字?

CMAF 支持使用 IMSC 和 WebVTT 格式的字幕以及 CEA-608 和 CEA-708 格式的隐藏式字幕。请记住,所使用的协议可能不支持所有这些格式。例如,HLS 仅支持 IMSC1 文本配置文件,而不支持其图像配置文件。

使用 CMAF 有什么限制吗?

它只能承受大约五秒的延迟,但不能低于一秒。这意味着,虽然它适合不会受到几秒钟延迟影响的点播 服务和直播,但它不适合实时通话或对延迟更敏感的直播需求。

如果有大量用户使用旧设备,还可能会出现兼容性问题。

潜在的成本节省有哪些?

从理论上讲,它消除了重复的需要。如果一家公司之前一直在使用没有 CMAF 的 HLS 和 DASH,那么在实施 CMAF 后,他们将在这方面的成本降低一半。然而,情况并非总是如此。

实际上,如果公司支持旧设备并且不能总是使用 CMAF,他们可能需要存储重复项。仍然可以节省成本,只是不如纯 CMAF 实施那么多。

原创文章,作者:ZEGO即构科技,如若转载,请注明出处:https://market-blogs.zego.im/reports-baike/2170/

(0)
上一篇 3月 13, 2025 8:19 上午
下一篇 3月 18, 2025 8:03 上午

相关推荐

发表回复

登录后才能评论