一、概述
音视频同步(avsync),是影响多媒体应用体验质量的一个重要因素。而我们在看到音视频同步的时候,最先想到的就是对齐两者的pts,但是实际使用中的各类播放器,其音视频同步机制都比这些复杂的多。
这里我们先介绍一些音视频同步相关的知识:
1. 如何测试音视频同步情况
最简单的就是播放一个演唱会视频,通过目测看看声音和嘴形是否能对上。
这里我们也可以使用一个更科学的设备:Sync-One。Sync-One是从纯物理的角度来测试音视频同步情况的,通过播放特定的测试片源,并检测声音和屏幕亮度的变化,评判声音是落后于视频,还是领先于视频,如果达到了完美的音视频同步结果,会在电子屏上显示数字0,当然这很难==,一般我们会设定一个标准区间,只要结果能落在这个区间内,即可认为视音频基本是同步的。
2. 如何制定音视频同步的标准
音视频同步的标准其实是一个非常主观的东西,仁者见仁智者见智。我们既可以通过主观评价实验来统计出一个合理的区间范围,也可以直接参考杜比等权威机构给出的区间范围。同时,不同的输出设备可能也需要给不同的区间范围。比如,默认设备的音视频同步区间是[-60, +30]ms, 蓝牙音箱输出时的音视频同步区间是[-160, +60]ms, 功放设备输出时的音视频同步区间是[-140, +40]ms。负值代表音频落后于视频,正值代表音频领先于视频。
3. 在梳理音视频同步逻辑我们应该关注什么
毫无疑问,音视频同步逻辑的梳理要分别从视频和音频两个角度来看。
视频方面,我们关注的是同步逻辑对视频码流的pts做了哪些调整。
音频方面,我们关注的是同步逻辑中是如何获取“Audio当前播放的时间”的。