如何使用ffmpeg将.flac转换为.mp3,并保留所有元数据(即将.flac文件中的Vorbis注释转换为.mp3的ID3v2元数据)?
发布于 2014-09-30 06:20:29
以下命令在.mp3 (320 kbps)上保持高质量,并将.flac文件中的元数据转换为ID3v2格式,该格式可包含在.mp3文件中:
ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3
发布于 2015-10-31 19:47:58
上面的完美答案。我将它与find一起使用,通过以下命令将子树中的所有FLAC文件添加到iTunes中
find . -name "*.flac" -exec ffmpeg -i {} -ab 160k -map_metadata 0 -id3v2_version 3 {}.mp3 \;
要自动将结果文件添加到iTunes,请使用以下命令获取iTunes导入目录
find ~/Music/ -name "Automatically Add*"
结果例如
/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized
然后运行例如
find . -name "*.mp3" -exec mv {} "/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized/" \;
自动将所有转换后的曲目添加到iTunes。
发布于 2016-12-12 15:46:53
我测试了以下将infile.flac
文件转换为outfile.mp3
的命令
ffmpeg -i infile.flac -q:a 0 outfile.mp3
从Ubuntu 16.04开始,上面的命令似乎复制了(大多数?所有?)元数据。
-q:a 0
告诉ffmpeg
使用最高质量的可变比特率。
然而,ffmpeg
将我的专辑图片从jpeg
转码为png
,这增加了封面图片的大小。
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
选项,它指定应该复制视频流,而不是转码。完整的命令是:
ffmpeg -i infile.flac -c:v copy -q:a 0 outfile.mp3
上面的命令会导致:
Stream mapping:
Stream #0:1 -> #0:0 (copy)
Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame))
https://stackoverflow.com/questions/26109837
复制相似问题