Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
timhoffm merged 1 commit intomatplotlib:masterfromanntzer:animframefmts
Dec 12, 2020

Conversation

anntzer
Copy link
Contributor

  • Warn if the requested frame format is unsupported and fallback occurs.
  • FFMpegFileWriter does not support 'raw' or 'rgba' (AFAICT there's no
    way to forward the relevant frame size/bitdepth info).
  • 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), but it does not
    support 'raw' (perhttps://imagemagick.org/script/formats.php).

Test script:

importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlib.animationasanimationfig,ax=plt.subplots()x=np.arange(0,2*np.pi,0.01)line,=ax.plot(x,np.sin(x))defanimate(i):line.set_ydata(np.sin(x+i/50))# update the data.returnline,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.)

PR Summary

PR Checklist

  • Has pytest style unit tests (andpytest passes).
  • IsFlake 8 compliant (runflake8 on changed files to check).
  • New features are documented, with examples if plot related.
  • Documentation is sphinx and numpydoc compliant (the docs shouldbuild without error).
  • Conforms to Matplotlib style conventions (installflake8-docstrings and runflake8 --docstring-convention=all).
  • New features have an entry indoc/users/next_whats_new/ (follow instructions in README.rst there).
  • API changes documented indoc/api/next_api_changes/ (follow instructions in README.rst there).

@QuLogic
Copy link
Member

QuLogic commentedDec 1, 2020
edited
Loading

FFMpegFileWriter does not support 'raw' or 'rgba' (AFAICT there's no
way to forward the relevant frame size/bitdepth info).

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

@anntzer
Copy link
ContributorAuthor

I specifically meant the Matplotlib class, when used for reconstituting a moviefrom 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 :)

@QuLogic
Copy link
Member

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.

Copy link
Member

@QuLogicQuLogic left a 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.

@anntzer
Copy link
ContributorAuthor

anntzer commentedDec 2, 2020
edited
Loading

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...

@QuLogic
Copy link
Member

QuLogic commentedDec 3, 2020
edited
Loading

Isn't that overwritten inFileMovieWriter.__init__ anyway? Ah, I see you want to avoid that new warning. How about re-orderingsupported_formats to put rgba first, and then useframe_format = supported_formats[0] in the init?

@anntzer
Copy link
ContributorAuthor

Ah yes, that's a good idea.

@QuLogic
Copy link
Member

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' (perhttps://imagemagick.org/script/formats.php) but we  can just override it as 'rgba'.Test script:```pythonimport numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animationfig, 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.)
@anntzer
Copy link
ContributorAuthor

hopefully fixed now...

@timhoffmtimhoffm added this to thev3.4.0 milestoneDec 12, 2020
@timhoffmtimhoffm merged commit7a5458b intomatplotlib:masterDec 12, 2020
@anntzeranntzer deleted the animframefmts branchDecember 12, 2020 12:12
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@QuLogicQuLogicQuLogic approved these changes

@timhoffmtimhoffmtimhoffm approved these changes

@dopplershiftdopplershiftAwaiting requested review from dopplershift

Assignees
No one assigned
Projects
None yet
Milestone
v3.4.0
Development

Successfully merging this pull request may close these issues.

4 participants
@anntzer@QuLogic@dopplershift@timhoffm

[8]ページ先頭

©2009-2025 Movatter.jp