![如何使用 Ffmpeg 从多个视频文件中删除音频?](https://linux22.com/image/1620054/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Ffmpeg%20%E4%BB%8E%E5%A4%9A%E4%B8%AA%E8%A7%86%E9%A2%91%E6%96%87%E4%BB%B6%E4%B8%AD%E5%88%A0%E9%99%A4%E9%9F%B3%E9%A2%91%EF%BC%9F.png)
我正在使用以下命令(在 Mac 上)从视频文件中删除音频:
ffmpeg -i example.mkv -c copy -an example-nosound.mkv
在我的情况下是 mp4 文件,但你知道... tomayto tomato。关键是我有很多文件,一个接一个地处理会是一个漫长的过程。不过我在 Reddit 上找到了以下命令:批量删除 mp4 视频中的音频
for %%F in ("parent directory\*.mp4") do ren "%%~F" "%%~nF_audio.mp4"&&ffmpeg -i "%%~dpnF_audio.mp4" -c copy -map 0 -map_metadata 0 -an "%%~F"
不过,我对 Ffmpeg 的了解并不多,所以我几乎不明白这些是什么意思,因此无法弄清楚哪些是相关的,哪些是不相关的,以及为什么它对我不起作用。第一个命令对我来说足够简单,所以理想情况下,在某个地方,会有一个稍微复杂一点的版本,让我可以将其应用于多个视频文件。
我并不是唯一一个对命令行不太了解的人,因此我相信找到一个简化的解决方案和更简单的解释会对很多人有所帮助。
答案1
用这个:
for file in *.mp4
do
ffmpeg -i "$file" -an -c:v copy "${file%.mp4}_noaudio.mp4"
done
-an
表示没有音频
-c:v copy
表示保持相同的视频编解码器。
该文件将被重命名为原始名称+_noaudio,保持扩展名不变。