python - 系统找不到用ffmpeg指定的文件

标签 python ffmpeg subprocess

在使用ffmpeg模块编辑视频文件的过程中使用了subprocess模块​​

代码如下:

#trim bit

import subprocess
import os
seconds = "4"
mypath=os.path.abspath('trial.mp4')
subprocess.call(['ffmpeg', '-i',mypath, '-ss', seconds, 'trimmed.mp4'])

错误信息:

Traceback (most recent call last):
  File "C:\moviepy-master\resizer.py", line 29, in <module>
    subprocess.call(['ffmpeg', '-i',mypath, '-ss', seconds, 'trimmed.mp4'])
  File "C:\Python27\lib\subprocess.py", line 168, in call
    return Popen(*popenargs, **kwargs).wait()
  File "C:\Python27\lib\subprocess.py", line 390, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 640, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

查了类似的问题,了解到是模块无法获取视频文件,因为它需要路径,所以我采用了绝对路径。但尽管如此,错误仍然出现。 保存此代码的模块和视频文件 trial.mp4 在同一个文件夹中。

最佳答案

您看到的 WindowsError 不是指视频文件,而是指 ffmpeg 可执行文件本身。对 subprocess.call 的调用不知道 trimmed.mp4 是您传递的文件名。 Windows 知道第一个参数应该是一个可执行文件并向解释器报告它找不到它。

仔细检查 ffmpeg 是否可以在您的解释器运行的环境中执行。您可以将其添加到您的 PATH 或指定 的完整路径>ffmpeg.exe.

关于python - 系统找不到用ffmpeg指定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45131495/

相关文章:

python - 使用子进程时处理键盘中断

python - 使用 subprocess.call 实时读取 c 可执行打印语句的输出

python - 使用 urllib、urllib2 和 request 避免类似 "Pyramid of Doom"的语法

python - xvfb 在 ubuntu 11.04 中运行错误

ffmpeg 从某个位置分割视频文件

ffmpeg - 生成 moov 原子

video - ffmpeg 为什么输出视频对比度/亮度太亮?

python - 如何在python中限制子进程stdout和stderr的大小

python - 使用 Spark Streaming 读取脚本的输出输出

python - sqlite3 "IN"子句