animation (part 2)

suggested from previous posts). On my current system I

    > couldn't get mencoder to work correctly (or mplayer, for
    > that matter), so I had to use 'convert', but it's fairly
    > easy to change it. Of course, ideally using the FFMPEG
    > library would be best, but I don't have time to write the
    > necessary SWIG files just now.

    > Also included is a quick example of phase-shifting
    > sine-waves.

Hey Abraham,

While longer term a cross platform animation mpeg wrapper toolkit
would indeed be nice, in the short term I think that classes like this
can be very useful to make animation easier. One thing I would like
to see is support for the recent matplotlib bbox/blit animation
features, which can make animation an order of magnitude faster. Have
you perused the animation wiki?

Beyond that, you may want to look at the RectangleSelector and
HorizontalSpanSelector in the widgets.py file to see how they handle
connections to draw_events, etc....

Thanks,
JDH

I did take a look at the wiki, but for some reason I couldn't get it working first pass. I'll try again. I also realized that the Animation classes will have to be a bit more complex than I originally though, as they are essentially iterators, so they should be broken up into: ForwardAnimation, BidirectionalAnimation, and RandomAnimation.

Also, perhaps of general interest, my method of creating .MPG files with convert failed recently due to my movies being too long, and the huge number of frames cause convert to break (too many parameters on command line). Having no other options, I created a wrapper for FFMPEG. To save time (and so perhaps a better/more complete method would be better..) I have attached the library to this message, in case it helps anyone else. Of the many caveats:

(1) Only three functions are exposed, instead of the full functionality of FFMPEG. On the plus side, it's pretty easy to make a movie now.
(2) Most of the code is copied from output_example.c, from the FFMPEG source. This is in part because there is little to no documentation that comes with the library. To save time I kept most of the source code the same, but just encapsulated in with a C++ class. There are a couple things done in it, which I have left alone, but have no clue what they do (if anyone has any suggestions as to what they do [e.g. how to determine the size of video_outbuf_size], it would be greatly appreciated).
(3) I've never touched anything related to video before, so there's a good chance I messed up a bunch of other stuff.
(4) I used Boost::Python instead of SWIG, mainly because I know Boost::Python, and I don't know SWIG.
(5) You will need (of course) FFMPEG installed on your computer (the CVS version is considered the most correct version to run)

With that said, it seems to work fairly well. Along with the library, I included a small test python program that shows how to use it (simulating the game of life). One things I've noticed, is that with graphs, to get any decent quality from the MPEG, you have to set the bitrate extremely high..

Abe

pyanim.tar.gz (3.95 KB)

···

Hey Abraham,

While longer term a cross platform animation mpeg wrapper toolkit
would indeed be nice, in the short term I think that classes like this
can be very useful to make animation easier. One thing I would like
to see is support for the recent matplotlib bbox/blit animation
features, which can make animation an order of magnitude faster. Have
you perused the animation wiki?

Beyond that, you may want to look at the RectangleSelector and
HorizontalSpanSelector in the widgets.py file to see how they handle
connections to draw_events, etc....

Thanks,
JDH

-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
matplotlib-devel List Signup and Options