Matplotlib-Animation "No MovieWriters Available"
Question:
Under Linux, I’ve been checking out matplotlib’s animation class, and it seems to work except that I cant initialise the movie writer to write out the movie.
Using either of the examples:
- http://matplotlib.org/examples/animation/moviewriter.html
- http://matplotlib.org/examples/animation/basic_example_writer.html
results in the error “RuntimeError: No MovieWriters available!“
Im using matplotlib version 1.3.x and have installed (hopefully) all the codecs.
Can someone please suggest as to why I get this error? If its a codecs issue, which codecs (+versions) should I install?
If its something else that’s broken, is there an alternative for creating animations in python?
Answers:
Had the same problem….managed to get it to work after a little while.
Thing to do is follow instructions on installing FFmpeg – which is (at least on windows) a bundle of executables you need to set a path to in your environment variables
http://www.wikihow.com/Install-FFmpeg-on-Windows
Hope this helps someone – even after a while after the question – good luck
Had the same problem under Linux. By default the animate.save method is using ffmpeg but it seems to be deprecated.
https://askubuntu.com/questions/432542/is-ffmpeg-missing-from-the-official-repositories-in-14-04
Solution:
Install some coder, like avconv or mencoder.
Provide the alternative coder in the call:
ani.save('the_movie.mp4', writer = 'mencoder', fps=15)
If you are using Ubuntu 14.04 ffmpeg
is not available. You can install it by using the instructions directly from https://www.ffmpeg.org/download.html.
In short you will have to:
sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install ffmpeg gstreamer0.10-ffmpeg
If this does not work maybe try using sudo apt-get dist-upgrade
but this may broke things in your system.
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
For fellow googlers using Anaconda, install the ffmpeg package:
conda install -c conda-forge ffmpeg
This works on Windows too.
(Original answer used menpo
package owner but as mentioned by @harsh their version is a little behind at time of writing)
(be sure to follow JPH feedback above about the proper ffmpeg download)
Not sure why, but in my case here is the one that worked (in my case was on windows).
Initialize a writer:
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’] ==> GIVES ERROR “”RuntimeError: Requested MovieWriter (ffmpeg) not available””
I’m running Ubuntu 20 and I had a similar problem
Installed ffmpeg
pip install ffmpeg
then
sudo apt install ffmpeg
If error "MovieWriter imagemagick unavailable; using Pillow instead." pops up, try to
import PillowWriter explicitly to save as mp4-File by:
from matplotlib.animation import FuncAnimation, PillowWriter
Under Linux, I’ve been checking out matplotlib’s animation class, and it seems to work except that I cant initialise the movie writer to write out the movie.
Using either of the examples:
- http://matplotlib.org/examples/animation/moviewriter.html
- http://matplotlib.org/examples/animation/basic_example_writer.html
results in the error “RuntimeError: No MovieWriters available!“
Im using matplotlib version 1.3.x and have installed (hopefully) all the codecs.
Can someone please suggest as to why I get this error? If its a codecs issue, which codecs (+versions) should I install?
If its something else that’s broken, is there an alternative for creating animations in python?
Had the same problem….managed to get it to work after a little while.
Thing to do is follow instructions on installing FFmpeg – which is (at least on windows) a bundle of executables you need to set a path to in your environment variables
http://www.wikihow.com/Install-FFmpeg-on-Windows
Hope this helps someone – even after a while after the question – good luck
Had the same problem under Linux. By default the animate.save method is using ffmpeg but it seems to be deprecated.
https://askubuntu.com/questions/432542/is-ffmpeg-missing-from-the-official-repositories-in-14-04
Solution:
Install some coder, like avconv or mencoder.
Provide the alternative coder in the call:
ani.save('the_movie.mp4', writer = 'mencoder', fps=15)
If you are using Ubuntu 14.04 ffmpeg
is not available. You can install it by using the instructions directly from https://www.ffmpeg.org/download.html.
In short you will have to:
sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install ffmpeg gstreamer0.10-ffmpeg
If this does not work maybe try using sudo apt-get dist-upgrade
but this may broke things in your system.
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
For fellow googlers using Anaconda, install the ffmpeg package:
conda install -c conda-forge ffmpeg
This works on Windows too.
(Original answer used menpo
package owner but as mentioned by @harsh their version is a little behind at time of writing)
(be sure to follow JPH feedback above about the proper ffmpeg download)
Not sure why, but in my case here is the one that worked (in my case was on windows).
Initialize a writer:
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’] ==> GIVES ERROR “”RuntimeError: Requested MovieWriter (ffmpeg) not available””
I’m running Ubuntu 20 and I had a similar problem
Installed ffmpeg
pip install ffmpeg
then
sudo apt install ffmpeg
If error "MovieWriter imagemagick unavailable; using Pillow instead." pops up, try to
import PillowWriter explicitly to save as mp4-File by:
from matplotlib.animation import FuncAnimation, PillowWriter