视频电脑视频与声音不同步步

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任


}
  • 公众号:vivo智能手机

    生活号:vivo智能掱机

Copyright ? 广东步步高电子工业有限公司 版权所有 保留一切权利粤B2- | 粤ICP备号
}

记一次录制mp4音视频不同步问题的排查过程

现象:录制系统中收录rtmp流并用mp4v2写mp4文件。视频采用的是rtmp包里的时间戳但是音频若使用rtmp包里时间戳则同步,而采用自行计算的时間戳则不同步

  • 录制系统主要收录实时RTC的音视频数据,在这种情况下音频时间戳采用自行计算的值。后
    面加入rtmp流的收录没有调整音频時间戳的逻辑。
  • 所谓自行计算是:若音频采样率为44100Hz编码为aac,因为一帧aac包含1024个采样则一帧aac音频的时长为 1024?1000/4410023ms。(当然我们要处理余数嘚情况,累加到之后音频帧时间戳的计算)

现在有对应的两个mp4文件分别对应tb.mp4(采用rtmp时间戳,同步)、btb.mp4(采用自行计算时间戳不同步)。

分析视频文件是否同步的一般步骤:(以tb.mp4为例进行分析)

  • 使用工具将视频文件中每一个音频/视频帧的时间戳打印出来
    这里使用flvpusher这个工具 里面包含解析flv、mp4文件的模块,简单修改下代码可将每一帧音视频时间戳打印至日志文件。格式如下:
  • 分析前后两帧音频的时间戳是否異常
发现有音频帧间隔过大的情况
  • 分析前后两帧视频的时间戳是否异常
发现有视频帧间隔过大的情况
  • 分析整体的音频/视频时间戳是否偏移過大
    音频终止时间戳:2869939
    视频终止时间戳:2869828
    发现整体的偏移情况还好(ms)

    而不同步的视频文件偏移则过大:(ms) 音频起始时间戳:0


    音频终止時间戳:2865152
    视频终止时间戳:2869828


我们继续对比tb.mp4和btb.mp4文件里面的音频流:
使用ffmpeg命令将两者的音频流解码为pcm并dump到文件发现时长完全一致。


对此这個问题的结论如下:
因为输入流rtmp本身存在音频少的情况,但宏观上出来的音视频流还是同步的(rtmp时间戳基本同步)若是自行计算音频时間戳,则音频会被缩短至媒体文件的头部导致越来越出现不同步,直至最后出现只有画面没有声音的情况

}

我要回帖

更多关于 电脑视频与声音不同步 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信