本帖最后由 翠花儿 于 2021-6-22 16:39 编辑
FFmpeg(Fast Forward Mpeg)是一种可以用来记录、转换数字音频、视频,并能将其转化为流的多媒体视频处理工具,拥有视频采集功能、视频格式转换、视频抓图等功能。本文档介绍如何将ffmpeg移植到ARM平台。相关的配套资料在网盘资料的“iTOP-i.MX6开发板资料汇总(不含光盘资料)\08_iTOP-i.MX6开发板Linux系统开发资料\09-Linux系统移植FFmpeg”目录下。 开发板使用迅为i.MX6ULL终结者和USB免驱摄像头,交叉编译工具为arm-2009q3,开发板里面的系统是升级版QT5.7文件系统。 1 编译x264 我们在Ubuntu新建一个ffmpeg文件夹,将压缩包放到ubuntu并解压,tar -vxf x264-master.tar.bz2 ,输入命令“mkdir _x264_install”创建文件夹_x264_install用来存放编译后生成的文件,如下图所示: 进入解压后的路径x264-master,执行以下命令: ./configure --enable-shared --disable-asm --host=arm-none-linux-gnueabi --cross-prefix=arm-none-linux-gnueabi- --prefix=/home/topeet/iMX6Q/ffmpeg/_x264_install/ 参数说明: --prefix=/home/ubuntu/work/ffmpeg/_x264_install/ :指定编译后存放路径
--host=arm-linux-gnueabihf :指定交叉编译链,用户需要修改为自己的交叉编译器
--enable-shared :允许共享 --disable-asm:跳过汇编 执行make,成功后如下图所示: 执行make install,成功后如下图所示: 查看文件夹_x264_install,发现生成的库文件已经在此目录下 2 编译FFmpeg 下载后解压:tar -vxf ffmpeg-snapshot.tar.bz2 ,创建文件夹_ffmpeg_install存放生成的文件: 进入解压后的ffmpeg文件夹,修改Makefile,添加编译选项:CFLAGS += -fPIC, 配置编译选项,执行以下命令: ./configure --prefix=/home/topeet/iMX6Q/ffmpeg/_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/topeet/iMX6Q/ffmpeg/_x264_install/include --extra-ldflags=-L/home/topeet/iMX6Q/ffmpeg/_x264_install/lib --extra-libs=-ldl 参数说明: --cross-prefix=arm-none-linux-gnueabi-:配置为自己的交叉编译工具 --cc=arm-none-linux-gnueabi-gcc:配置为自己的交叉编译工具 --arch=arm --prefix=/home/topeet/iMX6Q/ffmpeg/_ffmpeg_install:配置为ffmpeg的安装目录 --extra-cflags=-I/home/topeet/iMX6Q/ffmpeg/_x264_install/include :配置为x264的安装目录的头文件路径 --extra-ldflags=-L/home/topeet/iMX6Q/ffmpeg/_x264_install/lib:配置为x264的安装目录的库文件路径 输入以下命令,如下图所示: 配置成功后如下图所示: 执行make开始编译,完成后如下图所示: 执行make install,成功后生成的文件在我们创建好的_ffmpeg_install目录下: 我们输入命令“ cd ../_ffmpeg_install/”进入到安装目录下,再输入命令“ls”查看文件,可以看到在安装目录下已经有了安装文件,如下图所示: 3 移植到ARM开发板我们通过ssh将_x264_install下的库文件拷贝到开发板的/lib/目录下,大家也可以使用nfs或者U盘拷贝文件到开发板,如下图所示: 将_ffmpeg_install/lib下的so库文件全部拷贝到开发板的/lib/目录下 我们输入“chmod 777 -R *”赋予文件权限,如下图所示: 将_ffmpeg_install/bin/目录下的ffmpeg拷贝到开发板的/bin/目录下: 4 测试插上USB免驱摄像头,终端显示如下: 设备节点为/dev/video2,在开发板终端执行以下命令: ffmpeg -f video4linux2 -s 320x240 -i /dev/video2 /mnt/topeet.avi 会出现如下所示: 开发板的/mnt/目录下会出现topeet.avi文件,如下图所示: 将此文件拷贝到windows上,用视频播放设备打开能看到录像说明移植成功。
|