You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多目录递归编码MP4视频时ffmpeg输出文件名格式错误的修正咨询

修正FFmpeg批量编码的文件名问题

你的问题出在文件名后缀的处理逻辑上:原命令里的${1##*/}会保留原文件的.mp4后缀,导致拼接后变成xxx.mp4_processed,既没补上正确的.mp4后缀,还把原后缀留在了中间。

直接用下面修正后的命令即可解决:

find -mindepth 2 -type f ! -path '*processed.mp4' -name '*.mp4' -exec bash -c 'ffmpeg -loglevel warning -i "$1" -vf fps=23.976025 "${1%.*}_processed.mp4"' _ {} \;

关键修改说明:

  • ${1%.*}:这是Bash的参数扩展语法,作用是去掉$1(原文件的完整路径)中最后一个.及其后面的所有内容,也就是剥离了.mp4后缀,得到原文件所在目录/原文件名(不带后缀)
  • 直接拼接_processed.mp4,最终生成的路径就是原文件所在目录/原文件名_processed.mp4,完全符合你的要求。

测试技巧(避免误操作):

如果怕命令出错,可以先把ffmpeg换成echo,先验证输出文件名是否正确:

find -mindepth 2 -type f ! -path '*processed.mp4' -name '*.mp4' -exec bash -c 'echo "源文件: $1" "输出文件: ${1%.*}_processed.mp4"' _ {} \;

内容的提问来源于stack exchange,提问作者menteith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 22:05:53