音视频同步那些事
音视频同步
*主要有三种,分别是以音频为主时间轴作为同步源;以视频为主时间轴作为同步源;以外部时钟为主时间轴作为同步源。
以音频作为对齐基准的实现
*播放器接收到的视频帧或者音频帧,内部会有时间戳来标识应该在什么时刻展示,实际的对齐策略:比较视频当前的播放时间和音频的当前播放时间,如果视频播放过快,则通过加大延迟或者重复播放来降低视频播放速度;如果速度慢了则通过减少延迟或者丢帧来追赶音频播放的时间点。关键就在于音视频时间的比较以及延迟的计算,当然在比较的过程中会设置一个阈值,若超过预设的阈值就应该做调整,丢帧渲染或者重复渲染,这就是整个对齐策略。默认是以音频为主轴同步,ffplay abc.mp4 -sync audio,也可以以其他两个为基准,ffplay abc.mp4 -sync video/ext
让天下没有难写的代码