封装格式
概念
封装格式(也叫容器)就是将已经编码压缩好的视频流、音频流及字幕按照一定的方案放到一个文件中,便于播放软件播放。一般来说,视频文件的后缀名就是它的封装格式。
封装的格式不一样,后缀名也就不一样。
这里视频Video:使用了H264/AVC压缩算法,音频Audio:使用了AAC压缩算法,封装则使用MP4封装格式。
常见的封装格式
AVI、MKV、MPE、MPG、MPEGMP4、WMV、MOV、3GPM2V、M1V、M4V、OGMRM、RMS、RMM、RMVB、IFOSWF、FLV、F4V、ASF、PMF、XMB、DIVX、PARTDAT、VOB、M2TS、TS、PS
H264+AAC封装为FLV或MP4是最为流行的模式
音视频同步概念
主要包括:DTS(Decoding Time Stamp)、PTS(Presentation Time Stamp)
DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。
PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。
在没有b帧的视频中,pts、dts是一致的,但是有b帧的情况的,就不同了,如下:
假如视频帧为:I B B P
Stream: I P B B
Stream: I P B B
DTS: 1 2 3 4
PTS: 1 4 2 3
音视频同步方式
Audio Master:同步视频到音频
Video Master:同步音频到视频
External Clock Master:同步音频和视频到外部时钟。
一般情况下 Audio Master > External Clock Master > Video Master