首先使用yum安装需要的组件

yum install -y automake autoconf libtool gcc gcc-c++ yasm yasm-devel

然后从sourceforge下载timidity++并解压(默认用root用户在~目录操作)

wget http://sourceforge.net/projects/timidity/files/TiMidity%2B%2B/TiMidity%2B%2B-2.13.0/TiMidity%2B%2B-2.13.0.tar.gz/download
tar -zxvf download
cd T* 

  • 压缩包被重命名为download了,不过不影响解压

timidity不光能把midi转成wav格式的音乐,还能实现播放,网络播放等很多功能,所以只是想做midi转wav的转换器的话,需要配置,官方文档说只想做转换器的话,设置 –enable-audio=no 即不使用声卡进行播放,实际上阿里云的云主机根本没有声卡,所以第一次安装按照坑爹的官方指引,如下configure

./configure --prefix=/usr/local/timidity --without-x --enable-audio=no

按照这个configure最后能安装成功,但是不管运行什么命令都报错,提示打不开输出设备,然后参考stackoverflow的帖子 [http://stackoverflow.com/questions/4235140/timidity-couldnt-open-output-device]
由于坑爹的timidity++哪怕只用来转换,也需要声卡,所以我们设置一个虚拟的声卡即可

cd /dev
ln -s null dsp

然后

vim /etc/udev/rules.d/z42_fake_dsp.rules

在其中写入

KERNEL=="null", SYMLINK+="dsp", OPTIONS+="link_priority=99"

并保存退出,这样重启后虚拟的声卡就不会消失了

由于设置的虚拟声卡挂载为 /dev/dsp 所以根据官方安装指引如下配置

./configure --prefix=/usr/local/timidity --enable-audio=oss

然后就是安装两部曲

make
make install

注意:我这配置的时候把默认安装路径 /usr/local/ 修改到了/usr/local/timidity 所以后面还要配置 $PATH 不然shell 会找不到 command

按照–prefix=/usr/local/timidity 配置安装成功后,需要一个配置文件,配置文件在

/usr/local/timidity/share/timidity/timidity.cfg

默认可以到

http://www.onicos.com/staff/iz/timidity/dist/cfg/timidity.cfg

下载到,还有其他的补充配置文件(如有补充配置文件,需要主配置文件source包含进来),例如

http://www.onicos.com/staff/iz/timidity/dist/cfg/xgmap.cfg

在默认的配置文件中,最后面加上一句

soundfont /usr/local/timidity/share/soundfont/gm.sf2

我默认把音色文件放到了 /usr/local/timidity/share/soundfont ,实际放在哪配置文件中就写哪

然后就是安装lame,比较简单

wget http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download
tar -zxvf download
cd lame*
./configure --prefix=/usr/local --enable-shared
make
make install

然后安装ffmpeg (非全部安装,我只要用到音频转换)

wget http://ffmpeg.org/releases/ffmpeg-2.8.tar.bz2
tar -jxvf ffmpeg-2.8.tar.bz2
cd ff*

ffmpeg默认安装在 /usr/local 我将其改到了 /usr/local/ffmpeg 中,所以如下配置

./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-libmp3lame
make
make install

然后ffmpeg就安装完了

接着配置 $PATH 让系统加载 timidity++ 和 ffmpeg 的lib

cd ~
vim .bash_profile

将其中的PATH后面加上两个库的lib,我修改为如下

PATH=$PATH:$HOME/bin:/usr/local/timidity/bin:/usr/local/ffmpeg/bin

然后保存生效

source ~/.bash_profile

timidity++ 的用法如下

timidity input.mid -Ow -o output.wav

备注:需要自己找sf2格式的音色库并配置好,否则不能转换

接着试一下ffmpeg能否运行

ffmpeg -version

果然报错了

ffmpeg: error while loading shared libraries: libavdevice.so.56: cannot open shared object file: No such file or directory

除了找不到 libavdevice.so.56 这个库,其实还有可能找不到 libmp3lame.so.0
解决方法如下:(以libavdevice.so.56为例)
首先用find找到库在哪

find / -name libavdevice.so.56

发现在

/usr/local/ffmpeg/lib/libavdevice.so.56

然后即可对症下药

cd /etc/ld.so.conf.d
vim libavdevice.conf

写入

/usr/local/ffmpeg/lib/

保存退出
然后

ldconfig -v

确认是否加载成功

全部正确安装后使用以下命令即可将midi转换为mp3

timidity input.mid -Ow -o - | ffmpeg -i - -acodec libmp3lame -ab 256k out.mp3

单独使用的方法

timidity input.mid -Ow -o middleoutput.wav

 

ffmpeg -i middleoutput.wav -acodec libmp3lame -ab 256k finaloutput-256k.mp3

转载于:https://www.cnblogs.com/koujiaonuhan/p/aliyun_centos65_install_ffmpeg_libmp3lame_timidity_to_convert_midi_to_mp3.html

在阿里云的CentOS 6.5 上面安装 timidity++ 和 ffmpeg(含libmp3lame) 实现命令行将midi转换为mp3...相关推荐

  1. 阿里云服务器 CentOS 7上-- Docker 安装 网关(API-Getway)--KONG

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 全程操作按官方文档来就可以了. 1.将 Kong 连接到 Cassandra 或 PostgreSQ ...

  2. 阿里云服务器 安全狗外部访问mysql_阿里云linux/centos服务器安全狗安装

    1.下载服务器安全狗和服务器网站安全狗,选择好版本. http://download.safedog.cn/safedog_linux64.tar.gz 这个是网站安全狗的下载地址 2.登录cento ...

  3. 阿里云linux centos 7.4下安装mongodb 3.4

    目录 1.下载安装 2.启动运行 1.下载安装 官网下载安装介质:https://www.mongodb.com/download-center,选择适当的版本,这里以linux版本为例 解压到系统某 ...

  4. 阿里云linux centos 一键部署web环境--图文详解

    阿里云linux centos 一键部署web环境--图文详解 标签: linux阿里云一键部署 2017-04-15 12:28 386人阅读 评论(0) 收藏 举报  分类: linux(11)  ...

  5. [CentOS Python系列] 四.阿里云服务器CentOS连接远程MySQL数据库及pymsql

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

  6. 阿里云主机CentOS添加硬盘

    1.查看新硬盘 #fdisk –l 新添加的硬盘的编号为/dev/xvdb 2.硬盘分区 1)进入fdisk模式 #/sbin/fdisk /dev/xvdb 2)输入n进行分区 3)选择分区类型 这 ...

  7. 阿里云搭建Tomcat+Jdk+Mysql(阿里云系统CentOs)特完整

    (本文太过潦草,特用Markdown重新排版了下:阿里云搭建Tomcat+Jdk+Mysql(阿里云系统CentOs)_李小白的博客的博客-CSDN博客) 1.首先我们应该先去百度云盘下载安装包资源: ...

  8. mac SCp上传文件到阿里云服务器centos

    1.mac链接远程阿里云服务器centos命令: ssh -A -p 22 root@ip 2.mac上传文件到阿里云centos: 3.阿里云服务器weapps下文件删除命令: 4.上传文件相关 m ...

  9. 阿里云服务器CentOS部署Minio服务实现远程访问

    阿里云服务器CentOS部署Minio服务实现远程访问 1.下载 1.1 建立文件夹 mkdir /usr/local/minio mkdir /usr/local/minio/data 1.2下载 ...

最新文章

  1. python简历数据提取_如何使用pyPDF2从PDF格式的多页简历中提取文本数据?
  2. The type android.support.v4.view.ScrollingView cannot be resolved. It is indirectly referenced from
  3. Webpack4干货分享(二),使用loader处理scss,图片以及转换JS
  4. the blocks problem(uva 101 or poj 1208)
  5. .net mysql数据库_.net连接MySQL数据库
  6. Android 监听开机完成广播,完成监听SIM卡功能
  7. C++ unsigned long 转化为 unsigned char*
  8. Go语言:面向对象编程
  9. JavaScript正则表达式19例(11)
  10. win10计算机管理被阻止,Win10家庭版安装程序提示系统管理员已阻止你运行此应用的解决办法...
  11. 计算机分屏解决方案,电脑一机多屏显示解决方案
  12. 【bzoj3162】独钓寒江雪
  13. 四川大学计算机考研信息汇总
  14. nandflash地址的物理地址,逻辑地址,spare地址等理解
  15. idea中编译DataSphereStudio编译方法及问题排查
  16. 程序员的工资是不是被高估了?
  17. 常用英语口语175句
  18. 甲虫之王怀旧服新开的服务器是否自动开门,魔兽世界怀旧服:不刷虫皮也能当甲虫之王,钻漏洞可量产黑虫子...
  19. 麻省电气工程与计算机科学专业,美国留学 麻省理工学院电气工程与计算机科学理科专业介绍...
  20. 数据库入门教程(SQL Server 2005)----数据库是如何存储数据的

热门文章

  1. 打印机技术分析:IC芯片墨盒解密(多图)
  2. 【优化调度】遗传算法求解公交车调度排班优化问题【含Matlab源码 2212期】
  3. 猪价涨27%,4国抢占中国猪肉市场,智利对华肉类出口增长近9成
  4. Java 循环结构 - for, while 及 do...while
  5. Android 高德地图升级9.2.0版本问题
  6. php动态网站开发实训项目,PHP动态网站开发项目实战
  7. 计算机上装的word怎么卸载,电脑残留Office无法重新安装如何解决|电脑完全卸载Office的方法...
  8. 一元函数积分学之4__三角函数的定积分的解法
  9. springboot房产中介预约看房系统在线视频点播系统毕业设计毕设作品开题报告开题答辩PPT
  10. XMPP协议 好友管理(协议)