音视频同步有三种方案:
同步音频到视频,同步视频到音频,或者都同步到外部时钟(例如你的电脑时钟)
IJKpalyer使用了ffplayer默认的同步视频到音频。可能遇到的问题是:
在开始使用过程当中对rtmp视频流进行播放,会出现严重的视频音频不同步现象,并且随着播放的时间越长,视频与音频的差距越大。
解决方案
具体原因是CPU在处理视频帧的时候处理得太慢,默认的音视频同步方案是视频同步到音频, 导致了音频播放过快,视频跟不上。
framedorp 控制着允许丢帧的范围
可以通过修改framedrop的数值来解决不同步的问题,framedrop是在视频帧处理不过来的时候丢弃一些帧达到同步的效果。具体设置:
IJKFFOptions *options = [IJKFFOptions optionsByDefault];
[options setPlayerOptionIntValue:5 forKey:@"framedrop"];
framedrop的具体大小根据实际情况而定, 我这边改成5就已经能够正常播放了。