最近用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)