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

本地运行Wav2Lip时subprocess触发FileNotFoundError问题求助

解决Wav2Lip inference.py中subprocess调用ffmpeg的FileNotFound错误

错误[Errno 2] No such file or directory表明subprocess执行命令时找不到目标对象,核心原因集中在FFmpeg配置、文件路径或参数设置上,以下是针对性解决方案:

1. 检查并配置FFmpeg

  • 先验证FFmpeg是否可用:打开命令行终端,输入ffmpeg -version,若提示“找不到命令”,说明未安装或未加入系统环境变量。
    • 下载对应系统的FFmpeg编译包(Windows直接下载预编译版本),解压后找到ffmpeg.exe所在的bin目录。
    • 将该bin目录添加到系统PATH环境变量,重启终端后再次执行ffmpeg -version确认正常输出。
  • 若不想修改环境变量,可直接在代码中指定FFmpeg的绝对路径:
    command = [
        "C:/your/ffmpeg/path/bin/ffmpeg.exe",  # 替换为实际路径
        "-y",
        "-i", args.audio,
        "-i", args.video,
        "-c:v", "libx264",
        "-crf", "22",
        "-strict", "-2",
        args.outfile
    ]
    

2. 确认输入文件路径有效性

  • 检查args.audio、args.video对应的文件是否存在:比如test/audio.wav和test/video.mp4是否在项目根目录的test文件夹内。
  • Windows路径避免单引号/单斜杠转义问题,将main.py中的路径改为正斜杠或双反斜杠:
    """ python Wav2Lip/inference.py --checkpoint_path Wav2Lip/checkpoints/wav2lip.pth --face "test/video.mp4" --video "test/video.mp4" --audio "test/audio.wav" --pads 0 20 0 0  """
    

3. 调整subprocess的shell参数

Windows下shell=False时,subprocess无法直接找到未加入PATH的可执行文件,可统一设置shell=True(跨系统兼容):

subprocess.run(command, shell=True)

4. 验证输出文件路径权限

确保args.outfile指定的路径有写入权限,避免写入系统保护目录(如C盘根目录),建议使用项目内路径(如output/result.mp4),并提前创建对应文件夹。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:43:11