在Linux下,我一直在检查matplotlib的动画类,它似乎有效,除了我不能初始化电影作家写出电影。
使用以下任一示例:
导致错误“ RuntimeError:没有MovieWrite可用!”
我正在使用matplotlib 1.3.x版并安装(希望)所有的编解码器。
有人可以建议我为什么会收到此错误?如果它的编解码器问题,我应该安装哪些编解码器(+版本)? 如果它的其他东西被打破了,是否有在python中创建动画的替代方法?
答案 0 :(得分:39)
对于使用Anaconda的同行谷歌,请安装ffmpeg包:
conda install -c conda-forge ffmpeg
这也适用于Windows。
(原始答案使用menpo
包主人,但正如@harsh所述,他们的版本在撰写时略显落后)
答案 1 :(得分:38)
有同样的问题......过了一会儿就设法让它工作了。
要做的就是遵循安装FFmpeg的说明 - 这是(至少在Windows上)你需要在环境变量中设置路径所需的一堆可执行文件
http://www.wikihow.com/Install-FFmpeg-on-Windows
从这里下载exes。
http://ffmpeg.zeranoe.com/builds/
希望这有助于某人 - 即使在问题过后一段时间 - 祝你好运
答案 2 :(得分:20)
I know this question is about Linux, but in case someone stumbles on this problem on Mac like I did here is the solution for that. I had the exact same problem on Mac because ffmpeg
is not installed by default apparently, and so I could solve it using:
brew install yasm
brew install ffmpeg
答案 3 :(得分:13)
Linux下有同样的问题。默认情况下,animate.save方法使用的是ffmpeg,但它似乎已被弃用。 https://askubuntu.com/questions/432542/is-ffmpeg-missing-from-the-official-repositories-in-14-04
解决方案: 安装一些编码器,如avconv或mencoder。 在通话中提供替代编码器:
ani.save('the_movie.mp4', writer = 'mencoder', fps=15)
答案 4 :(得分: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
,但这可能会破坏系统中的内容。
答案 5 :(得分:1)
答案 6 :(得分:0)
(请务必遵循上述有关正确ffmpeg下载的JPH反馈) 不知道为什么,但是就我而言,这是可行的(就我而言,是在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)不可用“”
答案 7 :(得分:0)
我正在运行Ubuntu 20,但遇到了类似的问题
已安装ffmpeg
pip install ffmpeg
然后
sudo apt install ffmpeg
答案 8 :(得分:-1)
在winOS中,您可以尝试:
第一步:下载并解压缩ffmpeg。
第二步:
ffmpegpath = os.path.abspath("path/ffmpeg/bin/ffmpeg.exe")
matplotlib.rcParams["animation.ffmpeg_path"] = ffmpegpath
writer = animation.FFMpegWriter()
anim.save(fname,writer = writer)