ffmpeg 在linux下编译

1、下载ffmpeg。 

    wget http://down1.chinaunix.net/distfiles/ffmpeg-0.4.9-p20051120.tar.bz2 

  我是在这个网址上下载ffmpeg-0.4.9-p20051120.tar.bz2,看网上有人用的是svn下载,但是我的机子中没有svn客户端,然后就在网上搜索,下载了这个版本。如果利用svn可以下载ffmpeg最新的版本。 

  svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg 

  2、解压 

  tar xvfj ffmpeg-0.4.9-p20051120.tar.bz2 

  得到解压后的目录是ffmpeg-0.4.9-p20051120,名字太长,利用mv命令改为ffmpeg 

  mv ffmpeg-0.4.9-p20051120.tar.bz2 ffmpeg 

  3、配置 

  ./configure --enable-shared --prefix=/usr/local/ffmpeg 

  其中:--enable-shared 是允许其编译产生动态库,在以后的编程中要用到这个几个动态库。--prefix设置的安装目录。 

  4、编译并安装 

  make 
  make install 

  5、安装之后在/usr/local/ffmpeg会看到有三个目录 

  lib 动态链接库位置 
  include 编程要用到头文件 
  bin 执行文件所在的目录 

  6、为了以后方便编程,我们把lib中的三个链接库libavcodec.so libavformat.so libavutil.so复制到/usr/lib下。把include目录下的ffmpeg目录复制到/usr/include下。 

这里我这样复制了还是不对,-lavcodec -lavutil -lavformat的时候,提示找不到库
然后我把 /usr/local/ffmpeg/lib  所有文件复制到 /usr/local/lib才可以的
  执行bin目录下的ffplay,可以去播放音频或者视频文件。例如播放1.mp3 

  ./ffplay 1.mp3 

  另外,bin目录下还有两个文件:ffmpeg和ffserver 

  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的,则采用静态链接的方式,不会生成那三个动态库。同时生成的ffplay、ffmpeg的执行文件也比较的大,因为他们不需要动态库的支持,就可以执行。但是不利于再次开发,所以我采用动态链接的方式。configure中还有很多的选项,可以通过./configure --help查看,也可以直接查看configure文件。这在配置的时候很重要。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译 FFmpeg 的 ffplay 工具,你需要先获取 FFmpeg 的源代码,并在 Linux 环境下安装交叉编译工具链。以下是编译步骤的简要概述: 1. 获取 FFmpeg 源代码 你可以从 FFmpeg 的官方网站或 Git 仓库中获取最新的源代码。 2. 安装交叉编译工具链 你需要安装适用于 arm64 架构的交叉编译工具链,例如 aarch64-linux-gnu-gcc。你可以从 Linux 发行版的软件仓库中安装,或者从交叉编译工具链的官方网站下载。 3. 配置编译选项 进入 FFmpeg 源代码目录,运行以下命令进行配置: ``` ./configure --arch=arm64 --target-os=linux --enable-gpl --enable-nonfree --enable-shared --enable-pic --cross-prefix=aarch64-linux-gnu- --prefix=/usr/local/arm/ffmpeg --extra-cflags="-I/usr/local/arm/include" ``` 这个命令与之前提到的类似,指定了 arm64 架构和 Linux 系统,启用了 GPL 和非自由组件,以及共享库和位置无关代码编译选项。额外的 CFLAGS 选项指定了头文件搜索路径。 4. 编译和安装 运行以下命令进行编译和安装: ``` make make install ``` 这个命令将编译 FFmpeg 和 ffplay 工具,并将它们安装到指定的目录中。如果编译过程出现错误,你可以查看编译日志和错误信息,然后尝试解决问题。 注意:编译 FFmpeg 需要一定的时间和系统资源,特别是在较慢的硬件上。你可以使用 make 命令的 -j 选项来指定并行编译任务的数量,以缩短编译时间。例如,make -j4 将使用 4 个并行任务编译代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值