我有一个脚本它提取我的音乐收藏的指定子集。我的大部分音乐都是 FLAC;由于空间(和支持的格式)可能是目标设备(智能手机、汽车收音机等)上的一个问题,它还可以“向下”转换为 MP3 的 OGG。
我想通了不久以前如何将 FLAC 转换为 OGG 以便保留元数据:
ffmpeg -v quiet -y -i "${infile}" \
-codec:a libvorbis -qscale:a 6 -map_metadata 0 \
"${outfile}"
但是,我注意到,如果 FLAC 包含封面图像,生成的文件将无法在我的 Android 应用程序中播放。我做到了一些挖掘;缺点是,在这种情况下 ffmpeg 似乎会创建损坏的 OGG。
这是一个错误,还是我必须选择不同的参数?
答案1
我知道这是一篇旧帖子,但当我遇到同样的问题时我发现了它。经过多次尝试,我仍然找不到一种方法让 ffmpeg 在转换为 OGG 时从 FLAC 文件保存嵌入的封面艺术。
我最终找到了一个解决方案GStreamer并决定发布,希望能节省其他人一些时间:
gst-launch-1.0 -v -m filesrc location='inputfilename.flac' ! decodebin ! audioconvert ! vorbisenc quality=0.6 ! oggmux ! filesink location='outputfilename.ogg'
GStreamer 解决方案运行良好,封面艺术嵌入 OGG 文件中,保留了 FLAC 的重播增益标签,封面显示在我的文件管理器以及 Linux 和 Android 上的音乐播放器的缩略图中。
您可以轻松地将 GStreamer 命令包含在 Bash、PHP 或其他脚本中以迭代一堆文件。