作者Arton0306 (Ar藤)
看板Programming
标题Re: [问题] 播放影片时 以audio为主的sync
时间Tue Jun 12 22:01:56 2012
自问自答一下
最後还是用一个外部时钟去对
这个时钟在audio开始的时候启动 video会去对它
没有管叫它播audio到真的播audio中的delay
不过目前看不出误差 (只试过少数几个影片)
qt回传的audio播放时间实在太不准了 (函数名还敢叫us 一开始还以为精度超高)
不管怎麽调 甚至再加一个校正时钟上去 还是会对不准
所以还是用外部时钟...
※ 引述《Arton0306 (Ar藤)》之铭言:
: 最近用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.42.50.185
※ 编辑: Arton0306 来自: 114.42.50.185 (06/12 22:03)
※ 编辑: Arton0306 来自: 114.42.50.185 (06/12 22:04)
※ 编辑: Arton0306 来自: 114.42.50.185 (06/12 22:05)
※ 编辑: Arton0306 来自: 114.42.50.185 (06/12 22:06)