影音同步由播放器自动修正,本套软件改进思路如下:
1. 产生误差的原因
1.1 非同源时钟:当两个定时器非同一个时钟源时,彼此产生积累误差。由于音频和视频数据性质不同,分音频和视频两套播放系统,需要两个定时器。
1.2 非整数帧:Windows系统最高定时精度为1ms,帧间延时非整数时,积累产生误差。比如24帧视频,帧间延时为1000ms / 24帧 = 41.66ms,系统只能定时41ms,每帧0.6ms误差,播放一会,影音逐渐不对照。
2. 同步是必须的,同步思路是音频定时器修正视频定时器,音频定时器固定一秒,即每一秒修正一次。视频定时器每播放一秒后停止,为了消除误差,最后一帧不播放,即每秒减少最后一帧定时次数,音频定时器除完成自己的工作,还触发播放一个视频帧,同时重新启动视频定时器,完成同步工作。
3. 示意图:
4. 这个想法经实际测试,可以正常播放视频,未发现异常。
时间: 2024-10-10 01:21:14