Matplotlib动画“没有可用的MovieWriters”

79
在Linux下,我一直在研究matplotlib的动画类,它似乎可行,但我无法初始化电影编写器以输出电影。
使用以下任何一个示例:

出现错误 "RuntimeError: No MovieWriters available!"

我正在使用 matplotlib 版本 1.3.x,并已安装(希望)所有编解码器。

请问有人能够建议我为什么会出现这个错误吗?如果是编解码器问题,应该安装哪些编解码器(+版本)?如果是其他问题导致的,是否有用于在 Python 中创建动画的替代方案?


你使用的是哪个操作系统?是否已安装ffmeg或libav? - tacaswell
8
import matplotlib.animation as manimation; manimation.writers.list() - mimoralea
10个回答

118

对于使用Anaconda的谷歌用户,安装ffmpeg软件包:

conda install -c conda-forge ffmpeg

这也适用于Windows操作系统。

(原回答使用了menpo软件包的所有者,但正如@harsh所提到的,在撰写本文时他们的版本略有滞后)


对我也起作用了。我是从Pycharm内部安装的,然后就能够使用 Writer = animation.writers['ffmpeg'] 而不需要任何其他操作。 - Johan
1
我已经安装了它,但 matplotlib 找不到它。我错过了什么吗? - steven
有pip安装选项吗? - CromeX
2
这真是太棒了!如果不起作用,请尝试 plt.rcParams['animation.ffmpeg_path'] = 'yourhomepath/anaconda2/envs/yourenv/bin/ffmpeg' - ABCMOONMAN999
这在Anaconda中非常好用。@steven,请确保如果你有一个环境,它已经安装在同一个环境中。 - Hummer

54

我遇到了同样的问题...经过一段时间的尝试,成功解决了。

需要做的是按照安装FFmpeg的说明进行操作——在Windows系统上,这是一个可执行文件的捆绑包,您需要将其设置为环境变量中的路径。

http://www.wikihow.com/Install-FFmpeg-on-Windows

从ffmpeg.org下载

希望这能对某些人有所帮助——即使在提问后一段时间之后——祝好运


我正在使用Linux。我格式化了并忘记了这个问题。 但是,为了关闭这个问题,我重新安装了FFmpeg,现在它可以正常工作(在Ubuntu 10.04、10.10和12.04上测试过)。所以我会认为第一次安装时缺少了某些东西。 - Paradise
1
还要确保您安装了最新版本的matplotlib。我在更新到较旧版本(我运行的是1.2.1)后解决了这个问题。 - kjgregory
2
ImageMagick在Windows上的安装程序将提供ffmpeg,而且更容易安装。 - RubenLaguna
1
FFmpeg 的库有了新家。https://www.ffmpeg.org/ - Tirtha R
在Windows上,"choco install ffmpeg" 对我很有效。感谢包管理器! - A.King

30

我知道这个问题是关于Linux的,但是如果有人在Mac上遇到了这个问题,像我一样,下面是解决方法。因为ffmpeg显然不是默认安装的,所以我在Mac上遇到了完全相同的问题,并且我通过以下方式解决了它:

brew install yasm
brew install ffmpeg

1
我尝试了这个,并确保安装了FFmpeg。仍然出现相同的错误。 - Kai
@Kai,使用brew安装了ffmpeg吗? - patapouf_ai
1
我正在使用Anaconda和conda,所以我使用了conda install -c menpo ffmpeg=3.1.3,我还需要执行以下操作:sudo ln -s /opt/local/bin/ffmpeg /usr/bin/ffmpeg,这在我的Macbook(10.11.2)上实际上是有效的。 - Kai
1
@patapouf_ai:是的,brew对我来说不起作用,因为我正在使用anaconda/conda。如我上面的评论所述,conda install可以解决问题。 - Kai
这适用于使用Python虚拟环境的Mac OS X。 - Kyle Swanson

14

5
为了让人们不必在以后的Ubuntu版本中来回跳转,ffmpeg再次回来了(真是一团糟)。 - Heberto Mayorquin

7
如果您使用的是Ubuntu 14.04,则无法使用ffmpeg。 您可以使用来自https://www.ffmpeg.org/download.html的指示安装它。
简单来说,您需要:
sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install ffmpeg gstreamer0.10-ffmpeg

如果这个方法不起作用,可以尝试使用sudo apt-get dist-upgrade命令,但是这可能会破坏您的系统。

6

在运行该单元格时,我遇到了以下错误。 在此输入图片描述

可能是因为您的系统中没有安装ffmpeg。请在终端中尝试以下命令。

sudo apt install ffmpeg

这对我来说可行,我希望它也适用于你。


2
我正在运行Ubuntu 20,遇到了类似的问题。
安装ffmpeg: pip install ffmpeg 然后执行: sudo apt install ffmpeg

0
如果出现错误“MovieWriter imagemagick不可用;改用Pillow。”,请尝试通过显式导入PillowWriter来保存为mp4文件:
from matplotlib.animation import FuncAnimation, PillowWriter

0

(请务必遵循JPH反馈的有关正确下载FFmpeg的指示) 不确定为什么,但在我的情况下,以下是有效的(我使用的是Windows)。

初始化一个编写器:

import matplotlib.pyplot as plt
import matplotlib.animation as animation
Writer = animation.FFMpegWriter(fps=30, codec='libx264')  #or 
Writer = animation.FFMpegWriter(fps=20, metadata=dict(artist='Me'), bitrate=1800) ==> This is WORKED FINE ^_^

Writer = animation.writers ['ffmpeg'] ==> 出现错误 ""RuntimeError:请求的MovieWriter(ffmpeg)不可用""


0
请使用以下命令: pip install ffmpeg


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接