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

本文详细介绍了如何在Linux环境下编译ffmpeg,并将其导入到Eclipse中进行C/C++开发。首先确保安装了CDT插件,然后通过File->new->Makefile Project with Existing Code导入源代码,选择Linux GCC作为工具链。完成导入后,可以调试如ffmpeg、ffplay、ffserver等项目。调试时,选择Debug As -> Local C/C++ Application,配置gdb/mi并指定参数,即可开始调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分为二部分,第一部分是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



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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值