ffmpeg移植

版权声明:凡本人原创,转发请注明出处,谢谢! https://blog.csdn.net/qq_41248872/article/details/83113135

编译环境:ubuntu12.04

交叉编译器:arm-none-linux-gnueabi-gcc 4.4.1

目标板:iTOP4412 (cortex A9)

ffmpeg库的移植主要包括:

      1.yasm移植(可选,yasm是汇编编译器,ffmpeg加入它是为了提高编译速度,可在x264配置时使用--disable-asm选择不使用)

      2.x264移植

      3.xvid移植(可选

      4.ffmpeg移植

具体步骤:

1.编译yasm

   1)进入源码压缩包目录,解压

   2)制作编译脚本yasm_build.sh

        vim yasm_build.sh

扫描二维码关注公众号,回复: 3886846 查看本文章

        添加内容:

#!/bin/sh
cd yasm-1.3.0
mkdir _install
./configure --enable-shared --prefix=${PWD}/_install --host=arm-none-linux-gnueabi
make
make install

3)执行编译脚本

      ./yasm_build.sh

      则在yasm目录下的_install目录里生成/include /lib /bin

2.设置临时环境变量

      export PATH=$PATH:/home/jiangyu/software/x264/yasm-1.3.0/_install/bin

3.编译x264 

1. 进入x264文件夹,进行配置

1

$ ./configure --prefix=${PWD}/_install --enable-shared --disable-asm --host=arm-none-linux-gnueabi

   (如果配置出现找不到目录错误,单独一个一个添加配置选项尝试,确保都配置上)  

   说明:--prefix={PWD}/_install 安装目录
              --enable-shared   打开动态链接,可以生成libx264.so
              --disable-asm     因为是移植到arm开发板上,因此把汇编选项关闭
              --host=arm-none-linux-gnueabi 指定目标CPU和系统

2. 配置完后生成config.mak,打开config.mak修改:


         1)将 CC=gcc 改为 CC=arm-none-linux-gnueabi-gcc
         2)将 LD=gcc -o 改为 LD=arm-none-linux-gnueabi-gcc –o
         3)将 AR=ar rc  改为 AR=arm-none-linux-gnueabi-ar rc 
         4)将 RAMLIB=ranlib 改为 RANLIB=arm-none-linux-gnueabi-ranlib
         保存退出

3. make 编译
4. make install 安装
      安装之后在指定安装目录就有/bin,/include,/lib这三个文件夹

3.编译xvid

    1)进入主目录下build/generic/

    2)配置:mkdir _install

                   ./configure --host=arm-none-linux-gnueabi --target=arm-linux  --prefix=${PWD}/_install

    3)make

    4)make install 

     _install下生成/include /lib

4.编译ffmpeg

进入ffmpeg主目录,mkdir _install 

1)配置 : 

./configure --prefix=/home/jiangyu/software/ffmpeg/_install --disable-x86asm  --disable-ffmpeg --disable-debug --disable-doc --disable-ffplay --disable-ffprobe --enable-version3 --enable-shared --enable-nonfree --enable-gpl --enable-libx264 --enable-pthreads --enable-decoder=h264 --enable-parser=h264 --enable-demuxer=h264 --enable-protocol=file --cross-prefix=arm-none-linux-gnueabi- --target-os=linux --arch=arm --enable-cross-compile --cc=arm-none-linux-gnueabi-gcc --extra-cflags=-I/home/jiangyu/software/ffmpeg/x264-snapshot-20181014-2245/_install/include --extra-ldflags=-L/home/jiangyu/software/ffmpeg/x264-snapshot-20181014-2245/_install/lib --extra-libs=-ldl

2)make -j4

3)make -j4 install

  ./_install下生成lib include share bin四个文件夹

5.拷贝库以及可执行文件到开发板

cp (x264路径)/_install/lib/lib*  /home/jiangyu/rootfs/lib

cp (x264路径)/_install/bin/x264  /home/jiangytu/rootfs/app/

cp (ffmpeg路径)/_install/lib/lib*  /home/jiangyu/rootfs/lib

cp (ffmpeg路径)/_install/bin/ffmpeg  /home/jiangytu/rootfs/app/

(上述库及可执行文件均注意需要添加可执行权限)

6.测试

x264测试:

       ./x264 -o test.264 test.yuv   (.yuv文件通过x264编码压缩生成test.264视频文件)

ffmpeg测试:

       ./ffmpeg -f video4linux2 -s 1920x1080 -i /dev/video5 test.avi   按q退出录制视频,生成test.avi文件,可直接用播放器播放查看

 至此,此次移植过程结束,上述过程只移植了ffmpeg的x264编码部分,需要其它功能可自行添加。

猜你喜欢

转载自blog.csdn.net/qq_41248872/article/details/83113135