定时器_Qt定时器小坑
生活随笔
收集整理的這篇文章主要介紹了
定时器_Qt定时器小坑
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天在做音視頻合成功能,由于Qt的定時器精度問題,導致視頻合成有問題。
??視頻合成是采用FFmpeg實現的,將h264視頻和aac視頻合成到mp4容器中。音頻寫入到mp4容器驗證過是正常的,但視頻寫入到mp4容器中,播放出來總是過快。查看了些資料,一般說是pts的問題,也按著官方文檔去做,還是不行。
??使用ffprobe工具統計總幀數卻意外發現與預計幀數不一致。10秒的視頻設置每秒15幀,共150幀。實際視頻只有120幀,就納悶了輸入15幀/秒最后視頻合成達不到15幀/秒。
??最后定位到是QTimer的精度問題,視頻的輸入是通過定時器定時往隊列里面拿的,比如設置20幀/秒,那么定時器就會每50ms觸發一次??戳薗Timer文檔發現,該定時器的默認精度會有5%左右的誤差。另外發現視頻編解碼與合成操作在主線程中負載較高,進一步放大定時器的誤差。
定時器官方文檔介紹:
有關更多QTimer的內容請看往期推文《Qt多種定時器》。
最后的解決方法是:
總結
以上是生活随笔為你收集整理的定时器_Qt定时器小坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java明文发送_使用java MD5加
- 下一篇: android xml 设置图片,and