让一切的准备都完美演出,让所有的努力都美好落幕
分类: LINUX
2016-03-28 22:37:03
一、安装环境
1、系统
CENTOS7
2、安装依赖包
yum -y install gccglibc glibc-devel make nasm pkgconfig lib-devel openssl-devel expat-develgettext-devel libtool mhash* perl-Digest-SHA1*
yum -y install makeautomake bzip2 unzip patch subversion libjpeg-devel
3、安装git工具:
(1)yum安装
yum -y install git*
(2)源码安装如下
官网:
下载地址:
最新版本:
cd/home/mycentos7/tools/ffmpeg
wget
tar xJvfgit-latest.tar.xz
cd git-2015-07-08
autoconf
./configure
make
sudo make install
git --version
cd ..
4、安装Yasm工具:
下载地址:
最新版本:
cd/home/mycentos7/tools/ffmpeg
wget
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
sudo make install (或使用root安装: make install)
cd ..
1、安装x.264:
官网: http://www.videolan.org/developers/x264.html
下载地址:
最新版本:
(1) git下载
cd/home/mycentos7/tools/ffmpeg
#git clonegit://git.videolan.org/x264
#cd x264
(2)wget下载
cd/home/mycentos7/tools/ffmpeg
wgetftp://ftp.videolan.org/pub/videolan/x264/snapshots/last_stable_x264.tar.bz2
tar xvjflast_stable_x264.tar.bz2
cd x264-snapshot-20150707-2245-stable
(3)编译
./configure–enable-shared –enable-pic --enable-static
make
sudo make install (或使用root安装: make install)
cd ..
2、安装一些格式转换常用的编码库:
yum installfaac-devel lame-devel amrnb-developencore-amr-devel amrwb-devel libvorbis-devel libtheora-devel xvidcore-devel
3、安装LAME:
cd/home/mycentos7/tools/ffmpeg
wget
tar xzvflame-3.99.5.tar.gz
cd lame-3.99.5
./configure--enable-nasm
make
sudo make install (或使用root安装: make install)
cd ..
4、安装libogg:
官网:
下载地址:
最新版本:
cd/home/mycentos7/tools/ffmpeg
wget
tar xzvf libogg-1.3.2.tar.gz
cd libogg-1.3.2
./configure
make
sudo make install (或使用root安装: make install)
cd ..
5、安装libvorbis:
官网:
下载地址:
最新版本:
cd/home/mycentos7/tools/ffmpeg
wget
tar xzvf libvorbis-1.3.5.tar.gz
cd libvorbis-1.3.5
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
6、安装libvpx:
cd/home/mycentos7/tools/ffmpeg
git clone
cd libvpx
./configure --enable-shared
make
sudo makeinstall (或使用root安装: make install)
cd ..
7、安装FAAD2:
官网:
cd/home/mycentos7/tools/ffmpeg
wget
tar zxvf faad2-2.7.tar.gz
cd faad2-2.7
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
8、安装FAAC:
官网:
cd/home/mycentos7/tools/ffmpeg
wget
tar zxvf faac-1.28.tar.gz
cd faac-1.28
直接编译会报错,处理方式有以下三种,任意一种都可以:
(1)sed-i 's@^char \*strcasestr@//char *strcasestr@' ./common/mp4v2/mpeg4ip.h
(2) sed -i '124 s@extern "C"@extern"C++"@' ./common/mp4v2/mpeg4ip.h
sed -i '126 s@^char \*strcasestr@const char *strcasestr@'./common/mp4v2/mpeg4ip.h
(3)参见附录二的处理
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
9、安装Xvid:
官网:
下载地址:
最新版本:
cd/home/mycentos7/tools/ffmpeg
wget
tar zxvf xvidcore-1.3.4.tar.gz
cdxvidcore/build/generic
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
10、安装frei0r:
官网:
下载地址:
最新版本:
(1)源代码下载
cd/home/mycentos7/tools/ffmpeg/
git clonegit://code.dyne.org/frei0r.git
cd frei0r
(2)压缩包下载
下载frei0r-1.4.0.tar.gz
tar zxvf frei0r-1.4.0.tar.gz
cd frei0r-1.4.0
(3)编译
autogen.sh
./configure --enable-shared
make
sudo makeinstall (或使用root安装: make install)
cd ..
(4)编译ffmpeg时的编译选项
--enable-frei0r
(5)ffmpeg frei0r filter 参数及效果
ffmpeg中frei0r滤镜基本使用方法
ffplay -vffrei0r=filter_name=filter_params:filter_params:...
在Windows系统ffmpeg使用frei0r时需要加环境变量 FREI0R_PATH=frei0r安装目录
单击图片复制滤镜命令
ffmpeg使用frei0r参考
frei0r的详细参数说明参考
11、安装amr:
(1)编译安装
cd/home/mycentos7/tools/ffmpeg/
wget
tar zxvfopencore-amr-0.1.3.tar.gz
cd opencore-amr-0.1.3
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
编译ffmpeg时的编译选项
--enable-libopencore-amrnb
(2)使用
使用方法
ffmpeg -i 1.mp3 -ac1 -ar 8000 1.amr #MP3转换AMR
ffmpeg -i 1.amr1.mp3 #AMR转换MP3
A. 转换amr到mp3:
ffmpeg -ishenhuxi.amr amr2mp3.mp3
B. 转换amr到wav:
ffmpeg -acodeclibamr_nb -i shenhuxi.amr amr2wav.wav
C. 转换mp3到wav:
ffmpeg -i DING.mp3-f wav test.wav
D. 转换wav到amr:
ffmpeg -i test.wav-acodec libamr_nb -ab 12.2k -ar 8000 -ac 1 wav2amr.amr
E. 转换wav到mp3:
ffmpeg -i test.wav-f mp3 -acodec libmp3lame -y wav2mp3.mp3
12、安装amrnb:
(1)源代码下载
cd /home/mycentos7/tools/ffmpeg/
wget~utx/ftp/amr/amrnb-11.0.0.0.tar.bz2
tar xjvf amrnb-11.0.0.0.tar.bz2
(2)压缩包下载
下载amrnb-11.0.0.0.tar.gz
tar zxvf amrnb-11.0.0.0.tar.gz
(3)编译
cd amrnb-11.0.0.0
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
13、安装amrwb:
(1)源代码下载
cd/home/mycentos7/tools/ffmpeg/
wget~utx/ftp/amr/amrwb-11.0.0.0.tar.bz2
tar xjvf amrwb-11.0.0.0.tar.bz2
(2)压缩包下载
下载amrwb-11.0.0.0.tar.gz
tar zxvf amrwb-11.0.0.0.tar.gz
(3)编译
cd amrwb-11.0.0.0
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
14、安装OpenCV:
(0)系统安装
yum install opencv
(1)介绍
OpenCV是Intel公司开发的图像处理和计算机视觉函数库
其中OpenCV最新的源代码:
源代码及文档下载:SOURCEFORGE.NET:
INTEL的OPENCV主页:
(2)预安装依赖组件
yum install bzip2-develcmake* gcc gcc-c++ gimp-devel gimp-devel-tools gimp-help-browser gtk+-devel gtk*gstreamer-devel libtiff-devel libjpeg-devel libpng-devel libavc1394-devellibraw1394-devel libdc1394-devel jasper-devel jasper-utils swig python libtoolnasm ncurses-devel openssl-devel sqlite-devel zlib-devel
(3)源代码下载
cd/home/mycentos7/tools/ffmpeg/
wget
unzip -d . opencv-3.0.0.zip
(4)压缩包下载
cd/home/mycentos7/tools/ffmpeg/
下载opencv-3.0.0.tar.gz
tar zxvf opencv-3.0.0.tar.gz
(5)编译安装
cd opencv-3.0.0
mkdir build; cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -DBUILD_DOCS=ON -D BUILD_EXAMPLES=ON -D BUILD_TESTS=ON -D INSTALL_C_EXAMPLES=ON-D INSTALL_TESTS=ON -D WITH_FFMPEG=OFF -D WITH_GSTREAMER=ON -DWITH_JPEG=ON -D WITH_PNG=ON -D WITH_GTK=OFF -D WITH_V4L=ON ../
make
sudo makeinstall (或使用root安装: make install)
cd ..
(6)开发环境配置(A或B)
A、创建连接
ln -s /usr/local/lib/pkgconfig/opencv.pc /usr/lib64/pkgconfig/opencv.pc
B、设置环境变量
exportPKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig: PKG_CONFIG_PATH
C、不做上面的错误,在编译ffmpeg使用opencv是会报如下错误:
Packageopencv was not found in the pkg-config search path.
Perhapsyou should add the directory containing `opencv.pc'
tothe PKG_CONFIG_PATH environment variable
Nopackage 'opencv' found
ERROR:libopencv not found
(7)另外一种安装方法
cd/home/mycentos7/tools/ffmpeg/
wget
unzip -d . opencv-3.0.0.zip
cd opencv-3.0.0
mkdir build; cd build; ccmake ../
A、执行完上述命令后,会出现ccmake的界面,然后在键盘上按下c键,然后ccmake就会去查看你的编译环境的。
B、等cmake检查完后,根据出现的内容,选择合适的选项,比如如果你没有cuda或者opencl的话,可以将与这些信息有关的项都设置成off。
C、建议以下项保持为ON
BUILD_DOCS
BUILD_EXAMPLES
INSTALL_C_EXAMPLES
WITH_FFMPEG
WITH_GSTREAMER
WITH_JPEG
WITH_GTK
WITH_PNG
WITH_V4L
D、设置完成后,再次敲击键盘上的c键,待配置完成。(4) 配置检测完成后,敲击键盘上的g键,待cmake退出后。
E、执行下面的命令以完成编译:
make
这个编译过程可能需要一段时间,耐心等待一会,你可以用这段时间看看书,喝点水。
F、待编译完成后,最后一个命令:
sudo makeinstall (或使用root安装: make install)
cd ..
(8)编译遇到的问题
A、编译swscale是没有使用fPIC显示如下错误:
/bin/ld:/usr/local/include/../lib/libswscale.a(swscale.o): relocation R_X86_64_PC32against symbol `ff_M24A' can notbe used when making a shared object; recompile with-fPIC
解决方法:编译ffmpeg是使用PIC选项
CFLAGS="-O3-fPIC" ./configure --enable-gpl --enable-version3 --enable-shared--enable-nonfree --enable-postproc --enable-x11grab --enable-gray--enable-small --enable-bzlib --enable-frei0r --enable-libopencore-amrnb--enable-libopencore-amrwb
make
make install
B、如果已经安装ffmpeg,将会报如下错误:出现avformat_free_context和AVCodecID未声明:
cap_ffmpeg.cpp:45:0:
cap_ffmpeg_impl.hpp:在成员函数‘voidCvVideoWriter_FFMPEG::close()’中:
cap_ffmpeg_impl.hpp:1532:29:错误:‘avformat_free_context’在此作用域中尚未声明
avformat_free_context(oc);
^
cap_ffmpeg.cpp:45:0:
cap_ffmpeg_impl.hpp:在全局域:
cap_ffmpeg_impl.hpp:1546:71:错误:使用枚举‘AVCodecID’前没有给出声明
static inline bool cv_ff_codec_tag_match(constAVCodecTag *tags, enum AVCodecID id, unsigned int tag)
^
cap_ffmpeg_impl.hpp:1556:83:错误:使用枚举‘AVCodecID’前没有给出声明
static inline boolcv_ff_codec_tag_list_match(const AVCodecTag *const *tags, enum AVCodecID id,unsigned int tag)
解决方法:将WITH_FFMPEG=OFF
./configure--enable-shared
C、如果已经安装GTK,将会报如下错误:出现未定义的引用:
Linking CXXexecutable ../../bin/opencv_test_core
/lib64/libgtk-3.so.0:对‘g_type_add_instance_private’未定义的引用
/lib64/libgtk-3.so.0:对‘g_type_class_adjust_private_offset’未定义的引用
/lib64/libgtk-3.so.0:对‘g_variant_parse_error_quark’未定义的引用
collect2: 错误:ld 返回 1
make[2]: ***[bin/opencv_test_core] 错误1
make[1]: ***[modules/core/CMakeFiles/opencv_test_core.dir/all] 错误 2
make: *** [all] 错误 2
解决方法:将WITH_GTK=OFF
15、安装libdc1394:
yum installlibdc1394
16、安装ORC(libdirac依赖于该包):
官网:
(1)安装方法
cd/home/mycentos7/tools/ffmpeg/
wget
tar zxvf orc-0.4.18.tar.gz
cd orc-0.4.18
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
(2)设置
ln -s /usr/local/lib/pkgconfig/orc-0.4.pc /usr/lib64/pkgconfig/orc-0.4.pc
否则在dirac编译时报错误:
checking for ORC...no
configure: error:orc-0.4 >= 0.4.16 is required
17、安装dirac编码:
yum install dirac*
官网:
cd/home/mycentos7/tools/ffmpeg/
wget
tar zvxfschroedinger-1.0.11.tar.gz
cd schroedinger-1.0.11
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
ln -s /usr/local/lib/pkgconfig/schroedinger-1.0.pc /usr/lib64/pkgconfig/schroedinger-1.0.pc
18、安装libdirac:
官网:
yum install scons
ln -s /usr/local/lib/pkgconfig/libavcodec.pc /usr/lib64/pkgconfig/libavcodec.pc
cd/home/mycentos7/tools/ffmpeg/
wget
tar zvxf dirac-1.0.2.tar.gz
cd dirac-1.0.2
./configure
sed -i '127 s@unsigned charnext_parse_code;@//unsigned char next_parse_code;@'./libdirac_byteio/parseunit_byteio.cpp
sed -i '129 s@next_parse_code =InputUnByte();@InputUnByte();@' ./libdirac_byteio/parseunit_byteio.cpp
sed -i '131 s@intnext_unit_next_parse_offset;@//int next_unit_next_parse_offset;@'./libdirac_byteio/parseunit_byteio.cpp
sed -i '132 s@next_unit_next_parse_offset= ReadUintLit(PU_NEXT_PARSE_OFFSET_SIZE);@ReadUintLit(PU_NEXT_PARSE_OFFSET_SIZE);@'./libdirac_byteio/parseunit_byteio.cpp
sed -i '162,337,503 s@intstep,max; @int step,max; max=max;@' ./libdirac_common/mv_codec.cpp
make
sudo make install (或使用root安装: make install)
cd ..
如果不使用sed修改代码,将出现如下错误:
parseunit_byteio.cpp:在成员函数‘booldirac::ParseUnitByteIO::IsValid()’中:
parseunit_byteio.cpp:127:23:错误:variable ‘next_parse_code’ set but not used[-Werror=unused-but-set-variable]
unsigned char next_parse_code;
^
parseunit_byteio.cpp:131:13:错误:variable ‘next_unit_next_parse_offset’ set but notused [-Werror=unused-but-set-variable]
int next_unit_next_parse_offset;
^
cc1plus: somewarnings being treated as errors
make[1]: ***[libdirac_byteio_la-parseunit_byteio.lo] 错误
如果不使用sed修改代码,将出现如下错误:
_comp.o
mot_comp.cpp: 在成员函数‘virtual voiddirac::MotionCompensator_EighthPixel::BlockPixelPred(dirac::TwoDArray
mot_comp.cpp:1119:53:错误:narrowing conversion of‘((4 - ((int)rmdr.dirac::MotionVector
const ValueType linear_wts[4] = { (4 - rmdr.x) * (4 - rmdr.y), //tl
^
mot_comp.cpp:1120:44:错误:narrowing conversion of‘(((int)rmdr.dirac::MotionVector
rmdr.x *(4 - rmdr.y), //tr
^
mot_comp.cpp:1121:50:错误:narrowing conversion of‘((4 - ((int)rmdr.dirac::MotionVector
(4 - rmdr.x) *rmdr.y, //bl
^
mot_comp.cpp:1122:44:错误:narrowing conversion of‘(((int)rmdr.dirac::MotionVector
rmdr.x *rmdr.y }; //br
^
cc1plus: allwarnings being treated as errors
make[1]: ***[libdirac_common_la-mot_comp.lo] 错误 1
19、安装bzip2:
官网:
下载地址:
cd/home/mycentos7/tools/ffmpeg/
wget
tar zxvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
sed -i '24 s@-Wall@-Wall-fPIC@' ./Makefile
make
sudo makeinstall (或使用root安装: make install)
cd ..
20、安装zlib:
官网:
下载地址:
最新版本:
cd/home/mycentos7/tools/ffmpeg/
wget
tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
21、安装xavs:
最新版本:
cd/home/mycentos7/tools/ffmpeg/
wget wget
unzip xavs-code-55-trunk.zip
cd xavs-code-55-trunk
./configure
./configure --extra-cflags=-fPIC
make
sudo makeinstall (或使用root安装: make install)
cd ..
22、安装libspeex:
官网:
下载地址:
最新版本:
cd/home/mycentos7/tools/ffmpeg/
wget
tar zxvf speex-1.2rc2.tar.gz
cd speex-1.2rc2
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
ln -s /usr/local/lib/pkgconfig/speex.pc /usr/lib64/pkgconfig/speex.pc
23、安装librtmp:
官网:
cd/home/mycentos7/tools/ffmpeg/
git clonegit://git.ffmpeg.org/rtmpdump
mv rtmpdump rtmpdump-2.4
cd rtmpdump-2.4
make
sudo makeinstall (或使用root安装: make install)
cd ..
ln -s /usr/local/lib/pkgconfig/librtmp.pc /usr/lib64/pkgconfig/librtmp.pc
24、安装libopenjpeg:
官网:
下载地址:
最新版本:
使用1.5.3版本
cd/home/mycentos7/tools/ffmpeg/
wget
mv version.1.5.2.zipopenjpeg-version.1.5.2.zip
unzip openjpeg-version.1.5.2.zip
cd openjpeg-version.1.5.2
cmake .
make
sudo makeinstall (或使用root安装: make install)
cd ..
ln -s /usr/local/lib/pkgconfig/libopenjpeg1.pc/usr/lib64/pkgconfig/libopenjpeg1.pc
cp /usr/local/include/openjpeg-1.5/openjpeg.h/usr/local/include/
25、安装libnut:
cd/home/mycentos7/tools/ffmpeg/
svn checkoutsvn://svn.mplayerhq.hu/nut/src/trunk libnut
cd libnut
sed -i '6s@-Wall@-Wall -fPIC@' ./config.mak
make
sudo makeinstall (或使用root安装: make install)
cd ..
26、安装libgsm:
yum install gsm*
下面的安装有问题,仅供参考
官网:
下载地址:
最新版本:
cd /home/mycentos7/tools/ffmpeg/
wget
tar zxvf libgsm_1.0.13.orig.tar.gz
cd gsm-1.0-pl13
./configure
make
sudo makeinstall (或使用root安装: make install)
cd ..
cp inc/gsm.h /usr/local/include/
cp lib/libgsm.a /usr/local/lib/
1、让动态链接库被系统共享:
修改/etc/ld.so.conf如下:
includeld.so.conf.d/*.conf
/lib
/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
/opt/ffmpeg/lib
保存后执行
ldconfig
2、下载FFmpeg:
官网:
下载地址:
最新版本:
cd/home/mycentos7/tools/ffmpeg
(1) git下载
git clonegit://source.ffmpeg.org/ffmpeg
(2)wget下载
wget
(3)svn下载
svn checkoutsvn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
3、编译:
tar jxvf ffmpeg-2.7.1.tar.bz2
cd ffmpeg-2.7.1
sed -i '29s@#include@//#include@' ./libavfilter/vf_libopencv.c
./configure--enable-gpl --enable-version3 --enable-shared --enable-nonfree--enable-postproc --enable-x11grab --enable-gray --enable-small --enable-bzlib--enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb--enable-libopencv --enable-libdc1394 --enable-zlib --enable-libxvid--enable-libxavs --enable-libx264 --enable-libvpx --enable-libvorbis--enable-libtheora --enable-libspeex --enable-libschroedinger --enable-librtmp--enable-libopenjpeg --enable-libnut --enable-libmp3lame --enable-libgsm--enable-libfaac --enable-libdirac --enable-libdc1394 --enable-libopencv--enable-libopencore-amrwb --enable-libopencore-amrnb --enable-frei0r--enable-bzlib
make
sudo makeinstall (或使用root安装: make install)
cd ..
4、帮助:
./configure --help
Usage: configure[options]
Options: [defaultsin brackets after descriptions]
Standard options:
--help print this message
--logfile=FILE log tests and output to FILE[config.log]
--disable-logging do not log configure debug information
--prefix=PREFIX install in PREFIX []
--bindir=DIR install binaries in DIR[PREFIX/bin]
--datadir=DIR install data files in DIR[PREFIX/share/ffmpeg]
--libdir=DIR install libs in DIR [PREFIX/lib]
--shlibdir=DIR install shared libs in DIR[PREFIX/lib]
--incdir=DIR install includes in DIR[PREFIX/include]
--mandir=DIR install man page in DIR[PREFIX/share/man]
Configurationoptions:
--disable-static do not build static libraries [no]
--enable-shared build shared libraries [no]
--enable-gpl allow use of GPL code, theresulting libs
and binaries will beunder GPL [no]
--enable-version3 upgrade (L)GPL to version 3 [no]
--enable-nonfree allow use of nonfree code, theresulting libs
and binaries will beunredistributable [no]
--disable-doc do not build documentation
--disable-ffmpeg disable ffmpeg build
--disable-ffplay disable ffplay build
--disable-ffprobe disable ffprobe build
--disable-ffserver disable ffserver build
--disable-avdevice disable libavdevice build
--disable-avcodec disable libavcodec build
--disable-avcore disable libavcore build
--disable-avformat disable libavformat build
--disable-swscale disable libswscale build
--enable-postproc enable GPLed postprocessing support[no]
--disable-avfilter disable video filter support [no]
--disable-pthreads disable pthreads [auto]
--enable-w32threads use Win32 threads [no]
--enable-x11grab enable X11 grabbing [no]
--disable-network disable network support [no]
--disable-mpegaudio-hp faster (but less accurate) MPEG audiodecoding [no]
--enable-gray enable full grayscale support(slower color)
--disable-swscale-alpha disable alpha channel support in swscale
--disable-fastdiv disable table-based division
--enable-small optimize for size instead of speed
--disable-aandct disable AAN DCT code
--disable-dct disable DCT code
--disable-fft disable FFT code
--disable-golomb disable Golomb code
--disable-huffman disable Huffman code
--disable-lpc disable LPC code
--disable-mdct disable MDCT code
--disable-rdft disable RDFT code
--disable-vaapi disable VAAPI code
--disable-vdpau disable VDPAU code
--disable-dxva2 disable DXVA2 code
--enable-runtime-cpudetect detect cpucapabilities at runtime (bigger binary)
--enable-hardcoded-tables use hardcodedtables instead of runtime generation
--enable-memalign-hack emulate memalign, interferes with memorydebuggers
--disable-everything disable all components listed below
--disable-encoder=NAME disable encoder NAME
--enable-encoder=NAME enable encoder NAME
--disable-encoders disable all encoders
--disable-decoder=NAME disable decoder NAME
--enable-decoder=NAME enable decoder NAME
--disable-decoders disable all decoders
--disable-hwaccel=NAME disable hwaccel NAME
--enable-hwaccel=NAME enable hwaccel NAME
--disable-hwaccels disable all hwaccels
--disable-muxer=NAME disable muxer NAME
--enable-muxer=NAME enable muxer NAME
--disable-muxers disable all muxers
--disable-demuxer=NAME disable demuxer NAME
--enable-demuxer=NAME enable demuxer NAME
--disable-demuxers disable all demuxers
--enable-parser=NAME enable parser NAME
--disable-parser=NAME disable parser NAME
--disable-parsers disable all parsers
--enable-bsf=NAME enable bitstream filter NAME
--disable-bsf=NAME disable bitstream filter NAME
--disable-bsfs disable all bitstream filters
--enable-protocol=NAME enable protocol NAME
--disable-protocol=NAME disable protocol NAME
--disable-protocols disable all protocols
--disable-indev=NAME disable input device NAME
--disable-outdev=NAME disable output device NAME
--disable-indevs disable input devices
--disable-outdevs disable output devices
--disable-devices disable all devices
--enable-filter=NAME enable filter NAME
--disable-filter=NAME disable filter NAME
--disable-filters disable all filters
--list-decoders show all available decoders
--list-encoders show all available encoders
--list-hwaccels show all available hardwareaccelerators
--list-muxers show all available muxers
--list-demuxers show all available demuxers
--list-parsers show all available parsers
--list-protocols show all available protocols
--list-bsfs show all available bitstreamfilters
--list-indevs show all available input devices
--list-outdevs show all available output devices
--list-filters show all available filters
External librarysupport:
--enable-avisynth enable reading of AVISynth script files[no] ERROR: vfw32 not found
--enable-bzlib enable bzlib [autodetect]
--enable-frei0r enable frei0r video filtering
--enable-libopencore-amrnb enable AMR-NBde/encoding via libopencore-amrnb [no]
--enable-libopencore-amrwb enable AMR-WBdecoding via libopencore-amrwb [no]
--enable-libopencv enable video filtering via libopencv[no]
--enable-libdc1394 enable IIDC-1394 grabbing usinglibdc1394
and libraw1394 [no]
--enable-libdirac enable Dirac support via libdirac [no]
--enable-libfaac enable FAAC support via libfaac [no]
--enable-libgsm enable GSM support via libgsm [no]
--enable-libmp3lame enable MP3 encoding via libmp3lame [no]
--enable-libnut enable NUT (de)muxing via libnut,
native (de)muxer exists [no]
--enable-libopenjpeg enable JPEG 2000 decoding via OpenJPEG[no]
--enable-librtmp enable RTMP[E] support via librtmp[no]
--enable-libschroedinger enable Dirac supportvia libschroedinger [no]
--enable-libspeex enable Speex decoding via libspeex [no]
--enable-libtheora enable Theora encoding via libtheora[no]
--enable-libvorbis enable Vorbis encoding via libvorbis,
nativeimplementation exists [no]
--enable-libvpx enable VP8 support via libvpx [no]
--enable-libx264 enable H.264 encoding via x264 [no]
--enable-libxavs enable AVS encoding via xavs [no]
--enable-libxvid enable Xvid encoding via xvidcore,
native MPEG-4/Xvidencoder exists [no]
--enable-mlib enableSun medialib [no]
--enable-zlib enable zlib [autodetect]
Advanced options(experts only):
--source-path=PATH path to source code [/home/mycentos7/tools/ffmpeg/ffmpeg]
--cross-prefix=PREFIX use PREFIX for compilation tools []
--enable-cross-compile assume a cross-compiler is used
--sysroot=PATH root of cross-build tree
--sysinclude=PATH location of cross-build system headers
--target-os=OS compiler targets OS []
--target-exec=CMD command to run executables on target
--target-path=DIR path to view of build directory ontarget
--nm=NM use nm tool
--ar=AR use archive tool AR [ar]
--as=AS use assembler AS []
--cc=CC use C compiler CC [gcc]
--ld=LD use linker LD
--host-cc=HOSTCC use host C compiler HOSTCC
--host-cflags=HCFLAGS use HCFLAGS when compiling for host
--host-ldflags=HLDFLAGS use HLDFLAGS when linking for host
--host-libs=HLIBS use libs HLIBS when linking for host
--extra-cflags=ECFLAGS add ECFLAGS to CFLAGS []
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS[]
--extra-libs=ELIBS add ELIBS []
--extra-version=STRING version string suffix []
--build-suffix=SUFFIX library name suffix []
--arch=ARCH select architecture []
--cpu=CPU select the minimum required CPU(affects
instructionselection, may crash on older CPUs)
--disable-asm disable all assembler optimizations
--disable-altivec disable AltiVec optimizations
--disable-amd3dnow disable 3DNow! optimizations
--disable-amd3dnowext disable 3DNow! extended optimizations
--disable-mmx disable MMX optimizations
--disable-mmx2 disable MMX2 optimizations
--disable-sse disable SSE optimizations
--disable-ssse3 disable SSSE3 optimizations
--disable-armv5te disable armv5te optimizations
--disable-armv6 disable armv6 optimizations
--disable-armv6t2 disable armv6t2 optimizations
--disable-armvfp disable ARM VFP optimizations
--disable-iwmmxt disable iwmmxt optimizations
--disable-mmi disable MMI optimizations
--disable-neon disable neon optimizations
--disable-vis disable VISoptimizations
--disable-yasm disable use of yasm assembler
--enable-pic build position-independent code
--malloc-prefix=PFX prefix malloc and related names with PFX
--enable-sram allow use of on-chip SRAM
--disable-symver disable symbol versioning
Developer options(useful when working on FFmpeg itself):
--disable-debug disable debugging symbols
--enable-debug=LEVEL set the debug level []
--disable-optimizations disable compiler optimizations
--enable-extra-warnings enable more compiler warnings
--disable-stripping disable stripping of executables andshared libraries
--samples=PATH location of test samples for FATE
NOTE: Object filesare built at the place where configure is launched.
5、官方ffmpeg第三方编码版本:
git: g379ddc6 built on 20150726
build:ffmpeg-git-32bit-static.tar.xz
build:ffmpeg-git-64bit-static.tar.xz
release: 2.7.2
build:ffmpeg-release-32bit-static.tar.xz
build:ffmpeg-release-64bit-static.tar.xz
gcc: 4.9.3
yasm: 1.3.0
libass: 0.12.3
libvpx: 1.4.0-865-g55c6a74
libx264: 0.146.109 121396c
libx265: 1.7+373-db59e6d9b85b
libxvid: 1.3.4-1
libwebp: 0.4.3
libgnutls: 3.3.15
libtheora: 1.1.1
libvidstab: 1.10
libfreetype: 2.5.2-4
libopenjpeg: 1.5.2
libsoxr: 0.1.1
libopus: 1.1-2
libspeex: 1.2
libvorbis: 1.3.4-2
libmp3lame: 3.99.5
libvo-aacenc: 0.1.3-1
libvo-amrwbenc: 0.1.3-1
libopencore-amrnb: 0.1.3-2.1
libopencore-amrwb: 0.1.3-2.1
6、其他第三方编码:
(1) freetype
官网:
下载:
(2) libtheora
官网:
下载:
(3) libiconv
官网:
下载:
(4) fdk-aac
下载:
(5) vo-aacenc
下载:
(6) vo-amrwbenc
下载:
(7) opencore-amr
下载:
1、百度经验:
2、
mpeg4ip.h:126:error: new declaration ‘char* strcasestr(const char*, const char*)’
解决方法:
从123行开始修改此文件mpeg4ip.h,到129行结束。
修改前:
#ifdef __cplusplus
extern "C"{
#endif
char*strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif
修改后:
#ifdef __cplusplus
extern"C++" {
#endif
const char*strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif
ffmpeg: error whileloading shared libraries: libavfilter.so.0: cannot open shared object file: Nosuch file or directory
这事没有设置环境路径造成了,增加一个ffmpeg.conf配置文件:
# cd/etc/ld.so.conf.d
# vi ffmpeg.conf
在文件内写上:
/usr/local/lib
然后确认生效:
# ldconfig