[FFmpeg-trac] #4448(avformat:open): Support writing album cover art image embedded in ogg / opus metadata
FFmpeg
trac at avcodec.org
Thu Feb 20 13:45:13 EET 2025
#4448: Support writing album cover art image embedded in ogg / opus metadata
-------------------------------------+-------------------------------------
Reporter: llogan | Owner: (none)
Type: enhancement | Status: open
Priority: wish | Component: avformat
Version: git-master | Resolution:
Keywords: ogg opus | Blocked By:
metadata |
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by neitsab):
Just got caught by this, trying to transcode a Flac file with an embedded
cover to an Opus file, only to find that the cover had been stripped and
that there were no options to embed it into a matching stream:
{{{
ffmpeg -i cover.flac -c:a libopus -map 0:a -map 0:v -c:v copy test.opus -y
ffmpeg version n7.1 Copyright (c) 2007-2024 the FFmpeg developers
built with gcc 14.2.1 (GCC) 20240910
configuration: --prefix=/usr --disable-debug --disable-static --disable-
stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto
--enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-
gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray
--enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav
--enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-
libglslang --enable-libgsm --enable-libharfbuzz --enable-libiec61883
--enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame
--enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg
--enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse
--enable-librav1e --enable-librsvg --enable-librubberband --enable-
libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-
libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-
libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-
libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb
--enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq
--enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-
shared --enable-vapoursynth --enable-version3 --enable-vulkan
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.100 / 61. 19.100
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
Input #0, flac, from cover.flac:
...
Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
Stream #0:1: Video: mjpeg (Baseline), yuvj420p(pc,
bt470bg/unknown/unknown), 1400x1400 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn
(attached pic)
Metadata:
comment : Cover (front)
Stream mapping:
Stream #0:0 -> #0:0 (flac (native) -> opus (libopus))
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[libopus @ 0x623a17473700] No bit rate set. Defaulting to 96000 bps.
[opus @ 0x623a174755c0] Unsupported codec id in stream 1
[out#0/opus @ 0x623a174754c0] Could not write header (incorrect codec
parameters ?): Invalid argument
[af#0:0 @ 0x623a17475f40] Error sending frames to consumers: Invalid
argument
[af#0:0 @ 0x623a17475f40] Task finished with error code: -22 (Invalid
argument)
[af#0:0 @ 0x623a17475f40] Terminating thread with return code -22 (Invalid
argument)
[out#0/opus @ 0x623a174754c0] Nothing was written into output file,
because at least one of its streams received no packets.
frame= 0 fps=0.0 q=-1.0 Lsize= 0KiB time=N/A bitrate=N/A
speed=N/A
Conversion failed!
}}}
As a workaround, opusenc works out-of-the-box without any extra option,
but darn it it forces us to use another tool! ;-)
Dear devs please consider reviewing this 🙏🏻
--
Ticket URL: <https://trac.ffmpeg.org/ticket/4448#comment:14>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list