一、最原始的音频、视频数据
视频就是一帧帧的原始帧,YUV格式,相当于一幅幅图像吧。
音频的原始数据,也是一帧一帧的原始帧。
二、对原始的音视频数据进行编码
视频编码,将YUV帧,按照某种编码标准(例如h.264、h.263等),进行编码。得到一帧帧该格式的数据帧。
音频编码,将原始帧,按照某种编码标准(例如aac),进行编码。得到一帧帧该格式的数据帧。
三、封装
将上一步的结果,封装到某种格式的文件(例如,后缀可能是.mp4 .mkv .avi .flv .ts等,后两种是流媒体格式)中,就能播放了。
因此,这些文件,也叫作容器。不同的文件后缀,就表示不同的容器类型。
因为播放的时候,音频、视频、字幕等多种媒体同时发生。因此,没有容器的话,要想同时展现多种媒体,还是很麻烦的。
有了容器后,编码后的帧,在容器中被按照某种特定的方式组织起来,播放起来就方便多了。
需要注意的是,编码格式与容器类型之间没有必然的对应关系。例如,某种容器,可能支持多种编码格式帧的包装;某种编码格式的帧,也可能被多种容器所支持。
原文:http://blog.csdn.net/crazycoder8848/article/details/19335335