在 Python 中打开 ffmpeg 子进程时出错

Error opening ffmpeg subprocess in Python

我想做的是在Python中打开一个ffmpeg进程。我的代码如下所示:

import subprocess
import os

def Main():
    ffmpeg = "C:\ffmpeg\bin\ffmpeg.exe"
    args = " -i C:\video.mp4 -r 1 -f image2 C:\FRAMES\frame-%03d.jpg"
    subprocess.Popen(ffmpeg + args).wait()

Main()

但即使是这种简单的形式,我也总是得到同样的错误:

Traceback (most recent call last):
  File "C:/Users/Francesco/Desktop/test.py", line 9, in <module>
    Main()
  File "C:/Users/Francesco/Desktop/test.py", line 7, in Main
    subprocess.Popen(ffmpeg + args).wait()
  File "C:\Users\Francesco\Desktop\WinPython-64bit-2.7.9.4\python-2.7.9.amd64\lib\subprocess.py", line 710, in __init__
    errread, errwrite)
  File "C:\Users\Francesco\Desktop\WinPython-64bit-2.7.9.4\python-2.7.9.amd64\lib\subprocess.py", line 958, in _execute_child
    startupinfo)
WindowsError: [Error 2] Impossibile trovare il file specificato
>>> 

怎么了?

您需要转义反斜杠,并在两者之间添加一个 space

ffmpeg = "C:\ffmpeg\bin\ffmpeg.exe "
args = " -i C:\video.mp4 -r 1 -f image2 C:\FRAMES\frame-%03d.jpg"

但是,这不是推荐的方式。 您应该有一个作为参数而不是字符串传递的列表。

cmd = ['C:\ffmpeg\bin\ffmpeg.exe', '-i', 'C:\video.mp4', '-r', '1', '-f', 'C:\FRAMES\frame-%03d.jpg']