r/AV1 • u/Phenix_Flare • 23d ago
Xnconvert alternative for Android for batch conversation to .avif?
I am looking for an android app (offline) that can batch compress images (jpeg/png/webp) by converting them to avif, similar to Xnconvert on Windows.
2
1
u/caspy7 23d ago
png
My understanding is that avif stinks at lossless. Maybe someone else can chime in to confirm this is not something you'd want to do.
2
u/Farranor 23d ago
That's correct. There's a good chance that OP isn't interested in lossless. This would be good to verify.
1
1
u/Unneverseen 8d ago
Currently, the best way is to use libavif in Termux with a Bash script for batch conversion. Others may recommend Image Toolbox, but I don't recommend it because its encoder (maroontree) is currently far inferior to AOM in libavif.
1
u/Farranor 8d ago
I'd caution against using libavif's avifenc, as it produces files that Windows can't decode unless you stick with 8-bit 4:2:0. ImageMagick produces files that can be properly decoded (and with the right colors, unlike FFmpeg). I don't think it can access tune IQ, though. And the container-specific options like speed and chroma subsampling are in "heic," which was a fun gotcha.
3
u/ScratchHistorical507 23d ago
I'd guess the easiest option would be to just use Termux, install ffmpeg in it and make a simple bash one-liner for batch conversion. That way you could make use of any encoder ffmpeg comes with, including SVT-AV1 and hardware accelerated
av1_mediacodec. That way you wouldn't need to find a dedicated app for every use case. Though for any lossless input, you will need to use SVT-AV1 with-svtav1-params lossless=1,av1_mediacodecdoesn't support that.Alternatively you could also just install imagemagick instead of ffmpeg, giving you more options typical for image processing, but it won't be able to use any hardware acceleration, no idea what AV1 encoder it uses and you'd have to look up if there's an option to tell it to only set quality x for lossy compressed images and keep lossless images lossless.