我正在尝试从一组视频中进行剪辑,并将它们与 concat demuxer 连接在一起。
但是,输出中的音频与视频不同步。随着视频的进行,音频似乎进一步不同步。有趣的是,如果我点击播放器上的进度条在视频中寻找另一个时间,音频会与视频同步,但随后又会逐渐失去同步。在播放器中寻找新时间似乎会重置音频/视频。就好像它们以不同的速率或其他方式播放。我在 Quicktime 和 VLC 播放器中都有这种行为。
对于每个视频,我对其进行解码,从中修剪一个剪辑,然后使用其音频将其编码为 25 fps 的 4k 分辨率:
ffmpeg -ss 0.5 -t 0.5 -i input_video1.mp4 -r 25 -vf scale=3840:2160 output_video1.mp4
然后我将这些视频中的每一个都与 concat demuxer 连接在一起:
ffmpeg -f concat -safe 0 -i cut_videos.txt -c copy -y output.mp4
我正在对每个视频进行捷径(大约 0.5 秒)
我正在使用 Python 的子进程来自动剪切和连接视频。
我不确定这是不是因为修剪或连接步骤而发生的,但是当我播放中间剪切的视频文件(output_video1.mp4在上面的命令中)时,在视频开始时音频进入之前似乎有一些沉默。
当我连接视频时,我有时会收到很多这些警告,但是即使我没有收到它们,音频仍然不同步:
[mp4 @ 0000021a252ce080] Non-monotonous DTS in output stream 0:1; previous: 51792, current: 50009; changing to 51793. This may result in incorrect timestamps in the output file.