linux编译ffmpeg(一)
网上有很多ffmpeg编译的方法,但乱七八糟的比较多,今天编译了一下,下面是步骤,需要的可以看下。
一:需要的库
可以上官网上下载最新版,不想上官网的可以下载下面的库,然后将下面的库解压并编译 “./configure” 。
1:faac-1.28.tar
http://download.csdn.net/detail/zhuweigangzwg/84635532:ffmpeg-2.5.3
http://download.csdn.net/detail/zhuweigangzwg/8463563
3:lame-3.99.5
http://download.csdn.net/detail/zhuweigangzwg/8463569
4:x264-0.142.x
http://download.csdn.net/detail/zhuweigangzwg/8463571
5:yasm-1.2.0
http://download.csdn.net/detail/zhuweigangzwg/8463575
再编译ffmpeg之前先编译如下库:
1:
faac(如果上面的faac-1.28编译的时候有错误可以如下,否则cd到目录中编译)
# wget http://downloads.sourceforge.net/faac/faac-1.26.tar.gz
# tar xvfz faac-1.26.tar.gz
# cd faac
# ./bootstrap
# ./configure
# make
# make install
# tar xvfz faac-1.26.tar.gz
# cd faac
# ./bootstrap
# ./configure
# make
# make install
2:
libmp3(如果上面的lame-3.99.5编译的时候有错误可以如下,否则cd到目录中编译)
# wget http://downloads.sourceforge.net/lame/lame-3.97.tar.gz
# tar xzf lame-3.97.tar.gz
# cd lame-3.97
# ./configure
# make
# make install
# tar xzf lame-3.97.tar.gz
# cd lame-3.97
# ./configure
# make
# make install
3:libX264(如果上面的x264编译的时候有错误可以如下,否则cd到目录中编译)
# /usr/local/bin/git clone git://git.videolan.org/x264.git x264
# cd x264
# ./configure --enable-shared --disable-asm
# make
# make install
# cd x264
# ./configure --enable-shared --disable-asm
# make
# make install
可参考:http://www.cnblogs.com/littlehb/p/3914645.html
二:编译ffmpeg
cd到解压的ffmpeg,然后输入命令
./configure --enable-gpl --enable-nonfree --disable-shared --enable-static
--enable-debug --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --enable-postproc --enable-bzlib --enable-zlib
--enable-parsers --enable-libx264 --enable-libmp3lame --enable-libfaac
--enable-pthreads --extra-libs=-lpthread --enable-encoders --enable-decoders --enable-avfilter --enable-muxers --enable-demuxers
--enable-debug --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --enable-postproc --enable-bzlib --enable-zlib
--enable-parsers --enable-libx264 --enable-libmp3lame --enable-libfaac
--enable-pthreads --extra-libs=-lpthread --enable-encoders --enable-decoders --enable-avfilter --enable-muxers --enable-demuxers
make &&make install
三:遇到问题
可以看下这个链接:http://blog.chinaunix.net/uid-26212859-id-3256667.html
如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令
ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.
ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.
编辑/etc/ld.so.conf文件,在新的一行中加入库文件所在目录;例如所在目录在/usr/local/lib,在vim /etc/ld.so.conf 换一行直接添加:/etc/ld.so.conf。
运行ldconfig,以更新/etc/ld.so.cache文件;
2:编译的那些库(包括ffmpeg)默认会产生在/usr/local/bin和
/usr/local/include目录下 ,如果想改变路径可以用:
--prefix来改变路径.
3:ffmpeg/x264:ERROR: libx264 not found
可以看这个链接:http://blog.sina.com.cn/s/blog_54b5ea250100r53o.html
只要在配制configure时,添加额外的include/link路径应该能够解决问题,即增加开关:
这个需要根据你x264编译、安装的实际配制修改
四:测试结果
下面命令是利用rtmp服务器和ffmpeg转码率的命令,其他命令上网上自己查找。
./ffmpeg -i rtmp://test1.com:1935/myapp/teststream -report -acodec libfaac -vcodec libx264 -profile:v main -level:v 31 -preset ultrafast -r 25 -b:v 600k -f flv rtmp://test1.com:1935/myapp/newstream