我试图在Raspian上使用MoviePy和Python 3.2.3。 我安装了它(对于Python 2.7,3.2和3.5 ......长篇故事)和行
from moviepy.editor import *
工作正常。 当我尝试
clip = VideoFileClip("vid.mov")
这是最基本的命令,它给出错误
Traceback (most recent call last):
File "/home/pi/QuickFlicsPics/moviepytest.py", line 8, in <module>
clip = VideoFileClip("vid.mov")
File "/usr/local/lib/python3.2/distpackages/moviepy/video/io/VideoFileClip.py", line 55, in __init__
reader = FFMPEG_VideoReader(filename, pix_fmt=pix_fmt)
File "/usr/local/lib/python3.2/dist-packages/moviepy/video/io/ffmpeg_reader.py", line 32, in __init__
infos = ffmpeg_parse_infos(filename, print_infos, check_duration)
File "/usr/local/lib/python3.2/dist-packages/moviepy/video/io/ffmpeg_reader.py", line 237, in ffmpeg_parse_infos
proc = sp.Popen(cmd, **popen_params)
File "/usr/lib/python3.2/subprocess.py", line 745, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.2/subprocess.py", line 1371, in _execute_child
raise child_exception_type(errno_num, err_msg)
OSError: [Errno 8] Exec format error
我已经研究过这个错误了,这似乎与某个地方失踪的某条线有关。这是否正确,如果是这样,我该如何找到丢失的地方,以及我要添加什么? 感谢
编辑: 根据cxw的评论,我使用命令
安装了moviepypip-3.2 install moviepy
(我也可能使用'sudo')
当我第一次使用moviepy时,FFMPEG应该会自动下载:
MoviePy依赖于FFMPEG软件进行视频读写。 &GT;你不需要担心,因为FFMPEG应该自动&gt;在您第一次使用MoviePy时由ImageIO下载/安装(需要几秒钟)。如果要使用特定版本的FFMPEG,请按照文件config_defaults.py中的说明进行操作。
[引自安装指南here]
答案 0 :(得分:2)
手动下载ffmpeg,然后在运行Python代码之前,执行
export FFMPEG_BINARY=path/to/ffmpeg
在shell /终端提示符下。
据the source我所知,ffmpeg的自动下载并不了解Raspberry Pis。 auto-download code来自the imageio github repo,只知道“linux32”与“linux64”。看起来它没有ARM-linux选项。当ARM内核看到非ARM映像时,它会抛出您看到的错误。
您可以编辑moviepy config-defaults.py
文件以指定FFMPEG_BINARY = r"/path/to/ffmpeg"
,而不是使用环境变量。
修改以使用path/to/ffmpeg
安装后找到apt-get
,执行
dpkg -L ffmpeg | grep bin
在shell /终端提示符下。它可能位于/bin
或/usr/bin
,可能会被称为ffmpeg
或ffmpeg-x.xx
(带有一些版本号)。
感谢dpkg