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

Provide reference library and CLI tools (libavif) #44

Closed
EwoutH opened this issue Jan 27, 2019 · 7 comments
Closed

Provide reference library and CLI tools (libavif) #44

EwoutH opened this issue Jan 27, 2019 · 7 comments

Comments

@EwoutH
Copy link

EwoutH commented Jan 27, 2019

For easy integration and experimentation a reference library and command line tools for AVIF should be provided somewhere. It could have a similar structure to webp, which provides a libary libwebp and command line tools cwebp and dwebp.

I would suggest the following 6 packages to be created:

.avif (single frame)

  • libavif: Encoding and decoding .avif library
  • cavif: Command line .avif encoding tool
  • davif: Command line .avif decoding tool

.avifs (multi frame / animation)

  • libavifs: Encoding and decoding .avifs library
  • cavifs: Command line .avifs encoding tool
  • davifs: Command line .avifs decoding tool

In this configuration, the avif tools could be very lightweight, since only the AV1 intra encoding and decoding tools are needed. the avifs tools extend avif with the inter en- and decoding code. cavifs could replace both gif2webp and img2webp.

@EwoutH
Copy link
Author

EwoutH commented Jan 28, 2019

Someone already gave it a try: https://github.com/joedrago/avif

@EwoutH
Copy link
Author

EwoutH commented Feb 21, 2019

@cconcolato @aklemets Congratulations on officially releasing version 1.0.0 of the spec!

Are there any plans for an official reference library (as far as you are aware of)?

@cconcolato
Copy link
Collaborator

Thanks. As of now, there is no plan to have an "official" reference library for the AVIF layer on top of libaom. We rely on non-official OSS like libavif or mp4box. If you think anything is missing, AOM could certainly consider developing/sponsoring the missing bricks.

@EwoutH
Copy link
Author

EwoutH commented Feb 21, 2019

@cconcolato Thanks for the quick response! I think CLI applications are essential for quick feedback loops with users (testing, debugging, profiling, etc.). cwebp and dwebp where great in that regard.

@ledyba-z
Copy link
Contributor

ledyba-z commented Jan 26, 2020

@EwoutH @cconcolato

Hi! We are Link-U, a Japanese digital comics publishing company.

We are strongly interested to use AVIF in production.

We are developing encoder/decoder commands ourself, so please let me introduce them:

cavif - avif encoder, using libaom directly.

https://github.com/link-u/cavif

Despite libavif supports libaom and rav1e, cavif supports just libaom as a backend. Instead, it allows usesr to control most all of encoding options in libaom, to tune image quality ultimately. Please see long-long-long SYNOPSIS.

davif - avif decoder, using dav1d directly.

https://github.com/link-u/davif

We made it to check the result of cavif. It supports rotation/mirror/crop feature, libavif does not support yet.

libavif-container

https://github.com/link-u/libavif-container

AVIF file manipulating library. cavif and davif use this. It is just for parsing and writing AVIF file, and does not provide encoding or decoding API, to allow users to select their preferred encoder/decoder with preferred settings.

@cconcolato
Copy link
Collaborator

The group discussed this issue in its meeting today. https://github.com/AOMediaCodec/libavif/ is the reference implementation for AVIF. Other implementations are very welcome and can be listed in the https://github.com/AOMediaCodec/av1-avif/wiki. I'm closing this issue.

@dmak
Copy link

dmak commented Oct 8, 2023

If somebody could update on the issue: Git repositories started by Link-U are outdated, and cloned repository was released in March 2020, so seems to be unmaintained as well.

Any hint on where to get a good reference CLI that uses the library (except ffmpeg)?

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

No branches or pull requests

4 participants