-
-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Cleanup Animation frame_formats. #19044
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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. |
QuLogic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you revert the raw/rgba removal bits, and then I can add tests into #19056.
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).