【发布时间】:2017-12-21 05:43:52
【问题描述】:
在使用ffmpeg模块编辑视频文件的过程中,我使用了子进程模块
代码如下:
#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在同一个文件夹中。
【问题讨论】:
-
您从哪个路径调用脚本?这应该很重要。手动检查
mypath! (也许使用 os.path.exists() 进行更多检查)。 编辑:错误不明确,我什至不确定问题是否在 ffmpeg 中。 ffmpeg 在您的系统路径中吗?可以从控制台调用它吗(就像你在这里做的那样,没有绝对路径!)? -
我很确定问题在于它没有找到
ffmpeg- 如果错误是它找不到输入文件,它不会出现在一个整洁的 Python 异常中,但是作为来自 ffmpeg 的标准错误的错误消息。 -
尝试使用 Chocolatey 安装 ffmpeg:
choco install ffmpeg
标签: python ffmpeg subprocess