I just added support for the ipython display protocol in the matplotlib.animations.Animation.save method, so that when you call &quot;save&quot; an embedded html movie is put into the notebook (<a href="https://github.com/matplotlib/matplotlib/pull/1012" target="_blank">https://github.com/matplotlib/matplotlib/pull/1012</a>).<div>


<br></div><div>A couple of minor warts became apparent, and I am wondering if there is a workaround.  One is that the mpl figure that contains the animation frame is also being displayed inline, so that in addition to the embedded movie, the last frame of the animation is also rendered as an inline mpl figure.  Is there a way to suppress a figure from being rendered?  Conceptually, I&#39;d like to be able to do:</div>


<div><br></div><div>    fig = plt.figure();  # semi-colon to suppress rendering</div><div><div><br></div><div>Secondly, it appears that recent versions of chrome and firefox do not support native rendering of mp4 movies (<a href="https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements" target="_blank">https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements</a>).  I hacked webm support into mpl animations so I have something working, but I&#39;d like it to also work with more common movie formats.  Since the default notebook tour shows examples of embedded mpl4 movies using the &lt;video&gt; html tag, I assume these are working for somebody.  But not for me on chrome (Chromium 18.0.1025.168 Ubuntu 12.04) or firefox (Mozilla Firefox 13.0.1).  I did a little googling and installed some of the chrome ffmpeg codecs (sudo apt-get install chromium-codecs-ffmpeg-extra) and this does enable me to view the default ipython mv4 movie examples, but strangely not movies I am creating using mpl via ffmpeg (I can play these using eg mplayer).  My _repr_html_ method is returning &#39;&lt;video controls src=&quot;/files/movies/pcolors.m4v&quot; /&gt;&#39; which looks correct to me.  But for some reason I am getting the dreaded black box with the triangle play button that does noting rather than the movie window with the control.  Not a big deal because I have webm working but thought I&#39;d throw it out there in case someone has an idea what is going on.</div>

<div><br></div><div><br></div><div># example animation notebook cell with display hook; requires <a href="https://github.com/matplotlib/matplotlib/pull/1012" target="_blank">https://github.com/matplotlib/matplotlib/pull/1012</a></div>

<div><br></div><div><div>import matplotlib.animation as animation</div><div>fig, ax = plt.subplots()</div><div>x = np.arange(-9, 10)</div><div>y = np.arange(-9, 10).reshape(-1, 1)</div>
<div>base = np.hypot(x, y)</div><div><br></div><div># each frame is a list of matplotlib artists to be animated for the frame; here only one image per frame</div><div>frames = []</div><div>for add in np.arange(15):</div>

<div>
    ax.cla()  # clear the last frame</div><div>    im = ax.pcolor(x, y, base + add, norm=plt.Normalize(0, 30))</div><div>    frames.append([im])</div><div><br></div><div>im_ani = animation.ArtistAnimation(fig, frames, repeat=False, blit=True)</div>


<div><br></div><div># Set up formatting for the movie files</div><div>Writer = animation.writers[&#39;ffmpeg_file&#39;]</div><div><br></div><div># we can force ffmpeg to make webm movies if we use -f webm and no codec. </div>


<div># webm works by default on chrome and firefox</div><div>writer = Writer(fps=15, codec=&#39;None&#39;, extra_args=[&#39;-f&#39;, &#39;webm&#39;])</div><div>im_ani.save(&#39;movies/im2.webm&#39;, writer=writer)</div></div>


</div>