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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将输出文件命名为与输入文件相同但视频转换后的扩展名不同? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我正在使用此行批量转换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。谢谢!

答案

试试这个 ...

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

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

尝试:

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?

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

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

如何将音频文件转为base64 编码

如何将文件重命名为另一个文件系统?

如何将文件重命名为子目录

ffmpeg:如何将 wav 作为音频输入来创建视频?

正则表达式 - 将文件重命名为文件名中的最高分辨率

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