音視頻同步有三種方案:
同步音頻到視頻,同步視頻到音頻,或者都同步到外部時(shí)鐘(例如你的電腦時(shí)鐘)
IJKpalyer使用了ffplayer默認(rèn)的同步視頻到音頻??赡苡龅降膯?wèn)題是:
在開(kāi)始使用過(guò)程當(dāng)中對(duì)rtmp視頻流進(jìn)行播放,會(huì)出現(xiàn)嚴(yán)重的視頻音頻不同步現(xiàn)象,并且隨著播放的時(shí)間越長(zhǎng),視頻與音頻的差距越大。
解決方案
具體原因是CPU在處理視頻幀的時(shí)候處理得太慢,默認(rèn)的音視頻同步方案是視頻同步到音頻, 導(dǎo)致了音頻播放過(guò)快,視頻跟不上。

framedorp 控制著允許丟幀的范圍
可以通過(guò)修改framedrop的數(shù)值來(lái)解決不同步的問(wèn)題,framedrop是在視頻幀處理不過(guò)來(lái)的時(shí)候丟棄一些幀達(dá)到同步的效果。具體設(shè)置:
IJKFFOptions *options = [IJKFFOptions optionsByDefault];
[options setPlayerOptionIntValue:5? ? ? forKey:@"framedrop"];
framedrop的具體大小根據(jù)實(shí)際情況而定, 我這邊改成5就已經(jīng)能夠正常播放了。