如何使用ffmpeg将包含子文件夹的整个目录转换为相同格式?

如何使用ffmpeg将包含子文件夹的整个目录转换为相同格式?,ffmpeg,batch-processing,Ffmpeg,Batch Processing,如何保持文件名和扩展名相同,并将备份附加到旧文件中 我试过这个 find-名称“*.mp4”-exec bash-c”表示f;执行ffmpeg-i“$f”-编解码器副本“${f%.*}.mp4”;完成'-{}+ 但在这里,文件将被覆盖 我希望我所要求的是可能的。我建议您首先在输入文件中附加“\u备份”,然后使用ffmpeg处理刚刚重命名的文件: 处理当前目录中文件的简单循环: 用于*.mp4中的f;做 mv“$f”“${f%.*}\u backup.mp4” ffmpeg-i“${f%.*}\u

如何保持文件名和扩展名相同,并将备份附加到旧文件中

我试过这个

find-名称“*.mp4”-exec bash-c”表示f;执行ffmpeg-i“$f”-编解码器副本“${f%.*}.mp4”;完成'-{}+

但在这里,文件将被覆盖

我希望我所要求的是可能的。

我建议您首先在输入文件中附加“\u备份”,然后使用
ffmpeg
处理刚刚重命名的文件:

处理当前目录中文件的简单循环:

用于*.mp4中的f;做
mv“$f”“${f%.*}\u backup.mp4”
ffmpeg-i“${f%.*}\u backup.mp4”-c拷贝“$f”
完成
#或单线:
对于*.mp4中的f;执行mv“$f”“${f%.*}\u backup.mp4”;ffmpeg-i“${f%.*}\u backup.mp4”-c copy“$f”;完成
find
处理当前目录和子目录中的文件:

find-name“*.mp4”-execbash-c'
f=“{}”
mv“$f”“${f%.*}\u backup.mp4”
ffmpeg-i“${f%.*}\u backup.mp4”-c拷贝“$f”
' \;
#或单线:
find-name“*.mp4”-execbash-c'f=“{}”;mv“$f”“${f%.*}\u backup.mp4”;ffmpeg-i“${f%.*}\u backup.mp4”-c copy“$f”\;

这是否回答了您的问题?没有,因为那里的文件扩展名不同。我尝试了
find-名称“*.mp4”-exec bash-c”表示*.mp4中的f;执行mv“$f”“${f%.*}\u backup.mp4”ffmpeg-i“${f%.*}\u backup.mp4”-c copy“$f”done'-{}+
,但嵌套文件夹中的文件将被忽略。你有办法吗?@featertu你不应该随意组合这些命令。请看我更新的答案。谢谢你的回答。然而,嵌套文件夹仍被排除在外。我的设置有问题吗?它对你有用吗?@featertu与
find-name“*.mp4”
一起,我就得到了当前目录中所有mp4文件的列表以及它的子目录。对于不同版本的
find
之间可能存在的差异,我不是专家。很抱歉