PowerShell+FFmpeg批量检查MXF文件报错求助:无需输出仅需检错
解决FFmpeg检查MXF文件时的"至少需要一个输出文件"错误
你的报错源于脚本参数配置错误,以下是修正方案和说明:
错误原因
- 脚本末尾多余的
E:\$_.FullName.mxf属于无效输出路径,和-f null的用法冲突,导致FFmpeg无法识别正确的输出参数 - 使用
-f null做文件错误检查时,需要配合-作为空输出目标(表示丢弃输出),而非实体文件路径
修正后的脚本
Get-ChildItem -Filter "*.mxf" -Recurse | ForEach-Object { ffmpeg -v error -i "$($_.FullName)" -map 0:1 -f null - 2>"$($_.FullName).log" }
关键参数说明
-v error:仅输出错误信息,过滤冗余日志"$($_.FullName)":用引号包裹文件路径,避免路径含空格时解析失败-map 0:1:指定检查第1个流(如果需要检查所有流,可直接删除该参数)-f null -:通过null格式将输出定向到标准输出并丢弃,完全满足"不生成输出文件"的需求,是FFmpeg做文件完整性检查的标准用法2>"$($_.FullName).log":将FFmpeg的错误输出重定向到对应MXF文件的同名日志文件,方便后续排查错误
简化版(检查所有流)
如果不需要指定特定流,可简化为:
Get-ChildItem -Filter "*.mxf" -Recurse | ForEach-Object { ffmpeg -v error -i "$($_.FullName)" -f null - 2>"$($_.FullName).log" }
内容的提问来源于stack exchange,提问作者user726720
相关产品推荐
相关产品推荐

