编译ffmpeg步骤(windows&linux)

来源:互联网 发布:电脑阅卷的软件 编辑:程序博客网 时间:2024/05/22 04:28
windows下的编译 ---由于有现成的,未进行验证
-------------编译动态库,一般都是编译动态库---------------
动态库和静态库只在配置上的差别,配置如下:
./configure --enable-shared --disable-static --enable-memalign-hack --prefix=C:\MinGW\msys\1.0 --extra-cflags="-fno-common"
后面的步骤一样:
make
make install
在开始编译之前,可以把原来编译的目标 文件清除掉:
make distclean
动态编译应该是会产生lib文件,编译之后的dll文件被放到了ffmpeg目录下,可以搜索查看它们。
只编译部分内容的参数列表:
./configure --enable-shared --enable-gpl --enable-version3 --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --enable-w32threads --disable-network --enable-memalign-hack --disable-everything --enable-decoder=h264 --enable-decoder=mpeg2video --enable-parser=h264 --enable-encoder=mpeg2video --disable-debug
 
PS:
可以直接下载,在http://ffmpeg.zeranoe.com/builds/里面可以下载已经编译好了的动态库(开发库与运行库)与静态库,里面也包含了很多第三方的编解码库,很方便。
 
linux下的编译:
1.上传 ffmpeg 源码
2.编译并安装yasm-1.2.0.tar.gz
部分功能依赖这个,不安装无法顺利编译。
3.编译并安装SDL-1.2.15.zip
若不安装这个,则配置时有如下显示,ffplay也无法编译出来
SDL support    no
4.编译
./configure --enable-shared --enable-gpl --enable-version3 --prefix=/usr/local/ffmpeg
make
make install
之后在/usr/local/ffmpeg会看到有四个目录
lib 动态链接库位置
include 编程要用到头文件
bin 执行文件所在的目录
shere 帮助文件以及样例文件
不加--enable-gpl参数,则配置时有如下显示,也无法编译出来postproc库
postprocessing support    no
不加--enable-version3参数,则部分功能也编译不出来,如OpenCore,VisualOn,Fraunhofer
5.为了方便使用,将/usr/local/ffmpeg目录的编译出来的内容,移到
/usr/local/目录下
然后配置
PATH  --添加/usr/local/bin目录
LD_LIBRARY_PATH  --添加/usr/local/lib目录 (Linux)   HP-UX系统--SHLIB_PATH    AIX系统--LIBPATH
这样就可以直接在命令行下使用相关的命令了。
注:
重复编译的时候,可以用下面命令把原来编译的目标文件清除掉:
make distclean
 
编写自己代码时的编译语句:
 
linux下面的代码编译:
gcc -o test test.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavcodec -lavutil
为了以后方便编程,把lib中的三个链接库libavcodec.so libavformat.so libavutil.so复制到/usr/lib下。
把include目录下的ffmpeg目录复制到/usr/include下。则可以用
gcc -o test test.c -lavformat -lavcodec -lavtuil
 
windows下面的代码编译:
gcc -o ffmpeg ffmpeg.c -I"F:\decoding\include" -L"F:\decoding\lib" -lavformat -lavcodec -lavutil
 
原创粉丝点击