5.1 概述
视频信号和音频信号都有各自的压缩编码标准,如视频信号的MPEG-2、H.264和H.265,音频信号的 MP3 和 AAC。一路音频信号或视频信号在编码之后会生成各自的编码数据流,又称为基本流(Elementary Stream,ES)。一方面,一路基本流中只包含一路媒体数据,即通常不可能将两路不同的媒体信息流编码到一路基本流中。另一方面,在多数场合下,媒体信息在播放过程中会同时播放多路媒体流(部分场景除外,如音乐播放器可能只播放音频流,无视频信息;而在安防监控等场景中可能只有视频信号,无音频信息)。多路媒体流的参数事实上是相互独立的,因此可能造成在播放或处理时进度不同步等问题,影响使用体验。
为了解决多路音视频流的同步问题,基本流在经过处理后会复用到一个文件或数据流中。该文件严格按照规定的某一种数据格式包含了视频码流数据、音频码流数据和音视频同步信息,以及可能包含的字幕流数据、分集信息和元数据(如发行商、语言、演员信息)等。在复用后的文件中,信息的组织形式即为文件容器格式(File Container Format),又称作文件封装格式。文件封装格式除用少量的数据说明媒体信息的编码标准和基本参数外,不包含音视频数据在编码过程中的细节信息,其主要作用是组织容器中不同的基本流的保存和播放,以保证播放过程的同步。
不同的文件封装格式通常以媒体文件的扩展名进行区分,目前常见的音视频文件格式如下。
◎ FLV格式:Adobe公司制定的媒体封装格式,其数据结构十分简单,时间同步信息和数据包大小并不统一保存在某特定单元中,而是随着音视频媒体数据包进行传输,因此特别适用于直播和流媒体等场景。
◎ MPEG-TS格式:源自MPEG-2标准中制定的用于数字电视广播等场景的“传输流(Transporting Stream)”格式。作为基本的封装格式,在HLS(Http-Live-Streaming)等传输协议中得到广泛应用。
◎ MP4格式:其应用最为广泛,适用于视频点播、存储等场景;支持编码协议可扩展,还支持H.264或H.265等编码标准。
◎ MKV格式:开源文件封装格式,扩展性最强,广泛用于超高清视频文件等场景。
◎ AVI格式:音视频交错格式(Audio-Video-Interleaved)的简称,由微软公司制定,常用于影视光盘。
◎ 其他格式,如RealMedia、3GP、Ogg等。
在上述诸多媒体封装格式中,FLV格式、MPEG-TS格式和MP4格式的应用相对较为广泛,本章重点介绍这三种格式。