如何更改目录中所有视频文件的音频采样率?

如何更改目录中所有视频文件的音频采样率?

我使用 wf-recorder 进行了屏幕录制,我发现它被硬编码为 44.1 kHz,但 Pipewire 默认为 48 kHz。因此,如果我将音频流减慢到大约 0.95 倍,音频就会完全同步。该值并不完全一致,但大约是相同的数字。

在视频编辑器中,音频流显示视频结束前几秒就截止,所以基本上我应该拉长音频直到结尾与视频结尾一致。理论上,调整采样率应该是最简单的解决方案。

我该怎么做?我不需要重新编码视频,甚至不需要拉伸音频,只需更改音频采样率。

我猜会是这样的for i in *.mp4; do ffmpeg -i "$i" -c:v copy -c:a copy -ar 44100 "fixed/$i"; done

答案1

更新:我意识到-ar 44100会重新采样音频,但我只想重新编码原始音频数据。为此,我不得不改用-af 'asetrate=44100'。我已经更新了答案。

但最终我意识到音频不再能够顺利地匹配到一致的值,我必须使用视频编辑器为每个文件单独调整节奏。


我得出的结论几乎接近答案。我不得不省略复制音频流,因为我必须重新编码才能更改采样率。

对于 BASH shell:

for i in *.mp4; do ffmpeg -i "$i" -c:v copy -af 'asetrate=44100' "fixed/$i"; done

对于 Fish shell:

for i in *.mp4; ffmpeg -i "$i" -c:v copy -af 'asetrate=44100' "fixed/$i"; end

相关内容