地址 http://blog.csdn.net/henryjee/article/details/6774417
PTS和DTS
接触FFMPEG应用程序时间不长,一共8个tutorial,现在看到了第5个,花的时间最长,理解也是最难的。里面首先把电影文件分为audio和video,其中每个packet都有相应的pts,audio是通过声卡时钟自动同步,audio的pts的作用是来同步视频的。
audio和video都有一个统计播放总时间的变量,即audio_clock和video_clock,ffmpeg-tutorial05就是通过比较这两个clock来调整当前视频帧的延迟时间,从而达到音视频同步的效果的。
幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频,那么就很有可能会失去同步。于是作为一种补充,在流中的包有种叫做DTS(解码时间戳)和PTS(显示时间戳)的机制。为了这两个参数,你需要了解电影存放的方式。像MPEG等格式,使用被叫做B帧ÿ