连接无声文件和有声文件会导致音频和视频不同步

连接无声文件和有声文件会导致音频和视频不同步

我正在以交错的方式连接无声和可听的视频片段:

文件 silent1.mp4 文件 audible1.mp4 文件 silent2.mp4 文件 audible2.mp4 ...

静音文件是使用 ffmpeg 从图像中人工生成的,方法是添加文本、循环 1 秒并添加静音音频流。有声文件是原始视频。每个静音片段都为下一个原始片段提供了一些描述。

无声视频是这样生成的:

ffmpeg -loop 1 -i input.jpg -f lavfi -i anullsrc=stereo:sample_rate=48000 -t 1 -y silent.mp4 

concatenationList.txt 包括:

file audible1.mp4 file silent.mp4 
file audible2.mp4 file silent.mp4 
... 

连接命令:

ffmpeg -f concat -safe 0 -i concatenationList.txt concatenation.mp4 

我遇到音频和视频流不同步的情况。下一个可听片段的音频流比其视频信号更早开始。随着时间的推移,音频流开始得越来越早。最终,连接的文件“耗尽”音频并继续静默播放视频。

有什么想法可以让它们保持同步,因为它们出现在原始的不同视频片段中?

静默文件具有以下参数:

Duration: 00:00:01.02, start: 0.000000, bitrate: 1897 kb/s

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 2560x1440 [SAR 1080:1271 DAR 1920:1271], 1919 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
  handler_name    : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 2 kb/s (default)
Metadata:
  handler_name    : SoundHandler

视频文件如下:

Duration: 00:00:03.88, start: 0.000000, bitrate: 1058 kb/s

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1092x616 [SAR 1:1 DAR 39:22], 914 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)
Metadata:
  handler_name    : Core Media Video
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
  handler_name    : Core Media Audio

这些差异是否会导致音频和视频在交错时不同步?

谢谢

相关内容