视频转换后如何命名输出文件与输入文件相同但扩展名不同? [复制]

Posted

技术标签:

【中文标题】视频转换后如何命名输出文件与输入文件相同但扩展名不同? [复制]【英文标题】:how to name the output file same as input file but different extension after video conversion? [duplicate] 【发布时间】:2018-08-12 00:28:20 【问题描述】:

我正在使用此行将 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。谢谢!

【问题讨论】:

使用后缀删除:将"$f".webm替换为$f%.mp4.webm 见this answer regarding parameter expansion。 【参考方案1】:

试试这个...

for f in *.mp4; 
do 
    ffmpeg -i "$f" -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis "$f%.mp4".webm;  
done

【讨论】:

【参考方案2】:

据我所知,此链接是您正在寻找的答案。虽然您可能不需要删除路径的部分,因为您只是在文件夹中运行它。

试试:

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?

编辑:添加示例;更新后,我意识到其他人也提供了相同的更新。

【讨论】:

以上是关于视频转换后如何命名输出文件与输入文件相同但扩展名不同? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

ImageMagick:转换以保持转换后图像的相同名称

为啥视频重命名以后文件格式不支持

在python中使用argparse将csv转换为xml

将 mogrify 与 Image Magick 一起使用时如何重命名图像?

在bash中重命名文件名

JAVA 使文件件里面的所有文件重命名新文件名(求源代码)