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