在使用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/