lovell/avif-cli

mp4 to animated avif

dylannirvana opened this issue · 11 comments

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

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.

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.

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

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.

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.

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.

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

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

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.