前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >容器格式的乐趣 第一章:术语的介绍

容器格式的乐趣 第一章:术语的介绍

作者头像
用户1324186
发布2019-07-31 16:53:03
9250
发布2019-07-31 16:53:03
举报
文章被收录于专栏:媒矿工厂媒矿工厂

本文为媒矿工厂编译的技术文章

原标题:Fun with Container Formats – Part 1

作者:Armin Trattnig

翻译整理:陈晋进

基础术语的说明

编解码器(codec)能够以二进制形式存储媒体信号,大多数编解码器以有损方式压缩原始媒体信号。最常见的媒体信号有视频,音频和字幕。电影由不同的媒体信号组成,除了动态影像之外,大多数电影都有音频和字幕。视频编解码器有H.264,HEVC,VP9和AV1等,而音频的编解码器则有:AAC,MP3或Opus等。每个媒体信号有许多不同的编解码器。单个媒体信号通常也称为基本流(ElementaryStream)或仅流(just Stream)。

图1 容器

何为容器格式

容器格式即二进制元文件的格式规范,用于描述不同的多媒体数据元素(流)和元数据(metadata)在文件中共存的方式。

每个容器格式都提供以下内容:

  1. 流封装:这使得一个或多个媒体流可以存在于一个文件中。
  2. 定时/同步:容器中包含有用于同步文件中的不同流的数据。例如,视频流中的唇部运动与音频流中的语音同步的时间戳就是这种数据。
  3. 寻访:容器提供了能跳转到电影的时间点的信息,例如当观众只想观看整部电影的一部分时,可以借此跳到不同的世界。
  4. 元数据:元数据有许多种类。容器格式能将它们分别整合到电影中。例如音频流的不同语言的语音与字幕等

常见的容器格式有MP4,MPEG2-TS和Matroska,它们都是不同的一些视频和音频编解码器。每种容器格式都有其优点和缺点,反映在兼容性,文件大小等方面。

更多的术语

图2 更多的术语

编码(encoding)将原始媒体信号转化为适用特定编解码器的二进制文件。例如,将一系列原始图像编码到H.264格式。

而如果有人想要查看编码视频,他们需要解码(decoding)H.264编解码器流以获得实际可视图像。

从一个编解码器转换到另一个(或相同的)编解码器称为转码(transcoding)。转码将执行解码和编码两个步骤,先对源编解码器流进行解码,然后再将其使用目标编解码器流进行编码。

将一个或多个编解码器流放入容器格式称为多路复用(muxing)。

而从容器格式中提取编解码器流称为解复用(demuxing)。

从一种容器格式中提取流,并将它们放在不同(或相同)的容器格式中称为转复用(transmuxing)。

互联网服务(OTT)中的容器

容器在数字媒体的几乎任何领域都有应用。例如用户使用智能手机录制视频时,捕获的音频和视频都存储在一个如MP4的容器文件之中。互联网之中的媒体流也是一个例子。在所有的过程,容器都负责处理媒体数据。在内容生成之后,编码的媒体数据经多路复用打包到容器中,然后根据客户端设备在另一端的请求通过网络传输,而后容器被分解为几个编码数据,最终经解码,内容被呈现给用户。

图3 互联网服务(OTT)中的容器

元数据提取

在客户端处,播放器首先需要从容器中提取有关媒体的一些基本信息,例如,片段的播放时间,持续时间和编解码方式。

此外,容器中经常存在有元数据,而大多数浏览器都不能直接提取或处理元数据,因此,播放器需要进行一些适当的处理。例如对于CEA-608/708字幕或者带内事件(fMP4的emsg box)等情况,播放器必须从媒体容器格式解析相关数据,跟踪时间线并在正确的时间进一步对数据进行处理(比如在合适的时间显示正确的字幕)。

图4 元数据提取

客户端处的转复用

浏览器通常缺乏对某些容器格式的支持,例如Chrome,Firefox,Edge和IE都没有(完全)支持MPEG-TS容器格式。MPEG传输流格式则专门用于数字视频广播(DVB)的应用,将在之后的篇章详细讲述。由于MPEG-TS仍然是常用格式,唯一的解决方案是将媒体从MPEG-TS转换为这些浏览器支持的容器格式(即fMP4)。在将内容转发到浏览器的媒体堆栈以进行解复用和解码之前,可以在客户端完成此转换步骤。它基本上包括解复用MPEG-TS,然后将基本流重新多路复用到fMP4。这个过程通常被称为转复用。

图5 客户端处的转复用

总结

本文翻译自Bitmovin博客上的《Fun with container formats》系列博文的第一篇,这个系列总共有三篇,分析四种最常见的容器格式及其重要性。这篇介绍了容器格式的术语以及播放器的处理方式。

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

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

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

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

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