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

Reading animated AVIF fails with error: Unsupported file-type: Unspecified: File does not include any supported brands. #377

Open
andrius4669 opened this issue Nov 16, 2020 · 11 comments

Comments

@andrius4669
Copy link

When trying to read animated AVIF file Chimera-AV1-10bit-480x270.avif from https://github.com/AOMediaCodec/av1-avif repository with heif-info, it fails with error:

$ heif-info Chimera-AV1-10bit-480x270.avif
MIME type: image/avif-sequence
Could not read HEIF/AVIF file: Unsupported file-type: Unspecified: File does not include any supported brands.

This file opens fine in gwenview (with qt-avif-image-plugin installed) and also chromium.
Also note that image/avif-sequence was removed from spec, see AOMediaCodec/av1-avif#59 and AOMediaCodec/av1-avif#86.

To reproduce:

git clone https://github.com/AOMediaCodec/av1-avif
cd av1-avif/testFiles/Netflix/avis
heif-info Chimera-AV1-10bit-480x270.avif

OS: ArchLinux x86_64
libheif version: 1.9.1
aom version: 2.0.0
dav1d version: 0.7.1
ImageMagick issue which led to me making this issue: ImageMagick/ImageMagick#2788
Relevant tree at the time of writing this issue: https://github.com/AOMediaCodec/av1-avif/tree/3fb01d066368fc09d86651c1034bcb7a84ca0715/testFiles/Netflix/avis

@lovell
Copy link
Contributor

lovell commented Jan 7, 2021

I tried this image with the proposed change in PR #419, which does help with some "avis" branded AVIF images, but it is missing a pitm (primary item) box.

$ heif-convert Chimera-AV1-10bit-480x270.avif out.png
Could not read HEIF/AVIF file: Invalid input: No 'pitm' box

@farindk
Copy link
Contributor

farindk commented Jan 7, 2021

Proper support for AVIS will require much more work and we also have to extend the API for that.
I never understood the need for another container for video formats. Maybe someone can enlighten me why this makes sense?

@lorenries
Copy link

One compelling use case for AVIF image sequences is on-the-fly image transformation services that convert animated GIFs to AVIF depending on the requester's Accept header.

Many downstream image transformation services rely on libheif via libvips, so a feature like this could potentially save a lot of bandwidth globally.

@bradh
Copy link
Contributor

bradh commented Dec 7, 2023

We could kind-of support files that have a heic or hevc compatible brand.

For example, with the test file that is linked over at #949

$ heif-info ~/starfield_animation.heic 
MIME type: image/heif-sequence
main brand: msf1
compatible brands: msf1, hevc, heic, mif1, iso8

image: 256x144 (id=1003), primary
  colorspace: YCbCr, 4:2:0
  bit depth: 8
  color profile: no
  alpha channel: no 
  depth channel: no
metadata:
  none
transformations:
  none
region annotations:
  none
properties:

That file is both an image (top level meta) and a movie (top level moof).

Compatible brand is essentially "if you can handle this, you'll be able to get something from the file", so possibly our checks would be more accurate if we parsed all of the compatible brands and not just the major brand. Its a little slower though.

@mrmason
Copy link

mrmason commented Jul 31, 2024

We are looking to replace our image serving service from webp to AVIF, and have bumped into this problem where animations converted seem to have all of the layers in the image, but the image won't play the animation in any browser.

This issue is blocking both libvips: libvips/libvips#3629 and imagemagick: ImageMagick/ImageMagick#6380 from supporting animation on AVIF which seems like a pretty big deal, seeing these are widely used image libraries for converting images on the web.

@bn-c
Copy link

bn-c commented Oct 7, 2024

+1

@BrentHuang
Copy link

BrentHuang commented Nov 23, 2024

+1

It is very necessary to support avif animations.

Avif is much smaller than gif, which can significantly reduce the CDN traffic overhead of a website.

libvips and imagemagick depend on libheif.

@ivanjaros
Copy link

4 years already...

@bradh
Copy link
Contributor

bradh commented Nov 26, 2024

4 years already...

This is unfriendly and unhelpful.

There is work planned (and some of it has already been done, just recently). We'd all like it to happen.However image sequences are quite different to images (in terms of ISOBMFF structure), and exposing them in a consistent, stable API needs a lot of changes to libheif.

Most of this work is being done by Dirk, and quite a lot of it on his own time. So unless you're making contibutions (in any way - code, financial sponsorship, community building, documentation), you aren't really helping. In some ways, making noise (especially negative noise) on a ticket is actually delaying getting it done. You aren't motivating, but rather demotivating, and that isn't OK.

So instead, look at how you could help.

@ghnp5
Copy link

ghnp5 commented Nov 26, 2024

This is unfriendly and unhelpful.

Absolutely. I keep seeing this behavior in several projects...

Are they even donating?? I doubt. They're just entitled.

Thank you very much for all your hard work.

@farindk
Copy link
Contributor

farindk commented Nov 26, 2024

No worries. I have apps in the Android PlayStore. I am used to much worse comments. I couldn't care less anymore. :-)
This is a small, but loud minority.

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

No branches or pull requests

10 participants