如果我有一个 .opus 文件,如何使用 FFmpeg 设置专辑封面?
我已成功完成以下操作:
ffmpeg -i Pogo.mp3 -i StellarDrone.png -map 0:0 -map 1:0 -codec copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" out.mp3
使用Pogo.mp3
和作为测试文件。但这显然Stellardrone.png
不起作用。.opus
ffmpeg -i Hotlines.opus -i StellarDrone.png -map 0:0 -map 1:0 -codec copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" out.opus
ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
configuration:
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
Input #0, ogg, from 'Hotlines.opus':
Duration: 00:04:01.00, start: -0.960000, bitrate: 359 kb/s
Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
Metadata:
ARTIST : ChrisKeya
FMPS_PLAYCOUNT : 0
FMPS_RATING_AMAROK_SCORE: 0.04
TITLE : Hotlines
Stream #0:1: Video: png, rgb24(pc), 1280x720 [SAR 1:1 DAR 16:9], 90k tbr, 90k tbn, 90k tbc
Metadata:
comment : Cover (front)
title : ChrisKeya - LateNight [Full EP].png
Input #1, png_pipe, from 'StellarDrone.png':
Duration: N/A, bitrate: N/A
Stream #1:0: Video: png, rgb24(pc), 1280x720 [SAR 1:1 DAR 16:9], 25 tbr, 25 tbn, 25 tbc
[opus @ 0x55a1a7d72100] Unsupported codec id in stream 1
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #1:0 -> #0:1 (copy)
Last message repeated 1 times
特别值得注意的是红色的部分:
[opus @ 0x55af9c499100] Unsupported codec id in stream 1
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
答案1
这个 ffmpeg 命令可以使用:
ffmpeg -i in.opus -i metadata.dat -map_metadata 1 -codec copy out.opus
其中 metadata.dat 是一个文本文件,其组成如下:
;FFMETADATA1
METADATA_BLOCK_PICTURE=<img_blob64>
其中 <img_blob64> 是一些关于图像和图像本身的信息的 base64 编码。不幸的是,形成这个编码的 blob 有点复杂。有关更多信息(包括一些帮助脚本),请参阅在 Linux 中通过命令行将专辑封面嵌入 OGG