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

FFmpeg无法就地编辑现有文件 Windows下Bash脚本修复及输出目录调整问题

FFmpeg脚本报错修复方案

报错原因

FFmpeg cannot edit existing files in-place
该报错是因为你脚本中FFmpeg的输入路径和输出路径完全一致,FFmpeg不支持原地修改文件,避免处理过程中损坏源文件。除此之外你原脚本还有两处参数错误:

  • 纯音频wav文件不需要指定视频编码参数-c:v mv,该参数无效
  • 你修改了音频通道数、采样率,不能使用-c:a copy直接拷贝音频流,必须重新编码,该参数会导致转换规则不生效

修复方案1:处理后覆盖原文件

如果需要替换原文件,可以先输出到临时文件,处理完成后再覆盖源文件,脚本如下:

#!/bin/bash
for i in datasets/wavs/*.wav; do
    ffmpeg -y -i "$i" -ac 1 -ar 22050 -map_metadata -1 -c:a pcm_s16le "${i}.tmp.wav"
    mv -f "${i}.tmp.wav" "$i"
done

修复方案2:指定独立的结果保存目录

如果不需要覆盖源文件,要把结果输出到指定目录,修改脚本如下:

#!/bin/bash
# 自定义输出目录,可自行修改路径
OUTPUT_DIR="datasets/processed_wavs"
# 自动创建输出目录,不存在就新建
mkdir -p "$OUTPUT_DIR"

for i in datasets/wavs/*.wav; do
    # 提取原文件名
    filename=$(basename "$i")
    ffmpeg -y -i "$i" -ac 1 -ar 22050 -map_metadata -1 -c:a pcm_s16le "${OUTPUT_DIR}/${filename}"
done

注意事项

  • 所有变量外侧加双引号是为了兼容文件名带空格的场景
  • 如果你是在Windows的WSL/Git Bash环境运行,注意检查路径的大小写和盘符挂载规则是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:12:01