sync是同步还是非同步_音视频是怎么保持同步的?(四)
今天我們來繼續(xù)講音視頻是怎么保持同步的。
常用同步策略
前面已經(jīng)說了,實(shí)現(xiàn)音視頻同步,在播放時(shí),需要進(jìn)行選定一個(gè)重要參考時(shí)鐘,讀取幀上的時(shí)間戳,同時(shí)企業(yè)根據(jù)的參考時(shí)鐘來動(dòng)態(tài)管理調(diào)節(jié)播放。它是目前已知的是,時(shí)間標(biāo)記PTS,那么參考時(shí)鐘一般有三種選擇:
將視頻進(jìn)行同步到音頻上:就是以音頻的播放速度為基準(zhǔn)來同步視頻。
將音頻同步到視頻:它根據(jù)視頻的播放速度對(duì)音頻進(jìn)行同步。
外部的視頻和音頻同步的時(shí)鐘:選擇外部時(shí)鐘參考,視頻和音頻播放的快時(shí)鐘作為標(biāo)準(zhǔn)。
音視頻是怎么保持同步的?(四)當(dāng)播放源比參考系統(tǒng)時(shí)鐘慢,則加快其播放速度,或者直接丟棄;快了,則延遲可以播放。
這三個(gè)都是最基本的策略,考慮到人的敏感度比視頻的聲音更強(qiáng),音頻調(diào)節(jié)將帶來不吸引人的體驗(yàn),而音頻播放時(shí)鐘線性增長(zhǎng),它通常是在一個(gè)參考音頻時(shí)鐘的時(shí)鐘,同步視頻音頻。
調(diào)整政策簡(jiǎn)單地阻止早期或晚期到達(dá)延遲或速度高達(dá)過程中,有時(shí)是不夠的。
對(duì)于從階段廣播,尤其是TS實(shí)時(shí)流,由于視頻解碼依靠第一I幀,和音頻可以是實(shí)時(shí)的輸出,這種情況可能出現(xiàn)更先進(jìn)的音頻視頻PTS PTS,同步這種情況下,它勢(shì)必導(dǎo)致更明顯的慢速同步。
音視頻同步簡(jiǎn)單示例代碼
代碼引用ffplay實(shí)現(xiàn),同時(shí)添加自己的修改?;鶞?zhǔn)時(shí)鐘同步到所述樣本代碼的音頻,視頻音頻:
獲取企業(yè)當(dāng)前要顯示的video PTS,減去上一幀進(jìn)行視頻PTS,則得出上一幀通過視頻應(yīng)該研究顯示的時(shí)長(zhǎng)delay;
當(dāng)前視頻PTS與當(dāng)前音頻PTS比較,音頻和視頻的diff之間的間隙的基準(zhǔn)時(shí)鐘;
獲取信息同步進(jìn)行閾值sync_threshold,為一幀通過視頻發(fā)展差距,范圍為10ms-100ms;
差分小于sync_threshold,認(rèn)為不需要同步;否則,延遲差分值是正確的延遲;正確的
如果不是sync_threshold多,背后的音頻和視頻,你需要減少延遲,從而使當(dāng)前幀顯示為盡快。
因?yàn)檫@很可能跟上視頻解碼,再怎么調(diào)整延遲是沒用的。
如果沒有超過sync_threshold,且視頻發(fā)展快于音頻,那么需要不斷加大delay,讓當(dāng)前幀延遲數(shù)據(jù)顯示。
音視頻是怎么保持同步的?(四)會(huì)延遲*2慢慢調(diào)整間隙,這是輕輕調(diào)整間隙,因?yàn)橹苯友舆tdiff,會(huì)讓圖片滯后。
如果很長(zhǎng)一段時(shí)間之前,視頻顯示器本身,所以直接到位延遲+DIFF步進(jìn)調(diào)節(jié),因?yàn)檫@種情況,然后慢慢調(diào)整并沒有太大的意義。
考慮到渲染的耗時(shí),還需進(jìn)行分析調(diào)整。frame_timer系統(tǒng)是一個(gè)時(shí)間顯示,frame_timer+對(duì)延遲curr_time,接下去的顯示時(shí)間延遲是必需的當(dāng)前幀的。
以上就是音視頻是怎么保持同步的全部?jī)?nèi)容啦。
總結(jié)
以上是生活随笔為你收集整理的sync是同步还是非同步_音视频是怎么保持同步的?(四)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真我GT Neo5两个版本配置参数曝光!
- 下一篇: 特斯拉2022年中国销量44万辆 还不敌