1、下载解编码工具
下载地址:http://www.mplayerhq.hu/MPlayer/releases/codecs/
必要的解码器是essential-********.tar.bz2,而所有解码器为all-********.tar.bz2,为了支持更多的格式,选择下载all-********.tar.bz2。下载后解压到某个目录,如/usr/local/lib/codecs
命令如下:
# tar jxvf all-********.tar.bz2
# mv all-******* /usr/local/lib/codecs
2. 下载解压MPlayer源码
下载链接:http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc4.tar.bz2
# tar jxvf mplayer-checkout-snapshot.tar.bz2
3.编译安装MPlayer
进入源码目录,进行编译配置,重要的两个参数--prefix=/usr/local/mplayer安装目录和--codecsdir=/usr/local/lib/codecs解码器目录。如需要添加其它参数请使用./configure --help获取帮助。最后再编译安装。
# cd mplayer-checkout-****-**-**
# ./configure --prefix=/usr/local/mplayer --codecsdir=/usr/local/lib/codecs
# make
# make install
安装完成后,此时执行转码命令,会报错
mplayer: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory
这是由于缺少mp3lame支持
解决方案:
下载最新版本lame http://sourceforge.net/projects/lame/files/lame/
然后安装
# tar zxvf lame-3.99.tar.gz
# cd lame-3.99
# ./configure --prefix=/usr
# make
# make install
找到libmp3lame.so.0路径,如/usr/lib/libmp3lame.so 然后:
ldconfig /usr/lib/libmp3lame.so(这一步很重要)
进入 MPlayer-1.0rc4,重新编译安装一下
#cd MPlayer-1.0rc4
# make clean
#./configure
#make
#make install
至此linux下的mencoder转码工具安装完成
第一条命令为我的项目(windows环境)代码中写的,但是在执行过程中,发现mencoder不识别-xvidencopts,怀疑可能是版本mencoder版本问题,在百度中查询mencoder的-ovc指令中也没有-xvidencopts选项,因此将该编码格式更换为 x264 -x264encopts bitrate=500(下方第二条命令)
①mencoder /xxx.rm -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o /01.avi
②mencoder /xxx.rm -oac mp3lame -lameopts preset=64 -ovc x264 -x264encopts bitrate=500 -of avi -o /01.avi
---------------------------------------------------------------------------------------------------------------------------------
1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到
2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到
比如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,这时就需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存过后ldconfig一下,新的library才能在程序运行时被找到。
3. 如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。那也可以,就是export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时候使用。
4. ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。编译的时候还是该加-L就得加,不要混淆了。
5. 总之,就是不管做了什么关于library的变动后,最好都ldconfig一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事。
./configure
make
make install
[root@localhost libusb-1.0.8]# ldconfig
[root@localhost libusb-1.0.8]# ldconfig -v | grep libusb
libusb-1.0.so.0 -> libusb-1.0.so.0.0.0
libusb-0.1.so.4 -> libusb-0.1.so.4.4.4
libusbpp-0.1.so.4 -> libusbpp-0.1.so.4.4.4