[問題] 播放影片時 以audio為主的sync
最近用ffmpeg設計播放器時遇到問題
目前video和audio的同步 我採用以audio時間為主的sync方式 (感謝q大!)
我先取得目前audio播放的時間
以及抓取下一個video frame的present time
若兩者小於error 就renew video frame
若大於等於error 而且present time落後 就drop
否則不動作
(照理說 不可能drop 因為我檢查renew是每1msec就檢查一次 而error是20msec左右)
但在播放影片時 若注意看會發現影片有一點點跳格
追查原因 我發現qt(我用qt做gui)取得audio播放時間並非平滑的
而是以大約40ms在遞增
造成我有些frame會被drop掉
也有人問這個問題
https://bugreports.qt-project.org/browse/QTBUG-22592
https://bugreports.qt-project.org/browse/QTBUG-10759
但官方回答是很難抓到audio device真正的時間
我想問 是否每個framework都是這樣?還是只有qt抓不準?
如果都抓不準 有沒有什麼好方法解決上面問題?
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.24.49.107
※ 編輯: Arton0306 來自: 114.24.49.107 (06/08 21:09)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):