如何使用ffmpeg将.flac转换为.mp3,保留所有元数据(将.flac文件中的Vorbis注释转换为.mp3的ID3v2元数据)?使用ffmpeg将.fla3转换为.f3,保留所有元数据
回答
以下命令继续.MP3高质量(320 kbps的),和元数据从文件.FLAC被转换为的ID3v2格式,其可以被包括在.mp3文件:
ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3
值得注意的是,“ffmpeg”可能需要替换为“avconv”。 – shockburner 2016-04-25 22:28:46
FWIW'ffmpeg' 3.2自动将元数据从FLAC中复制到ID3v2中,无需指定'-map_metadata 0 -id3v2_version 3',尽管它不会复制到ID3v1标签中。我为此使用了一个单独的工具。 – Dai 2016-11-26 23:43:52
歌词仍然没有得到复制虽然 – user151496 2017-10-14 23:22:48
完美以上回答。我结合使用它查找到一个子树添加所有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。
如果你想节省一点空间,尝试hydrogenaud.io推荐:
质量很高:高保真音响,家中或安静的听,用最好的文件大小
-V0 (~245 kbps)
,-V1 (~225 kbps)
,-V2 (~190 kbps)
或-V3 (~175 kbps)
是推荐的。 这些VBR设置通常会产生透明结果。这些预设之间可能存在差异,但很少见。
来源:http://wiki.hydrogenaud.io/index.php?title=LAME
如果你想使用的ffmpeg这个选项,你应该使用-q:a 0
别名。
控制质量与
-qscale:a
(或别名-q:a
)。值是编码器特定的,因此对于libmp3lame,范围是0-9,其中较低的值是较高的质量。 0-3通常会产生透明的结果,4(默认)应该接近知觉透明度,6产生“可接受”的质量。选项-qscale:a
映射到独立lame命令行界面工具中的-V
选项。
来源:https://trac.ffmpeg.org/wiki/Encode/MP3
如果你想的ID3v1元标记过,您应添加-write_id3v1 1
参数。
所以我最后的命令是:
ffmpeg.exe -y -i input.flac -codec:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 output.mp3
我测试下面的命令来转换infile.flac
文件outfile.mp3
:
ffmpeg -i infile.flac -q:a 0 outfile.mp3
随着Ubuntu的16.04,上面的命令似乎复制(最所有的?)元数据。
-q:a 0
告诉ffmpeg
使用最高质量的VBR。
但是,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))
- 1. 将.mov转换为.mp4并使用FFMPEG保留Alpha通道
- 2. 将m4a转换为aac并在Windows 7上保留元数据
- 3. 将BitmapSource转换为保留所有帧的图像
- 4. 使用ffmpeg将RTP数据包转换为WAV或AU
- 5. 将熊猫数据框转换为numpy数组,保留索引
- 6. 使用FFMPEG将视频转换为FLV
- 7. 使用ffmpeg将WAV转换为AIFF
- 8. 使用ffmpeg将rtmp流转换为png
- 9. 使用FFMPEG将AMR转换为MP3
- 10. 使用ffmpeg库将.264转换为.ts
- 11. C++ Cout将字符串转换为十进制数并保留所有小数
- 12. 使用ffmpeg转换音频文件并保留专辑插图
- 13. 使用ffmpeg将mp4转换为gif时使用ffmpeg下载fps
- 14. 将所有元素转换为属性
- 15. 将XML供稿转换为JSON以保留iTunes:图像数据
- 16. 无法保存ffmpeg视频转换中的元数据
- 17. 如何将AY音乐文件转换为FLAC在Linux中保留元数据?
- 18. 将列表转换为数据框,同时保留列表元素名称
- 19. 将docx转换为mediawiki并保留[[Image:]]
- 20. 使用iText将PDF格式转换为PDF格式(保留数据)
- 21. ffmpeg将mov转换为flv
- 22. 如何使用ffmpeg自动将所有MP4文件转换为FLV?
- 23. ffmpeg将MKV转换为MP4,同时保留音频和字幕标题
- 24. 使用XSL将所有元素名称转换为小写?
- 25. 使用xslt将所有xml元素转换为txt
- 26. 使用PHP将XML转换为JSON,同时保留阵列
- 27. 使用XSLT将XML转换为CSV - 保留波兰语字母
- 28. 使用iTextSharp将图像转换为PDF保留剪切路径
- 29. 使用PIL将PNG32转换为PNG8,同时保留透明度
- 30. 如何将功能键F3转换为字节数组?
请注意,下一次,你应该问在[苏]'ffmpeg' CLI使用的问题。 [so]仅适用于涉及编程的问题。另外,FLAC [官方支持Vorbis评论](http://xiph.org/flac/format.html#format_overview),所以我假设你想转换为ID3v2而不是“保持”。 – LordNeckbeard 2014-09-29 23:31:12
好的,我解决了我的问题。我在这里问,因为我在StackOverflow上看到这样的问题(例如[this](http://stackoverflow.com/questions/24840708/ffmpeg-convert-flac-to-mp3-and-add-album-art-in-one一步)或[这](http://stackoverflow.com/questions/15294844/with-ffmpeg-trying-to-change-a-container-from-mpeg-ts-to-mp4-fps-became-twice) ),并认为分享我的知识可能很有趣。另外,我看到有一个[ffmpeg标签](http://stackoverflow.com/questions/tagged/ffmpeg),那么为什么不在这里分享我的解决方案?许多开发人员在很多应用程序中使用ffmpeg。 – 2014-09-30 09:33:13
[tag:ffmpeg]标签说:“关于交互式使用FFmpeg命令行工具的问题应该在超级用户上提出。”这不是什么大问题,但我只想指出,因为在我看来,这里有太多的离题问题。 – LordNeckbeard 2014-09-30 17:09:21