ffmpeg在linux下面的编译和导入eclipse

来源:互联网 发布:广告投放知乎 编辑:程序博客网 时间:2024/04/29 05:13

分为二部分,第一部分是ffmpeg的编译,第二部分是如何导入eclipse


第一部分 ffmpeg在linux下面的编译

      

1、下载ffmpeg。      在网上搜索一下,或者到官方网站下载(推荐官网那下载)       使用git命令下载源代码的的命令为:        git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg​         这样下载的源代码不用解压。     使用apt-get 下载源代码的命令为:     apt-get source ffmpeg  推荐使用这种方法下载源代码,因为这样的版本是最稳定的  2、解压     tar命令解压  3、配置  ./configure --enable-shared --prefix=/usr/local/ffmpeg     其中:--enable-shared 是允许其编译产生动态库,在以后的编程中要用到这个几个动态库。--prefix设置的安装目录。   ./congigure 表示执行当前目录下的configure 命令  可能问题:      1. 提示“ bash: ./configure: 权限不够 ”,解决方法:       chmod +x configure2)使用apt-get下载后的源代码  可能权限不够,因为使用了 sudo apt-get这个命令,去掉sudo 就可以了   2.  出现  yasm not found, use --disable-yasm for a crippled build解决方法:  缺少yasm环境,添加之   sudo apt-get install yasm  4、编译并安装  make   make install
    make 命令后就是编译的过程,这个过程的时间很长,你可以聊聊天喝喝茶浏览下网页
  5、安装之后在/usr/local/ffmpeg会看到有三个目录  lib 动态链接库位置  include 编程要用到头文件  bin 执行文件所在的目录 
下面的步骤可能用不上,实际上在eclispe开发管理源代码的时候更用不上  6、为了以后方便编程,我们把lib中的三个链接库libavcodec.so libavformat.so libavutil.so复制到/usr/lib下。把include目录下的ffmpeg目录复制到/usr/include下。复制的第一条命令:    sudo cp libavcodec.so libavformat.so libavutil.so libavdevice.so libavfilter.so libswscale.so  //usr/lib  复制的第二条命令:     sudo cp -r libavdevice  libavformat  libswscale libavcodec libavfilter libavutil  /usr/include  执行bin目录下的ffplay,可以去播放音频或者视频文件。例如播放1.mp3  ./ffplay 1.mp3  另外,bin目录下还有两个文件:ffmpegffserver  ffmpeg是一个很好的视频和音频的格式转化工具。网上有很多它的说明文档。如果不想生成ffserver,只要在./configure的时候加--disable-ffserver即可。  7、编程  如果写了一个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的,则采用静态链接的方式,不会生成那三个动态库。同时生成的ffplayffmpeg的执行文件也比较的大,因为他们不需要动态库的支持,就可以执行。但是不利于再次开发,所以我采用动态链接的方式。configure中还有很多的选项,可以通过./configure --help查看,也可以直接查看configure文件。这在配置的时候很重要。

第二部分 :导入eclipse

   编译通过了,面对这么多源文件肯定要管理工具去管理这些源代码,实际上在linux上开发用vim除非那种大牛级人物,否则就是自娱自乐。管理源代码工具一般就是eclipse,还有QT但是我一般用的eclipse.关于如何安装eclispe自己去网上找资料

1.确保你的eclipse已经安装了CDT插件,CDT是让eclipse支持c/c++。如果不知道怎么安装,请参考:

http://max.berger.name/howto/cdt/ar01s04.jsp#installingcdt


2. 导入

建立项目工程:

File->new->MakefileProject with Existing Code

ImportExisting Code对话框中的Toolchainfor Indexer Settings中选LinuxGCC

然后点Browse找到源代码文件夹

然后点OK->Finish

可以看到新建的工程中已经包含了所有的源码和编译后的文件。


调试

下面以调试ffmpeg为例,你可以调试ffmpeg工程中任何一个,ffmpeg,ffplay, ffserver等。

右键点击ffmpeg_gdebugas->Local c/c++ Application->gdb/mi 然后Ok


关于参数的设置:
右键点击工程选择 debugconfigurations -> Arguments在Program arguments输入运行调试的参数
例如:

   -i   /home/limingkuan/ceshi2/test%d.png   kuan.mp4



现在搞定了,就以调试运行了



0 0
原创粉丝点击