mirror of
https://github.com/nyanmisaka/ffmpeg-rockchip.git
synced 2025-10-22 00:20:07 +08:00
avformat/movenc: Add support for AVIF muxing
Add an AVIF muxer by re-using the existing the mov/mp4 muxer. AVIF Specification: https://aomediacodec.github.io/av1-avif Sample usage for still image: ffmpeg -i image.png -c:v libaom-av1 -still-picture 1 image.avif Sample usage for animated AVIF image: ffmpeg -i video.mp4 animated.avif We can re-use any of the AV1 encoding options that will make sense for image encoding (like bitrate, tiles, encoding speed, etc). The files generated by this muxer has been verified to be valid AVIF files by the following: 1) Displays on Chrome (both still and animated images). 2) Displays on Firefox (only still images, firefox does not support animated AVIF yet). 3) Verified to be valid by Compliance Warden: https://github.com/gpac/ComplianceWarden Fixes the encoder/muxer part of Trac Ticket #7621 Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
This commit is contained in:

committed by
Gyan Doshi

parent
98ec4261fd
commit
84241e63cf
@@ -43,6 +43,7 @@
|
||||
#define MODE_IPOD 0x20
|
||||
#define MODE_ISM 0x40
|
||||
#define MODE_F4V 0x80
|
||||
#define MODE_AVIF 0x100
|
||||
|
||||
typedef struct MOVIentry {
|
||||
uint64_t pos;
|
||||
@@ -244,6 +245,10 @@ typedef struct MOVMuxContext {
|
||||
MOVPrftBox write_prft;
|
||||
int empty_hdlr_name;
|
||||
int movie_timescale;
|
||||
|
||||
int64_t avif_extent_pos;
|
||||
int avif_extent_length;
|
||||
int is_animated_avif;
|
||||
} MOVMuxContext;
|
||||
|
||||
#define FF_MOV_FLAG_RTP_HINT (1 << 0)
|
||||
|
Reference in New Issue
Block a user