要分清楚视频媒体文件格式(又称容器格式)和编码格式的区别:
前者是既包括视频又包括音频,甚至还带有脚本的一个集合;而文件当中的音视频的压缩算法才是具体的编解码。
比如说一个.avi文件,当中的视频可能 是编码a ,可能是b;具体用哪种编码的解码器,就要由播放器按照avi的文件格式读取信息去调用了。
多媒体文件格式一般都包含三部分:
1 文件头部分:说明了多媒体数据符合的压缩标准和规范信息,(规范信息包括分辨率,帧率,音频的采样率等)
2 索引部分:由于多媒体数据一般都是分块的,这些块之间的存储是不连续的,这时就需要存储索引。这部分记录来存储位置的偏移量,数据块的大小等。
3 多媒体数据部分:这部分是经过压缩的多媒体数据,包括音频,视频,字幕文本。
两个小概念:
pts:Presentation Time Stamp 主要用于度量解码后的视频帧什么时候被显示出来
dts:Decode Time Stamp 主要标示读入内存的bit流何时开始送入解码器中进行解码