[时间:2016-06] [状态:Open]
首先说明一点,多媒体的容器格式(container),跟编码格式(codec)是不同的。通常多媒体容器是作为编码格式的载体,将至少一个编码格式的数据按照特定格式组织起来,并提供一些辅助功能。
多媒体的容器格式主要分为两大类:面向存储的和面向流媒体的。- 面向存储的常见的有avi、asf(wma/wmv)、mp4、mkv、rmvb(rm/ra)等
- 面向流媒体的常见的有flv、ts(通常需要配合网络协议,比如HLS、RTMP等)
学习多媒体容器格式的目的
主要是为了回答以下问题:
- 该容器中数据是如何组织的?
- 该容器包含哪些编码格式的数据?这些数据是如何存储的?
- 该容器包含哪些元数据信息?包含哪些节目信息?
- 对于支持多节目的容器格式,如何找到对应的音频流、视频流、字幕流?
- 如何确定该容器的节目播放时长?
- 如何从该容器中提取音频、视频、字幕数据,并交给解码器解码,有时间戳否?
- 该容器是否支持seek?有哪些辅助信息?
- 是否支持直接流化?
- 哪里可以找到该容器格式最标准的文档资料?
- 有哪些可用的工具,方便分析容器格式异常或者错误?
接下来详细展开的部分
至于流媒体传输协议部分(RTP/RTCP、RTMP、HLS、HTTP),后续会有专门的文章列表介绍。