首页 > 解决方案 > Webm 是否支持封面艺术?

问题描述

我正在将 MP3 转换为 Webm,并且 MP3 文件包含用于封面艺术的视频流。

ffprobe filename.mp3
...
    Stream #0:0: Audio: mp3, 22050 Hz, stereo, fltp, 64 kb/s
    Stream #0:1: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 300x300, 90k tbr, 90k tbn, 90k tbc (attached pic)

使用ffmpegwith libopuscodec 转换文件会导致 VP9 视频流无法正常工作。我注意到:

  1. VLC Player 不显示持续时间,播放时进度条不移动。
  2. Android 媒体播放器不显示曲目封面的图像。
ffprobe filename.webm
...
Input #0, matroska,webm, from 'webm_bad/B01___01_Matthew_____ENGWEBN2DA.webm':
...
    Stream #0:0: Video: vp9 (Profile 1), yuv444p(tv, progressive), 300x300, SAR 1:1 DAR 1:1, 1k tbr, 1k tbn, 1k tbc (default)

如果我尝试使用-vcodec copy选项,则会收到此错误:

[webm @ 0x7fdddf028e00] Only VP8 or VP9 or AV1 video and Vorbis or Opus audio and WebVTT subtitles are supported for WebM.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:1 --

WebM 是否支持封面艺术?如果是这样,我如何使用 ffmpeg(或其他工具)传输 MP3 封面艺术?

标签: ffmpegwebmopus

解决方案


不,WebM 不支持封面艺术。

常见问题解答

WebM 文件结构基于 Matroska 媒体容器。

Matroska 容器中的封面艺术存储在附件中:

Attachment Elements可用于存储相关的封面艺术,[...]

WebM 容器不支持附件

附件

网络管理支持 元素名称 描述
不支持 附件 包含附加文件。
不支持 附件文件 一个附件。
不支持 文件描述 附加文件的人性化名称。
不支持 文件名 附加文件的文件名。
不支持 文件MimeType 文件的 MIME 类型。
不支持 文件数据 文件的数据。
不支持 文件 UID 代表文件的唯一 ID,尽可能随机。
不支持 文件推荐 需要附件时轨道/编解码器可以引用的二进制值。
不支持 FileUsedStartTime DivX 字体扩展
不支持 文件使用结束时间 DivX 字体扩展

也许您可以考虑使用不同的容器。Opus 音频流,如 WebM 容器中的音频流,由其他容器支持:

Opus 最初被指定用于封装在Ogg容器中

如果您仍想使用 WebM,另一种方法是创建带有静止图像的视频流和音频流。FFmpeg wiki 在幻灯片页面中涵盖了该主题。将它与解释如何提取 MP3 文件的封面艺术的这个答案结合起来,您可以执行以下操作:

ffmpeg -i filename.mp3 -an -c:v copy cover.jpeg
ffmpeg -loop 1 -i cover.jpeg -i filename.mp3 -c:v libvpx-vp9 -c:a libopus -b:a 64k -shortest filename.webm

64k是您在 ffprobe 的输出中显示的比特率。

第二个命令的编码可能很慢。FFmpeg wiki 中的Encode/Youtube 页面-framerate 2显示了一个示例命令,用于使用该选项创建带有静止图像的视频,如下所示:

ffmpeg -loop 1 -framerate 2 -i cover.jpeg -i filename.mp3 -c:v libvpx-vp9 -c:a libopus -b:a 64k -shortest filename.webm

由于某种我不知道的原因,我的 VLC 无法再现最后一个命令的输出视频,并且播放器崩溃。是没有使我的播放器崩溃6的最小值,所以要小心。-framerate


推荐阅读