我正在使用此行将mp4文件批量转换为webm文件。对于所有mp4文件,我需要输出文件具有相同的名称,但扩展名为.webm。例如,如果我有video1.mp4和video2.mp4,那么转换后我需要两个文件,即video1.webm和video2.webm。我如何使用bash脚本实现这一目标?
for f in *.mp4; do ffmpeg -i "$f" -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis "$f".webm; done
上面的代码会将输出文件更改为video1.mp4.webm。谢谢!
答案 0 :(得分:3)
据我所知,此链接是您正在寻找的答案。虽然您可能不需要删除路径的部分,因为您只是在文件夹中运行它。
尝试:
for f in *.mp4; do ffmpeg -i "$f" -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis "${f%.mp4}".webm; done
How do I remove the file suffix and path portion from a path string in Bash?
编辑:添加示例;更新后,我意识到有人给了同样的更新。
答案 1 :(得分:1)
试试这个......
for f in *.mp4;
do
ffmpeg -i "$f" -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis "${f%.mp4}".webm;
done