Cleanup Animation frame_formats.#19044
Conversation
59ff074 to
fc44d8a
Compare
I'm not sure about the class in Matplotlib, but at least ffmpeg can accept rgba frames (specifying size, etc. via command-line info) https://ffmpeg.org/ffmpeg-formats.html#rawvideo |
|
I specifically meant the Matplotlib class, when used for reconstituting a movie from on-disk image (rgba) files. If you (or someone else) knows the right invocation to make the example given above work, then that's even better :) |
|
Yes, I linked to the wrong format, but it should be possible. I just need to test out the other frame formats to be sure I didn't break it. |
fc44d8a to
73be90b
Compare
|
Actually, looks like the check for FileMovieWriter when setting the frame format to rgba is still needed for HTMLWriter, which does not support that format... |
|
Isn't that overwritten in |
73be90b to
0850ba0
Compare
|
Ah yes, that's a good idea. |
|
Unfortunately, seems to have broken docs. |
- Warn if the requested frame format is unsupported and fallback occurs. - ImageMagickFileWriter supports 'rgba' but requires explicit frame_size and depth to do so (they are the same as for ImageMagickWriter, and passing them doesn't negatively impact other formats); it does not support 'raw' (per https://imagemagick.org/script/formats.php) but we can just override it as 'rgba'. Test script: ```python import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation fig, ax = plt.subplots() x = np.arange(0, 2*np.pi, 0.01) line, = ax.plot(x, np.sin(x)) def animate(i): line.set_ydata(np.sin(x + i / 50)) # update the data. return line, ani = animation.FuncAnimation( fig, animate, interval=50, blit=True, save_count=20) plt.rcParams["animation.frame_format"] = "rgba" # or "raw" writer = animation.FFMpegFileWriter() # or animation.ImageMagickFileWriter() ani.save("/tmp/movie.mp4", writer=writer) ``` (Also move import of PIL up, as it's a standard dependency now.)
0850ba0 to
6062833
Compare
|
hopefully fixed now... |
way to forward the relevant frame size/bitdepth info).
and depth to do so (they are the same as for ImageMagickWriter, and
passing them doesn't negatively impact other formats), but it does not
support 'raw' (per https://imagemagick.org/script/formats.php).
Test script:
(Also move import of PIL up, as it's a standard dependency now.)
PR Summary
PR Checklist
pytestpasses).flake8on changed files to check).flake8-docstringsand runflake8 --docstring-convention=all).doc/users/next_whats_new/(follow instructions in README.rst there).doc/api/next_api_changes/(follow instructions in README.rst there).