在视频播放器的开发中,有两个重要的概念——视频Track和音频Track,即视频流和音频流。“流”是个 抽象的词,用来表示“一连串的通过时间来串连的数据元素”。流中的数据元素称为 帧(frames)。 不同的流是由不同的编码器(codec)来编码生成的。编解码器定义 了流中的数据是如何被编码COded和解码DECoded的,因此它的名字叫做CODEC。 常用的编解码器有Divx和MP3等。从流中读出来的数据叫做包(packets),包是一 段数据,它包含了一段可解码成帧的数据,这些帧就是我们要在应用程序处理的东西 (如播放音频帧或视频帧等)。
每个包要么包含了一个完整的视频帧,要么包含了多个音频帧,这一点非常重要。
我们将实现这样一个流程:
1. 从一个.mp4文件中找到视频流并将它找开;
2. 从视频流中读取包到一帧中;
3. 如果未获取到一个完整的帧,跳转到2
4. 把当前获取到的完整帧保存成文件
5. 跳转到2,直到获取到10帧数据。