gpt4 book ai didi

ffmpeg - Webm 是否支持封面艺术?

转载 作者:行者123 更新时间:2023-12-04 23:07:16 29 4
gpt4 key购买 nike

我正在将 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)
使用 ffmpeglibopus转换文件的编解码器会导致 VP9 视频流无法正常工作。我注意到:
  • VLC Player 不显示持续时间,播放时进度条不移动。
  • 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 封面艺术?

    最佳答案

    不,WebM 不支持封面艺术。
    来自 the FAQ :

    The WebM file structure is based on the Matroska media container.


    Matroska 容器中的封面艺术存储在 attachment 中。 :

    Attachment Elements can be used to store related cover art, [...]


    WebM 容器不支持 attachments :

    Attachment

    WebM Support Element Name Description
    Unsupported Attachments Contain attached files.
    Unsupported AttachedFile An attached file.
    Unsupported FileDescription A human-friendly name for the attached file.
    Unsupported FileName Filename of the attached file.
    Unsupported FileMimeType MIME type of the file.
    Unsupported FileData The data of the file.
    Unsupported FileUID Unique ID representing the file, as random as possible.
    Unsupported FileReferral A binary value that a track/codec can refer to when the attachment is needed.
    Unsupported FileUsedStartTime DivX font extension
    Unsupported FileUsedEndTime DivX font extension

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

    Opus was originally specified for encapsulation in Ogg containers


    如果您仍想使用 WebM,另一种方法是创建带有静止图像的视频流和音频流。 FFmpeg wiki 在 Slideshow page 中涵盖了该主题。 .结合 this answer ,它解释了如何提取 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 的输出中显示的比特率。
    第二个命令的编码可能很慢。 Encode/Youtube page在 FFmpeg wiki 中显示了使用 -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这并没有使我的播放器崩溃,所以要小心。

    关于ffmpeg - Webm 是否支持封面艺术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65705833/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com