首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用ffmpeg将.flac转换为.mp3,保留所有元数据

使用ffmpeg将.flac转换为.mp3,保留所有元数据
EN

Stack Overflow用户
提问于 2014-09-30 06:20:29
回答 7查看 92.9K关注 0票数 107

如何使用ffmpeg将.flac转换为.mp3,并保留所有元数据(即将.flac文件中的Vorbis注释转换为.mp3的ID3v2元数据)?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-09-30 06:20:29

以下命令在.mp3 (320 kbps)上保持高质量,并将.flac文件中的元数据转换为ID3v2格式,该格式可包含在.mp3文件中:

代码语言:javascript
复制
ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3
票数 180
EN

Stack Overflow用户

发布于 2015-10-31 19:47:58

上面的完美答案。我将它与find一起使用,通过以下命令将子树中的所有FLAC文件添加到iTunes中

代码语言:javascript
复制
find . -name "*.flac" -exec ffmpeg -i {} -ab 160k -map_metadata 0 -id3v2_version 3 {}.mp3 \;

要自动将结果文件添加到iTunes,请使用以下命令获取iTunes导入目录

代码语言:javascript
复制
find ~/Music/ -name "Automatically Add*"

结果例如

代码语言:javascript
复制
/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized

然后运行例如

代码语言:javascript
复制
find . -name "*.mp3" -exec mv {} "/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized/" \;

自动将所有转换后的曲目添加到iTunes。

票数 67
EN

Stack Overflow用户

发布于 2016-12-12 15:46:53

我测试了以下将infile.flac文件转换为outfile.mp3的命令

代码语言:javascript
复制
ffmpeg  -i infile.flac  -q:a 0  outfile.mp3

从Ubuntu 16.04开始,上面的命令似乎复制了(大多数?所有?)元数据。

-q:a 0告诉ffmpeg使用最高质量的可变比特率。

然而,ffmpeg将我的专辑图片从jpeg转码为png,这增加了封面图片的大小。

代码语言:javascript
复制
Stream mapping:
  Stream #0:1 -> #0:0 (mjpeg (native) -> png (native))
  Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame))

(我认为上面的转换在某种程度上是有意义的given how ffmpeg works。)

经过一番挖掘,我找到了-c:v copy选项,它指定应该复制视频流,而不是转码。完整的命令是:

代码语言:javascript
复制
ffmpeg  -i infile.flac  -c:v copy  -q:a 0  outfile.mp3

上面的命令会导致:

代码语言:javascript
复制
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame))
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26109837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档