Moviepy OSError Exec格式错误 - 缺少Shebang?

时间:2016-10-12 17:19:28

标签: python linux python-3.x raspberry-pi moviepy

我试图在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的评论,我使用命令

安装了moviepy
pip-3.2 install moviepy

(我也可能使用'sudo')

当我第一次使用moviepy时,FFMPEG应该会自动下载:

  

MoviePy依赖于FFMPEG软件进行视频读写。 &GT;你不需要担心,因为FFMPEG应该自动&gt;在您第一次使用MoviePy时由ImageIO下载/安装(需要几秒钟)。如果要使用特定版本的FFMPEG,请按照文件config_defaults.py中的说明进行操作。

[引自安装指南here]

1 个答案:

答案 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,可能会被称为ffmpegffmpeg-x.xx(带有一些版本号)。
感谢dpkg

this answer