问题描述:自己写的播放器, 总是在播放开始的时候卡住(大约是20%的概率),一帧一帧的播,不好找。卡顿的时候线程暂停。
为了实现自己的音视频同步
自己的音视频同步原理:
视频同步到音频上。
后来发现是因为缓冲区不够引起的,视频帧先被解析出来了,音频帧还在ffmpeg缓冲区里面,还没有出来。
而此时视频帧已经解码了60帧,所以锁卡死了读取文件线程。此时ffmpeg不再读取文件,也就不再有音频数据解析出来。
而播出线程由于同步的关系,播放视频帧缓慢,导致了ffmpeg不再解码文件。
于是成为了一个死结。
由于播放线程只是让视频帧播放的慢一点。而没有锁死,因此播放器才没有卡死。