根据我的理解man avconv
(版本9.16-6:9.16-0ubuntu0.14.04.1
),以下命令应该转换input.ogg
为output.mp3
并继承元数据:
avconv -i input.ogg -map_metadata 0 output.mp3
然而事实并非如此;ogginfo
清楚地显示信息(艺术家、专辑、标题...)input.ogg
并id3info
确认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)。
- 根据一些无论如何,球员们。 easyTag 会记录“Ogg 比特流包含未知数据”,并且 Android 12 会拒绝播放该文件,但VLC 不会发现任何问题。所以YMMV。