到目前为止,我使用以下脚本从较大的视频中剪切视频的重要部分,同时还在输入文件中存在的多个音轨中选择最音视频同步的音轨。
infile="2023-04-15 23-46-57.mp4"
outfile="John Rambo.mp4"
starttimestamp=00:00:04
endtimestamp=01:28:51
ffmpeg -i "$infile" -c:a copy -c:v copy -map 0:0 -map 0:1 -ss $starttimestamp -to $endtimestamp "$outfile"
(0:1 将根据具体情况进行更改,时间戳和文件名也会更改)
到目前为止,这一切都完美无缺。然而,目前使用 ffmpeg 4.4.3(在我的桌面上 == Fedora 35 上的最新版本)和 6.0.1(在我的 NAS == Synology 社区包上),我无法让 A/V 像这样保持同步。当我只提取音频通道(在本例中为 0:1)(即 A/V 同步)而不切掉中间段时,输出是同步的。切割文件后对我来说是异步的。我已经尝试切入步骤而不是一个(中间文件),并将 -ss 和 -to 参数复制到 ffmpeg 调用的音频部分,如下所示
ffmpeg -i "$infile" -c:a copy -ss $starttimestamp -to $endtimestamp -c:v copy -map 0:0 -map 0:1 -ss $starttimestamp -to $endtimestamp "$outfile"
我究竟做错了什么?