FFMPEG 将 FLAC 转换为带有封面图像的 OPUS

FFMPEG 将 FLAC 转换为带有封面图像的 OPUS

我有一个巨大的脚本来将我的 FLAC 转换为 OPUS 文件,但我正在努力解决一个特定问题。转换并尝试复制封面图像时,会抛出错误。序言,这是处理转换的脚本的一部分:

find $DIRECTORY -type f \
    \( -iname "*${EXTENSIONS[0]}" $(if [ ${#EXTENSIONS[@]} -gt 1 ]; \
    then printf -- '-o -iname *%s ' "${EXTENSIONS[@]:1}"; fi) \) \
    -print0 | \
    xargs -0 -P $THREADS -I {} \
        ffmpeg -i "{}" \
        $(if [ ! $VERBOSE ]; then echo "-loglevel warning"; fi) \
        -map 0:a \
        -c:a libopus -map_metadata 0 -map_metadata:s:a 0:s:a \
        -b:a $BITRATE \
        -map 0:v \
        -c:v copy -map_metadata 0 -map_metadata:s:v 0:s:v -disposition:v:1 attached_pic \
        -y "{}.opus"

我收到以下错误:

Stream mapping:
  Stream #0:0 -> #0:0 (flac (native) -> opus (libopus))
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[opus @ 0x562a9db664c0] Unsupported codec id in stream 1
[out#0/opus @ 0x562a9db64580] Could not write header (incorrect codec parameters ?): Invalid argument
[aost#0:0/libopus @ 0x562a9db68540] Error initializing output stream: 

然而,这在这里有效:

ffmpeg -i "{}" \
  $(if [ ! $VERBOSE ]; then echo "-loglevel warning"; fi) \
  -map 0:a \
  -c:a libopus -map_metadata 0 -map_metadata:s:a 0:s:a \
  -b:a $BITRATE \
  -y "{}.opus"

以及这里的这个:

ffmpeg -i "{}" \
  $(if [ ! $VERBOSE ]; then echo "-loglevel warning"; fi) \
  -map 0:a \
  -map_metadata 0 -map_metadata:s:a 0:s:a \
  -b:a $BITRATE \
  -map 0:v \
  -c:v copy -map_metadata 0 -map_metadata:s:v 0:s:v -disposition:v:1 attached_pic \
  -y "{}.mp3"

唯一的区别是,后者要么不复制视频,要么输出 MP3 而不是作品。因此 ffmpeg 命令本身应该是正确的,因为如果我不包含视频流(在 OPUS 和 MP3 中),它不会复制图像

这是非常奇怪的行为,我现在完全不知道如何解决它,这是否记录在某处?感觉像是 libopus 问题,但为什么 libopus 甚至会看视频,如果不看,为什么会抛出错误?

PS:意识到 ffprobe 可能有用,对于带有缩略图的 OPUS 文件(用 Kid3 创建)和对于同一首歌曲的 flac 文件

PPS:在有人对我聪明之前,是的,我可以用 for 循环来完成此操作,我想要一个挑战而不是一个有用的脚本,它恰好两者兼而有之。是的,我可以手动执行,我每个月至少购买一张专辑,我不想手动执行这些操作,也不想在我的 Jellyfin 上添加flac

答案1

目前,FFMPEG 不支持 OGG 容器中的封面艺术,请参阅支持编写嵌入 ogg/opus 元数据中的专辑封面艺术图像 - 评论 11

您可以使用参数手动添加图像作为封面艺术-metadata:s:a METADATA_BLOCK_PICTURE=...

如需手动解决方案,请参阅在 OGG 音频文件中添加艺术封面在超级用户上

相关内容