How to set ffmpeg for matplotlib in mac os x

10,909

Solution 1

I had the same problem. My solution was very simple.

Download the binary from here.

Then do

sudo mv ~/Downloads/ffmpeg /usr/bin/

Solution 2

I had success when installing with homebrew: brew install ffmpeg

After that set up the FFMpegWriter yourself by:

mywriter = animation.FFMpegWriter()
anim.save('mymovie.mp4',writer=mywriter)

Solution 3

I think the solution can be found in the workaround in this and this post.

It seems that the path of the shell is not loaded by matplotlib, and since macports are installed in /opt/local/bin, ffmpeg can't be found.

Either go for the hack described above, try making a symlink in /bin for ffmpeg, or try adding the path to ffmpeg to the python path as suggested in the comments of the second link

Share:
10,909

Related videos on Youtube

AlexNoir
Author by

AlexNoir

Updated on June 04, 2022

Comments

  • AlexNoir
    AlexNoir almost 2 years

    I want to animate some plots with matplotlib. The version I have is the Enthough Canopy distribution (Version: 1.1.0.1371), running in a mac os x 10.8 (Mountain Lion). I have used the FuncAnimation routine from the animation package of matplotlib. My problem comes saving the animation. I want to save in mp4 format:

    anim.save('test.mp4',fps=30)
    

    The error I get is:

    UserWarning: MovieWriter ffmpeg unavailable 
    warnings.warn("MovieWriter %s unavailable" % writer)
    

    So I installed ffmpeg via Macports. But I am still having the same error. Do you know how to setup matplotlib in order to recognise ffmpeg? Do I have to change the matplotlibrc file? Thanks.

    EDIT: I have realized that I can manually put '/opt/local/bin' in the PYTHONPATH, but it does not change the PATH in Enthough Canopy. Do anyone know how to change the PATH in canopy?

  • AlexNoir
    AlexNoir over 10 years
    Thank you for the answer. I have tried the solution of the second post, and include a launch.conf file. It changed the PYTHONPATH variable, but when I type os.environ['PATH'],the path /opt7local/bin is not there. So I get the same error.
  • gg349
    gg349 over 10 years
    which launch.conf are you talking about? try something like sudo ln -s /opt/local/bin/ffmpeg /usr/bin/ffmpeg
  • Austin A
    Austin A over 8 years
    If you're going to go this route, I would strongly suggest adding ffmeg to your usr/local/bin. It's general good unix/linux practice to not modify your usr/bin directory.