ubuntu编译ffmpeg并且demo测试

来源:互联网 发布:淘宝怎么用信用卡支付 编辑:程序博客网 时间:2024/06/08 12:12

一、Ubuntu下编译ffmpeg源码指令

下载ffmpeg,解压(跳过),需要安装一些基本的依赖库,如x264等;

切换到ffmpeg源码的目录,config指令

$ ./configure --enable-libx264 --enable-libxvid --enable-libvo-aacenc --disable-yasm --disable-asm --enable-static --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-ffplay --samples=/home/xy/soft/ffout --prefix=/home/xy/soft/ffout

注意:如果需要更多的调试信息,可以加入以下两个配置选项

--enable-debug --disable-optimizations

下一步,编译

make
下一步,安装
sudo make install

安装完成以后,会在指定的目录找到编译结果;路径自定义,由
--prefix=/home/xy/soft/ffout
来指定;

二、调用ffmpeg生成的动态库

编写一个简单的Demo程序

#include <iostream>using namespace std;#define __STDC_CONSTANT_MACROS  extern "C" {#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libavutil/avutil.h" //#include "libavutil/opt.h"//#include "libswscale/swscale.h"}int main(int argc, char *argv[]){cout<<"FFmpeg Test!"<<endl;av_register_all();return 0;}
里面只调用了一个ffmpeg函数,av_register_all(),作为演示,已经足够了;该文件命名为FFDemo.cpp

下一步,编译该文件

g++ FFDemo.cpp -o FFDemo -I/home/xy/soft/ffout/include -L/home/xy/soft/ffout/lib -lavformat -lavcodec -lswscale -lswresample -lavutil -lm -lz


其中,-I,表示include头文件的目录,-L,表示LIB的目录,-l是需要链接的库名称

编译以后,在同目录下生成一个FFDemo的可执行文件;

但是折腾还没有解释,你会发现执行它,./FFDemo,会找不到libavformat.so.56等动态库;

需要设置一下动态库路径,:

sudo gedit /etc/ld.so.conf.d/libffmpeg.conf
打开了libffmpeg.conf(这个文件是被新建的),里面加入下面的路径(根据自己的实际情况),在文件中加入动态库的目录,这里是

/home/xy/soft/ffout/lib

最后,可以验证一下,是否可以找到动态库了:

sudo ldconfig -v




0 0
原创粉丝点击