使用 avconv 映射元数据不起作用

使用 avconv 映射元数据不起作用

根据我的理解man avconv(版本9.16-6:9.16-0ubuntu0.14.04.1),以下命令应该转换input.oggoutput.mp3并继承元数据:

avconv -i input.ogg -map_metadata 0 output.mp3

然而事实并非如此;ogginfo清楚地显示信息(艺术家、专辑、标题...)input.oggid3info确认output.mp3具有空(ID3)标签。

ogg当转换为flac、 或(大概)格式的任意组合时,也会发生同样的情况。

难道是我的理解-map_metadata错了?有没有一种方法可以在格式之间进行转换并保留标签(无需像)?

答案1

下列的这个答案在 Stack Overflow 上,我进行了修改,发现正确的参数取决于输入和输出格式/编解码器的组合。

这些组合按预期工作:

  • OGG → MP3:-map_metadata 0:s:0

  • FLAC→MP3:-map_metadata 0:g:0

  • FLAC → OGG:-map_metadata 0
    使用-codec libvorbis.

    如果您的 FLAC 包含封面(作为流),请添加-vn以删除该流(全部视频流,真的);否则结果是一个损坏的文件。看这里了解稍后添加封面图像的方法。

由于avconv现在正式死亡,我会注意到相同的选项似乎适用于ffmpeg(至少到 3.4.8)。


  1. 根据一些无论如何,球员们。 easyTag 会记录“Ogg 比特流包含未知数据”,并且 Android 12 会拒绝播放该文件,VLC 不会发现任何问题。所以YMMV。

相关内容