ffmpeg移植

1 篇文章 0 订阅
1 篇文章 0 订阅

编译环境:ubuntu5.4.0-77

交叉编译器:gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux

目标板:工控M6Y2C系列 (cortex A7)

 具体步骤:

 一、安装

具体需要什么版本的可以去ffmpeg官网自行下载,我这里采用的是ffmpeg4.3.2版本的.

       http://ffmpeg.org/download.html#build-linux

   http://ffmpeg.org/releases/ffmpeg-4.3.2.tar.gz

下载完成后,用开始解压

 

tar -zxvf ffmpeg-4.3.2.tar.gz

二、编译

 

下载源码解压到用户目录。

执行以下命令去配置:

./configure --cross-prefix=arm-linux-gnueabihf- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc(编译器) --arch=arm --prefix=(安装目录) --enable-shared --enable-pic --disable-static --enable-gpl --enable-nonfree --disable-ffplay --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-yasm --disable-stripping

根据我的具体情况我的配置是:

./configure  --prefix=/home/vmuser/ff  --enable-cross-compile  --cross-prefix=arm-linux-gnueabihf-  --cc=arm-linux-gnueabihf-gcc --arch=arm   --target-os=linux  --enable-gpl --enable-shared --enable-pic --enable-nonfree    --enable-libx264 --pkg-config-flags=--static  --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-yasm --disable-stripping --extra-cflags="-I/home/vmuser/h264/h26_ff/include"  --extra-ldflags="-L/home/vmuser/h264/h26_ff/lib" --extra-libs=-ldl

配置解析:

1 生成参数

参数功能注释
--arch编译架构
--help打印帮助信息
--prefix安装路径Linux默认为/usr/local
--libdir库安装路径默认PREFIX/lib
--shlibdir共享库安装路径默认PREFIX/lib
--incdir头文件安装路径默认PREFIX/include/ffmpeg
--mandir指定man page路径默认PREFIX/man
--cc指定编译器默认gcc
--make指定何种make
--source-path源码路径
--pkg-config指定pkg-config默认pkg-config
--pkg-config-flags指定pkg-config参数默认--static
--extra-cflags添加额外的CFLAGECFLAGS
--extra-ldflags添加额外的LDFLAGELDFLAGS
--extra-libs添加额外的LIBELIBS
--cpu指定最小的CPU版本
--nm指定NM工具
--ar指定AR工具
--as指定汇编工具
--ld指定LD链接器

2 交叉参数

参数功能注释
-cross-prefix指定编译工具交叉编译
--cross-compile假定使用交叉编译
--target-os目标系统
--sysroot交叉编译树的根libc
--sysinclude交叉编译头文件
--target-exec目标系统上的运行命令
--target-path目标系统上的模拟构建路径

3 性能参数

      以下参数使用--enable-foo启用或使用--disable-foo禁用时使用--e/d-代替。

参数功能注释
--e/d-debug是否调试enable时可指定level
--e/d-optimizations编译器优化
--samples制定测试示例位置
--e/d-stripping是否剥离可执行程序与共享库
--e/d-asm汇编优化
--e/d-yasm是否使用yasm汇编器

4 功能选项

使用--enable-foo启用或使用--disable-foo禁用需要的功能插件,使用--e/d-代替。某些部件(如decoder)enable时需要明确指明,例:--enable-decoder=libdavs2。

参数功能注释
--e/d-static静态库构建默认:no
--e/d-shared共享库构建默认:no
--e/d-pic代码非位置依赖默认:no
--e/d-gplGPL代码使用
--e/d-nonfree非免费得代码使用默认:no
--e/d-doc文档构造默认:yes
--e/d-pthreadspthreads默认:yes
--disable-decoder禁用所有解码器同理其他
--enable-decoder=DEC打开某个解码器同理其他
--enable-libdavs2启用avs2解码器同理其他

三、安装

     

执行完成后,用make,make install进行编译安装。

 四、移植

    

Make install 成功后,用户安装目录下出现bin,include,lib,share目录。

进入bin目录执行file ffmpeg 查看编译出的执行程序是否是ARM架构。

移植时把对应的bin,lib目录下的文件移植到对应板子上的/usr/bin,/usr/lib目录下,注意查看解压时软链接是否失效,可用ls -l查看库文件的软链接(其它目录若有调用可自行移植)。

若出现/usr/lib空间不足时,可放在/opt目录或者ext4格式的TF卡,然后指定其库文件路径。操作步骤如下:

在/etc/profile文件最后一行加入

export LD_LIBRARY_PATH=/opt/lib:$LD_LIBRARY_PATH

退出保存后执行source /etc/profile,然后执行ffmpeg -version进行验证,若无报任何错误表示移植成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

signal___

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值