1. 封装格式与文件格式
视频和音频的原始数据量是很大的,这些数据在磁盘上存储需要更多的存储空间,同时在网络上进行传输也要更多的带宽,因此需要对原始音频和视频数据进行编码压缩。常用的视频编码格式有 H.264 和 H.265 等,音频编码则有 AAC, FLAC 和 WAV 等。
我们的视频文件中除了包含视频信息,通常也会包括音频和字幕等信息,需要将这些信息打包在一个容器中,也叫做封装格式。不同的类型的封装格式表示以其一定的规则
将视频,音频和字幕等其它信息进行组织排列在文件中,相应的组织制定了这些规则
。下面是一些常用的封装格式信息:
- MP4(MPEG-4 Part 14) 由 Moving Picture Experts Group 制定,该标准定义的文件扩展名为 .mp4
- QucikTime 由苹果公司制定,文件扩展名为 .mov
- RMVB(RealMedia Variable Bitrate) 由 RealNetworks 开发的 RealMedia 多媒体封装格式,文件扩展名为 .rmvb
平时看到的 xx.mp4 是文件格式,它的作用是让用户知道它是哪种类型的文件,让操作系统知道使用哪个软件打开。上面我们可以看到每一个封装格式都有其指定的扩展名,但是并不意味着一种封装格式只能有一种文件扩展名。比如虽然 MP4 file format 官方标准定义的唯一扩展名是 .mp4,但是第三方通常会使用其它扩展名来指示文件内容。当你修改了视频文件的扩展名时,也就是修改了文件的文件类型,但是文件的封装格式仍然没变,使用相应的播放器仍然能正常打开。播放器在进行播放时,会根据视频文件中的信息判断是哪种容器,而不是根据文件扩展名。
2. 流程
下图展示视频数据和音频数据从采集到封装的流程: