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

如何在Bash中检查无对应MP4文件以跳过MXF批量转码

Bash脚本批量转码MXF到MP4(跳过已转码文件)

直接用Bash的文件检查语法就能实现需求,以下是可运行的脚本:

#!/bin/bash

# 遍历当前目录下所有.mxf文件
for mxf_file in *.mxf; do
    # 生成对应的.mp4文件名(替换后缀)
    mp4_file="${mxf_file%.mxf}.mp4"
    # 检查.mp4文件是否不存在
    if [ ! -f "$mp4_file" ]; then
        # 执行ffmpeg转码命令,替换成你的实际转码参数
        ffmpeg -i "$mxf_file" -c:v libx264 -c:a aac "$mp4_file"
    fi
done

关键说明:

  • ${mxf_file%.mxf}.mp4:Bash参数扩展语法,自动去掉文件的.mxf后缀并替换为.mp4
  • [ ! -f "$mp4_file" ]:判断指定路径是否不是普通文件,文件不存在时条件成立
  • 双引号包裹文件名:避免文件名含空格、特殊字符时出现解析错误

递归处理子目录扩展:

如果需要处理目录及所有子目录里的.mxf文件,可改用find配合while循环:

#!/bin/bash

find . -type f -name "*.mxf" | while read -r mxf_file; do
    mp4_file="${mxf_file%.mxf}.mp4"
    if [ ! -f "$mp4_file" ]; then
        ffmpeg -i "$mxf_file" -c:v libx264 -c:a aac "$mp4_file"
    fi
done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:36:29