搜索

121

主题

128

帖子

665

积分

网站编辑

Rank: 8Rank: 8

积分
665
发表于 2021-6-22 16:35:32 5853 浏览 0 回复

i.MX6开发板QT系统移植FFmpeg

本帖最后由 翠花儿 于 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
获取x264源码,可以从网站http://www.videolan.org/developers/x264.htm下载,进入如图界面,点击下载;或者用我们已经下载压缩包(与文档同一目录下的x264-master.tar.bz2);
我们在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
FFmpeg下载地址:http://ffmpeg.org/download.html,已经把下载好的压缩包放在了文档同一目录下。
下载后解压: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上,用视频播放设备打开能看到录像说明移植成功。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表