Skip to content
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

mp4 to animated avif #5

Open
dylannirvana opened this issue Oct 8, 2021 · 11 comments
Open

mp4 to animated avif #5

dylannirvana opened this issue Oct 8, 2021 · 11 comments
Labels
question Further information is requested

Comments

@dylannirvana
Copy link

Can this be used to convert an mp4 to an animated avif?

@lovell
Copy link
Owner

lovell commented Oct 8, 2021

No, sadly not, sorry.

I would be interested to know a bit more about the context/scenario where using an AVIF image sequence might be considered more appropriate or a better fit than using an mp4 video.

@lovell lovell added the question Further information is requested label Oct 8, 2021
@dylannirvana
Copy link
Author

dylannirvana commented Oct 8, 2021 via email

@dylannirvana
Copy link
Author

dylannirvana commented Oct 13, 2021

Our use case (I didn't invent it, but I did inherit it) is taking mp4s and converting them to animated WEBP and animated AVIF. Because of the file size and quality advantages of AVIF, this workflow makes sense, considering how commonplace the animated GIF is.

I am looking to accomplish this in a script so that it can be done programmatically. The ffmpeg library has code for WEBP https://ffmpeg.org/ffmpeg-all.html#libwebp but not for AVIF, which is expected to experience widespread adoption. The only service I found that does this is https://ezgif.com/video-to-avif. And I have contacted them to see if they would make their code available. But it seems like you are very close to this yourself.

@lovell
Copy link
Owner

lovell commented Oct 13, 2021

Thanks for the example. I don't see any mp4 files on the BMI awards page, am I missing something?

@dylannirvana
Copy link
Author

The opening animation is a AVIF/WEBP depending on your browser. It is in a <picture> tag, with a source set to choose media type and max-width.

@lovell
Copy link
Owner

lovell commented Oct 13, 2021

Ah, thanks, I opened the page in Chrome and see it now.

I'm still unsure why an embedded <video autoplay loop muted ...> wouldn't be preferable here. It will probably have a smaller file size, be more CPU efficient (especially on mobile), be more accessible, be more respectful of people's autoplay settings etc.

@ghost
Copy link

ghost commented Dec 3, 2021

https://codelabs.developers.google.com/codelabs/avif#5

It's possible.

@coreyward
Copy link

To chime in about a use case: browsers do not have native support for alpha transparency in H264/MP4 videos, so more esoteric formats are required (HEVC/H265 encoded Quicktime for Safari, and VP9 encoded WebM for everyone else). Since H265 requires licensing and x265 (the HEVC version of the massively popular freeware library called x264) does not support alpha transparency, options for producing well-optimized versions of alpha-channel .mov files for Safari are limited.

In these situations, a small animated AVIF image can be a better tradeoff, even though it's not going to benefit from hardware-accelerated playback or have built-in playback controls.

@lovell
Copy link
Owner

lovell commented Nov 14, 2022

@coreyward seethru used to be a solution to the alpha transparency problem, but I'm unsure if it's still suitable.

@ThatOneCalculator
Copy link

Any chance that we could also see APNG to animated AVIF?

@lovell
Copy link
Owner

lovell commented Mar 16, 2023

Animated AVIF (sequence) output is dependent on strukturag/libheif#377

Animated APNG input is dependent on randy408/libspng#4

Both are then dependent on the subsequent exposure of these features in libvips and sharp.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants