1.何为音画不同步

音画不同步很简单就是视频播放过程中声音和画面出现的时间点不一致,滞后或者提前。

2.音画不同步问题分析思路

2.1.音画不同步问题的证明

对于滞后或者提前很多的音画不同步可以直接认为发生了该问题,但是滞后或者提前不是很多的就需要进行数据分析来证明该问题的确发生了,而不是人主观感知的失误

2.1.1.证明方式

需要用到三个工具

一个python脚本,使用ffmpeg处理视频,将视频按帧数提取成图片并按照帧数编码命名,从视频中提取音频。需安装python3环境

分析音频的工具,可以定位到某个音频帧所在的时间点。
3.potplayer,可以定位到视频某帧的时间点,与1.2功能类似,只是比较粗略,没有1.2精准,可作为参考,下载方式直接官网下载就好。

步骤:

1.执行Video2Audio 文件下的main.py脚本,

android 音频帧同步 安卓手机音画不同步_android 音频帧同步


执行完毕后,会在当前目录生成source.wav的音频和source文件夹,文件夹下是视频按帧提取的图片

android 音频帧同步 安卓手机音画不同步_ffmpeg_02


使用Audacity打开音频,

android 音频帧同步 安卓手机音画不同步_android 音频帧同步_03


定位到你关注的音频某帧的时间点,我这个示例为6.674s

android 音频帧同步 安卓手机音画不同步_ffmpeg_04


音频帧对应的视频帧为序号为214的图片

android 音频帧同步 安卓手机音画不同步_ide_05


通过potplayer可以得知视频帧率为30fps,代表1s30张图片,使用214/30 = 7.133s

7133 - 6674 = 459ms,可以得知音频滞后459ms。

截至此处就可以证明音画不同步现象存在,音频滞后459ms.接近0.5s,仔细关注是可以感知到的。

2.2.音画不同步问题分析

音画不同步现象的分析可以由两个点进行分析

1.视频源,如果视频源本身视频首帧pts和音频首帧pts就存在延迟,那播放必然会有音画不同步现象

2.播放器,播放器编解码后会将视频和音频送到video和audio模块进行渲染播放,也是可能造成延迟的。

对视频源的分析依旧可以采取上述方式进行大致分析。

android 音频帧同步 安卓手机音画不同步_ffmpeg_06