libav 编译备忘

以下是关于libav在 centos6下编译的一些过程说明:

yum install automake libtool doxygen
yum install gcc gcc-c++ g++
yum install yasm nasm
yum install git
git clone git://git.videolan.org/x264.git 
git clone git://git.libav.org/libav.git libav

wget http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz
wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz 
wget http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/0.1.2/opencore-amr-0.1.2.tar.gz 
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz

[root @localhost ffmpeg_files]# tar -zxf  yasm-1.2.0.tar.gz 
[root @localhost ffmpeg_files]# tar -zxf xvidcore-1.3.2.tar.gz 
[root @localhost ffmpeg_files]# tar -zxf faac-1.28.tar.gz 
[root @localhost ffmpeg_files]# tar -zxf opencore-amr-0.1.2.tar.gz 

cd yasm-1.2.0
./configure
make && make install

cd x264
./configure --enable-shared
make
make install
cd ..

cd xvidcore/build/generic
./configure
make
make install
cd ../../../

cd faac-1.28
./bootstrap
./configure
vi mpeg4ip.h
c++ const

make
make install
cd ..

cd opencore-amr-0.1.2
./configure
make
make install
cd ..

export LD_LIBRARY_PATH=/usr/local/lib/
echo /usr/local/lib > /etc/ld.so.conf.d/custom-libs.conf
ldconfig

cd avconv

./configure --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libx264 --enable-libxvid --disable-avplay --disable-avserver --disable-avprobe --enable-gpl --enable-nonfree  --enable-pthreads --extra-cflags=-fPIC

一些选项说明(有的加了,有的没加)
--enable-libvpx   vp8格式
--enable-libmp3lame mp3格式
--enable-libtheora vp3格式
--enable-libxvid   mpeg4格式
--enable-shared   动态库
--enable-static  静态库

make
make install
cd ..

ldconfig

对于编译好的avconv和 /usr/local/lib 文件,可以复制到任何相同配置的Linux服务器上使用。

ldconfig几个需要注意的地方

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一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事。

avconv -i b.mpg -c:v libx264 -r 5 -b 21k -g 5 -level 1 -s 176x144 -c:a libopencore_amrnb -ar 8000 -ac 1 -ab 5.9k -y test_1_hl.3gp
avconv -i b.mpg -c:v libx264 -r 8 -b 72k -g 5 -level 1 -s 176x144 -c:a libopencore_amrnb -ar 8000 -ac 1 -ab 7.95k -y test_4_hh.3gp
avconv -i b.mpg -c:v libx264 -r 12 -b 110k -g 5 -level 1 -s 176x144 -c:a libfaac -ac 1 -ab 12k -y test_6_hstd.3gp
avconv -i b.mpg -c:v h263 -r 5 -b 22k -g 5 -level 10 -s 176x144 -c:a libopencore_amrnb -ar 8000 -ac 1 -ab 5.9k -y test_7_3l.3gp
avconv -i b.mpg -c:v h263 -r 6 -b 60k -g 5 -level 10 -s 176x144 -c:a libopencore_amrnb -ar 8000 -ac 1 -ab 7.95k -y test_8_3h.3gp
avconv -i b.mpg -c:v h263 -r 12 -b 110k -g 5 -level 20 -s 176x144 -c:a libfaac -ac 1 -ab 12k -y test_9_td.3gp
./avconv -i f.mpg -c:v libx264 -r 6 -b 55k -g 5 -level 1 -s 176x144 -c:a libopencore_amrnb -ar 8000 -ac 1 -ab 7.95k -y test_1_hd.3gp
avconv -i b.mpg -c:v libx264 -r 12 -b 110k -g 5 -level 1 -s 176x144 -c:a libfaac -ac 1 -ab 12k -y test_4_hdtd.3gp
avconv -i b.mpg -c:v h263 -r 6 -b 55k -g 5 -level 10 -s 176x144 -c:a libopencore_amrnb -ar 8000 -ac 1 -ab 7.95k -y test_5_3d.3gp
avconv -i b.mpg -c:v h263 -r 12 -b 110k -g 5 -level 1 -s 176x144 -c:a libfaac -ac 1 -ab 12k -y test_6_3dtd.3gp

avconv -i b.mpg -c:v wmv2 -r 6 -b 50k -s 176x144 -c:a wmav2 -ac 2 -ab 24k -y test_9_wd.wmv


参考网站:

http://coralzd.blog.51cto.com/90341/647184
http://www.tuxmachines.org/node/17063
http://www.pawprint.net/news/article/105/Compiling-FFMpeg-on_Centos-5


你可能感兴趣的:(ffmpeg,avconv)