一、下载ffmpeg。
二、解压
tar xvfj ffmpeg-0.11.1.tar.bz2
获得解压后的目录是ffmpeg-0.11.1 编程
三、配置 工具
./configure --enable-shared --prefix=/usr/local/ffmpeg
其中:--enable-shared 是容许其编译产生动态库,在之后的编程中要用到这个几个动态库。--prefix设置的安装目录。
四、编译并安装
make
make install
五、安装以后在/usr/local/ffmpeg会看到有四个目录
lib 动态连接库位置
include 编程要用到头文件
bin 执行文件所在的目录 ui
share spa
六、为了之后方便编程,咱们把lib中的三个连接库libavcodec.so libavformat.so libavutil.so复制到/usr/lib下。把include目录下的ffmpeg目录复制到/usr/include下。
执行bin目录下的ffplay,能够去播放音频或者视频文件。例如播放1.mp3
./ffplay 1.mp3
另外,bin目录下还有两个文件:ffmpeg和ffserver
ffmpeg是一个很好的视频和音频的格式转化工具。网上有不少它的说明文档。若是不想生成ffserver,只要在./configure的时候加--disable-ffserver便可。
七、编程
若是写了一个test.c文件,要包含ffmpeg的头文件,能够这样写:
#include “”
编译:gcc -o test test.c -lavformat -lavcodec -lavtuil (前提是有第6步的操做)
若是没有第6部的操做,则编译的时候以下:
gcc -o test test.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavcodec -lavtuil
编译成功以后,执行的时候仍是须要动态库的支持,仍是要把那三个动态库文件复制到/usr/lib或者/lib中,否则执行的时候会说找不到动态库连接。还有一个方法能够解决这个问题,就是把/usr/local/ffmpeg/lib这个目录加入到/etc/ld.so.config中,而后执行ldconfig,或者重启电脑,这样执行的时候系统就能够从/usr/local/ffmpeg/lib这个目录下去找这三个动态库文件了。
以上的方式是采用动态库编译ffmpeg的,若是在configure的时候不加上--enable-shared的,则采用静态连接的方式,不会生成那三个动态库。同时生成的ffplay、ffmpeg的执行文件也比较的大,由于他们不须要动态库的支持,就能够执行。可是不利于再次开发,因此我采用动态连接的方式。configure中还有不少的选项,能够经过./configure --help查看,也能够直接查看configure文件。这在配置的时候很重要。