在阿里云的CentOS 6.5 上面安装 timidity++ 和 ffmpeg(含libmp3lame) 实现命令行将midi转换为mp3
首先使用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.: cannot open shared object file: No such file or directory
除了找不到 libavdevice.so.56 这个库,其实还有可能找不到 libmp3lame.so.0
解决方法如下:(以libavdevice.so.56为例)
首先用find找到库在哪
find / -name libavdevice.so.
发现在
/usr/local/ffmpeg/lib/libavdevice.so.
然后即可对症下药
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
在阿里云的CentOS 6.5 上面安装 timidity++ 和 ffmpeg(含libmp3lame) 实现命令行将midi转换为mp3的更多相关文章
- 阿里云ECS+CentOS 7.0+Docker+Redmine环境搭建
前言 搭建Redmine环境可以选择使用分别安装Ruby+Rails+Redmine+MySQL的方式, 但是过程中需要解决各种扰人的依赖问题.Docker为我们提供的Plan B,方便,快捷. 安装 ...
- 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器
一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...
- 阿里云服务器centos下安装配置svn服务器
阿里云服务器centos下安装配置svn服务器 1.安装svn服务器端yum install subversion 从镜像下载安装svn服务器端中间会提示是否ok,输入y,确认安装成功提 ...
- 阿里云cenos 6.5 模板上安装 docker
本章将介绍在阿里云的 Centos6.5 模板上安装 Docker 以及在 Ubuntu 14.04 模板上安装 Docker 的过程 Centos 6.5 模板上使用Docker 首先,通过 ssh ...
- 阿里云服务器CentOS 5.7(64位)安装配置LAMP服务器(Apache+PHP5+MySQL)
一.快速安装Apache+PHP5+MySql ----------------------------------------------------- 补充:由于163的yum源上只有php5.1 ...
- 在阿里云的CentOS环境中安装django
购买了一台阿里云主机.操作系统为CentOS 6.5.准备在上面跑Django做Web开发.因为CentOS自带的python版本号较低,安装Django先要安装新版本号python.还是费了点周折. ...
- 关于外网无法访问阿里云主机CentOs
前两天阿里云ECS搞活动,所有买了个三年的Ecs,然后照着之前在虚拟机同样的搭建服务器,一切都很正常,可是 当我配置好防火墙和nginx之后,发现个问题,外网无法访问. 思考: 1.我的nginx没配 ...
- 阿里云服务器 CentOS 安装Mysql 5.6
下载:https://dev.mysql.com/downloads/file/?id=471181 第一步: 安装mysql5姿势是要先安装带有可用的mysql5系列社区版资源的rpm包 [ro ...
- 关于阿里云ECS Centos 5/6/7 Linux Glibc库严重安全漏洞修复方法
日前Linux GNU glibc标准库的 gethostbyname函数爆出缓冲区溢出漏洞,漏洞编号为CVE-2015-0235.黑客可以通过gethostbyname系列函数实现远程代码执行,获取 ...
随机推荐
- java.lang.IllegalArgumentException: XML fragments parsed from previous mappers does not contain value for
使用mybatis做一个简单的查询的时候,报了这个问题.代码如下: <mapper namespace="cn.gaiay.business.zm.live.living.dao.Li ...
- 搭建高可用mongodb集群(一)——配置mongodb
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...
- centos7安装lua语言环境
Linux 上安装 Lua 安装非常简单,只需要下载源码包并在终端解压编译即可. 官网地址:http://www.lua.org/download.html 我这里安装的是:lua-5.3.0.tar ...
- 从零学React Native之04自定义对话框
本篇主要介绍: 1. 自定义组件 2. Alert 对话框 自定义对话框 之前的我都是利用React Native提供的基础组件对它们进行排列组合, 其实自定义也很简单, 我们还是拿上一篇文章的例子进 ...
- springboot监控
springboot版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId&g ...
- 测试拆分比较大SQL Server数据库
有2个办法拆分比较大的数据库. 1.重建聚集索引2.收缩数据库 一.准备测试数据 )) go insert into blocktable(blockno,binno,rack,chipcount,m ...
- git 和github
ssh git: 是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,其作用就是可以让你更好的管理你的程序,比如你原来提交过的内容,以后虽然修改了,但是通过git这 ...
- 动态展开tableView的cell[1]
动态展开tableView的cell[1] 源码地址:https://github.com/xerxes235/HVTableView 虽然作者写的demo很好看,可是,你很难理解他是怎么玩的-_-! ...
- docker容器修改hosts文件,重启失效问题解决
docker容器修改hosts文件 搜了一大批资料,有说需要在docker run --hosts...改:dockerfile改:有点麻烦,下面方案比较好: 参照docker吧(https://ti ...
- 沉淀,再出发:PHP的简单使用
沉淀,再出发:PHP的简单使用 一.前言 关于PHP,笔者在本科的时候就听到了太多太多,可惜虽然看了很多的教材,听到了无数遍,也没有系统性的整理过和学习过这方面的知识,这点无论什么时候想起来都是一种遗 ...