转换 wav,ape,flac 音乐为 mp3,m4a(mp4) 格式

有时获取的音乐是 ape 或者 flac 等无损格式,如果你对音质要求不是特别高,为了便于传输以及在多种设备上播放,有时将它们转换为(高码率的) mp3 格式或者m4a(mp4 audio)格式会更方便。下面介绍在 Linux 下将 ape、flac、wav等转换成 mp3 格式的方法。

首先确认系统里有 ffmpeg 或 mac、lame、mp3splt 这几个(命令行)工具,没有的话可以到 arch linux package 搜索并安装他们。对于需要处理 flac 和 m4a 格式,还需要工具:flac 和 faac。

对于一个 ape/flac 文件是一首歌的情况

先将原始音频还原为未压缩的 wave 格式

需要先用 ffmpeg 或者 mac 或者 flac 将它转换成 wav 格式,再用 lame 将 wav 转换成 mp3 格式。

假设要转换的歌曲文件名为 song.ape/song.flac,则命令如下:

$ ffmpeg -i song.ape song.wav

或者

$ mac -d song.ape song.wav

或者

$ flac -d song.flac -o song.wav

这样将会得到一个 song.wav 文件。

然后使用各种编码程序压缩 wave 为 mp3 或者 m4a

使用 lame 命令可以压缩成 mp3:

$ lame -V 0 song.wav (使用 VBR 动态码率压缩,0表示最高质量,默认为4,最低为9)

或者

$ lame -b 320 song.wav (使用固定的 320Kbps 码率压缩)

或者,使用 faac 编码可以得到 m4a(mp4)格式文件:

$ faac -w -q 100 song.wav -o song.m4a (100 表示最高质量,如果选择 50 则表示 50% 质量)

当然也可以使用 ffmpeg 压缩得到 m4a 格式:

$ ffmpeg -i song.wav -strict experimental -c:a aac -b:a 320k song.m4a (这里使用的是 ffmpeg 内置 aac 编码器,设定码率为固定的 320k。注:ffmpeg 内置的 aac 编码器现在还是体验版,可能会有些问题)

如果编译 ffmpeg 时还包含了其他编码库,比如 libfaac,则可以这样:

$ ffmpeg -i song.wav -c:a libfaac -q:a 100 song.m4a (让 ffmpeg 调用 libfaac 压缩音频,质量设置为 100)$ ffmpeg -i song.wav -c:a libfaac -b:a 320k song.m4a (让 ffmpeg 调用 libfaac 压缩音频,使用固定码率 320k 压缩,注:实际上很少用固定码率压缩 aac)

也可以使用 ffmpeg 将解压和压缩过程简化为一个步骤,命令如下:

$ ffmpeg -i song.flac -ab 320k -map_metadata 0 song.mp3

其中 -map_metadata 表示保留 flac 的元数据(即歌曲名称、演唱者名称等信息)。

批量处理

如果一批 ape 需要转换,最好写一个脚本批量处理,比如:

#!/bin/bash
for FILE in *.ape;
do
ffmpeg -i "$FILE" temp.wav;
lame -b 320 temp.wav "${FILE%.*}.mp3";
rm temp.wav
done

如果是一批 flac 文件并且想保留元数据,则脚本为:

#!/bin/bash
for FILE in *.flac;
do
ffmpeg -i "$FILE" -ab 320k -map_metadata 0 "${FILE%.*}.mp3";
done

对于一个 ape/flac 文件是包含多首歌的情况

通常这种情况下你还会有一个 cue 文件,cue 文件包含有这个 ape/flac 文件的专辑名、演唱者名称、还有每首歌曲的名称和时间范围。我们用上面的方法将 ape/flac 文件整个转换为 mp3 格式之后,再用 mp3splt 工具来分割即可。

注:有时我们获取的 cue 文件可能包含有中文,为了避免出现乱码,可以先查看里面的内容看看是否可以正常阅读,否则可以把文件扩展名更改为 txt 然后拖入 firefox 浏览器然后尝试更改各种编码格式直到正常阅读(中文的使用 gb2312 或者 big5 编码为多),然后把可正常阅读的内容复制下来并替换文件原先的内容,再把文件扩展名更改为 cue即可。

根据 cue 文件分割 mp3 的命令如下:

$ mp3splt -c song.cue -o @n.@t song.mp3

其中的参数 @n.@t 表示输出的文件名的格式,常用的有下列几个代替符:

  • @a: 歌手名称
  • @b: 专辑名称
  • @t: 歌曲标题
  • @n: 音轨序号

然后就会得到一系列的 mp3 文件。这个方法同时也适合 flac 格式。

最后,如果你不想敲命令的话,还可以使用免费开源的图形界面的工具 soundconverter,只要安装好 GStreamer 插件,它几乎支持所有音频格式。

参考资料:
  • FFmpeg and AAC Encoding Guide https://trac.ffmpeg.org/wiki/Encode/AAC
  • 其他程序比如 faac 、flac和 lame,因为比较简单,可以直接查看他们的 manual: $ man faac 或者 $man lame

转换 wav,ape,flac 音乐为 mp3,m4a(mp4) 格式相关推荐

  1. Matlab 音频格式转换(wav,ogg,flac,au,aiff,aif,aifc,mp3,m4a,mp4 互转)

    欢迎转载,但请一定要给出原文链接,标注出处,支持原创! 谢谢~ https://blog.csdn.net/qq_29225913/article/details/105445028 目录 1.目标及 ...

  2. 前端获取QQ音乐(mp3+m4a)

    前言:这个本来不是我的需求,我起因是打算用nw.js 写个桌面应用show一下技能,发现其他的都好写 但是我没有资源,新闻类的太简单了,视频呢又感觉不好弄,算了弄音乐吧,每天都在听QQ音乐,算了,就他 ...

  3. APE,FLAC文件转WAV文件

    近日需要实现APE(Monkey's Audio)转换WAV文件,都是目前比较流行音乐格式.如果对APE感兴趣可以下载Monkey's Audio 4.11 SDK (with source code ...

  4. android mp4 转码成mp3,伙伴们告诉你们,怎么把MP4格式转换成MP3格式!

    我们的手机和各种便携移动的播放器都支持mp4格式,所以现在手上有许多mp4格式的视频和音频,如果我们需要在mp3播放器上播放,就需要将MP4 转换为mp3格式,MP4转MP3的格式转换器确实不少,但是 ...

  5. mp4格式转换专家-魔法mp4格式转换器轻松应对mp4电影格式转换

    原文: mp4转换专家-魔法软件轻松应对mp4电影格式转换  链接: http://www.mofavideo.com/mp4/ 关键词:mp4电影格式转换, mp4格式转换器.mp4转换专家 MP4 ...

  6. 上传 mp4 格式判断_视频如何转换成通用的MP4格式?按下这个键,10秒就能搞定...

    我们在网上下载视频的时候,有很多的视频都是无法播放的,或者是需要特定的播放器才可以播放.其实,只要把这些视频的格式转换成通用的MP4格式即可.如果你还不知道怎么转换视频格式,下面就教大家两个小方法,百 ...

  7. dicom格式怎么转换_qsv怎么转换mp4格式?qsv转mp4的首选工具

    原标题:qsv怎么转换mp4格式?qsv转mp4的首选工具 以前,电脑里安装有各大平台的PC端软件,还就真的没有注意到兼容不兼容的问题,直到这一次,从爱奇艺平台下载了视频放到手机里,这才发现,原来没有 ...

  8. flv视频怎么转换成mp4格式的3种方法分享

    flv视频怎么转换成mp4格式?因为flv视频格式我们使用的很少,兼容性也不如mp4.虽然flv视频文件体积小:便于传输.共享:但是flv视频质量不好:不被所有播放器支持.flv视频格式是一种新的视频 ...

  9. 视频转mp4格式转换器如何把其他格式的视频转换成mp4格式 1

    冬天到了,很多人都放弃出去游玩的念头.而选择宅在家里开启冬眠模式.这时很多人无聊时就会选择追剧,追剧是最容易打发时间的娱乐方式之一.最近朋友就遇到一个棘手的问题,他用腾讯视频下载了一个电视,但是导入到 ...

最新文章

  1. php和python写爬虫-为什么写爬虫都喜欢用python?
  2. Linux下Mysql数据库的基础操作
  3. c++string函数(一)——find、rfind详细用法
  4. android按任意建关闭对话框,Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭...
  5. PermGen space 与 Java heap space
  6. LeetCode刷题——91. 解码方法
  7. spring配置文件详解
  8. AmazeUI组件使用和百度地图集成
  9. Linux如何查看CPU温度
  10. R语言aov函数进行重复测量方差分析(Repeated measures ANOVA、其中一个组内因素和一个组间因素)、分别使用interaction.plot函数和boxplot对交互作用进行可视化
  11. dw相对路径怎么改_文件的绝对路径与相对路径
  12. 高效工程师系列(一) 如何找到一个利于自己成长的环境
  13. 0514课堂笔记--抽象类-接口
  14. JetpackCompose从入门到实战学习笔记2——Modifier的简单使用
  15. 计算机无法打开pdf文件夹,电脑为什么打不开PDF文件?
  16. android9.0谷歌框架cdsk,Android Studio项目适配AndroidX(Android 9.0)的方法步骤
  17. 谷歌浏览器翻译英文网页功能消失解决方案
  18. ArcGIS中根据DEM提取等高线和高程点(附练习数据)
  19. win10里C盘的Program Files和 Program Files(x86)的区别
  20. 前端后端的消息推送 7 种方式

热门文章

  1. 长安链Batch交易池生产可用重构方案设计及其成效
  2. 贝叶斯公式的理解及简单推导
  3. ClickOnce 通过URL传递参数
  4. 【Spring源码】Spring事务原理
  5. 我的世界个人服务器搭建
  6. 注册苹果开发者帐号 用什么银行的什么卡好? 收款帐号呢?
  7. 网页爬虫之页面解析-BeautifulSoup/XPath/pyquery使用
  8. Linux重启命令shutdown与reboot
  9. 模式窗口window.showModalDialog()的用法
  10. 微信公众号添加Word文档附件教程_公众号添加Excel、PDF、PPT、Zip等附件教程