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

Mac下FFmpeg批量处理含空格文件名文件时首文件失败求助

FFmpeg批量处理带空格文件名时首个文件失败的解决办法

问题场景

在Mac系统下使用Bash脚本批量处理目录内带空格的视频文件,通过ffmpeg -c copy转换封装格式时,发现首个文件总是处理失败,后续文件可正常完成;单独处理单个文件时也能成功执行。

原脚本代码:

echo my converter
read -p "Enter give folder: " folder
echo '//////////////////////START CONVERTING FROM FOLDER///////////////////////'

find $folder -type f -name "*[[:space:]]*" | while read file; do
    release="${file%%.*}"'_t.mp4';
    echo "$file";
    ffmpeg -i "$file" -c copy "$release" -loglevel error -stats
    echo $release;
done

报错信息

[mpegts @ 0x7fb8e9904a40] Continuity check failed for pid 17 expected 2 got 3
[mpegts @ 0x7fb8e9904a40] Continuity check failed for pid 0 expected 0 got 2
[mpegts @ 0x7fb8e9904a40] Continuity check failed for pid 4096 expected 0 got 2
[mpegts @ 0x7fb8e9904a40] Continuity check failed for pid 256 expected 2 got 7
[mpegts @ 0x7fb8e9904a40] Packet corrupt (stream = 0, dts = 203523000).
/Users/xy/Downloads/aaa/aa vv.ts: corrupt input packet in stream 0
[NULL @ 0x7fb8e9905a40] Decoding VUI

异常现象

  • 目录存在多个文件时,首个文件处理失败,后续文件正常完成
  • 目录仅包含单个文件时,处理可正常完成
  • 注释ffmpeg命令后,脚本的文件遍历与输出均符合预期

解决建议

1. 阻止FFmpeg占用标准输入

FFmpeg默认会读取标准输入,而while read file同样从标准输入获取文件路径,两者冲突导致首个文件路径被FFmpeg误读,引发处理异常。在ffmpeg命令中添加-nostdin参数,禁止其读取标准输入:

ffmpeg -i "$file" -c copy "$release" -loglevel error -stats -nostdin

2. 优化文件名读取逻辑(可选)

使用find的-print0结合while read -d $'\0',更安全地处理带空格、特殊字符的文件名,避免路径被错误分割:

echo my converter
read -p "Enter give folder: " folder
echo '//////////////////////START CONVERTING FROM FOLDER///////////////////////'

find "$folder" -type f -name "*[[:space:]]*" -print0 | while read -d $'\0' file; do
    release="${file%%.*}"'_t.mp4';
    echo "$file";
    ffmpeg -i "$file" -c copy "$release" -loglevel error -stats -nostdin
    echo "$release";
done

同时注意将find $folder改为find "$folder",防止目录名带空格时出现遍历错误。

3. 修复视频时间戳问题(补充)

如果添加-nostdin后仍有报错,可以尝试用-fflags +genpts参数修复可能的时间戳异常:

ffmpeg -i "$file" -c copy "$release" -loglevel error -stats -nostdin -fflags +genpts

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:42:50