iTOP-iMX6ULL开发板-FFmpeg移植

tech2025-06-16  2

本章节使用的资料已经放到了开发板网盘资料中,路径为:11_Linux 系统开发进阶\98_章节使用资料。 FFmpeg(Fast Forward Mpeg)是一种可以用来记录、转换数字音频、视频,并能将其转化为流的多 媒体视频处理工具,拥有视频采集功能、视频格式转换、视频抓图等功能。本文档介绍如何将 ffmpeg 移植 到 ARM 平台。 开发板使用迅为i.MX6ULL终结者和USB免驱摄像头,交叉编译工具为arm-linux-gnueabihf,yocto Qt5 文件系统。98.1  编译 x264 获取 x264 源码,可以从网站 http://www.videolan.org/developers/x264.htm 下载,进入如图 98.1.1 界 面,点击下载;或者用我们已经下载压缩包(与文档同一目录下的 x264-master.tar.bz2); 将压缩包放到 ubuntu 并解压,tar -vxf x264-master.tar.bz2 ,创建文件夹_x264_install 用来存放编译后 生成的文件,mkdir _x264_install: 进入解压后的路径 x264-master,执行以下命令: ./configure --enable-shared --prefix=/home/ubuntu/work/ffmpeg/_x264_install/ --host=arm-linux-gnueabihf --disable-asm 参数说明: --prefix=/home/ubuntu/work/ffmpeg/_x264_install/ :指定编译后存放路径. --host=arm-linux-gnueabihf :指定交叉编译链,用户需要修改为自己的交叉编译器 --enable-shared :允许共享 --disable-asm:跳过汇编 修 改配 置文 件 config.mak, vi config.mak , 修改 为自 己 的路 径 和交 叉编 译 工具 ( 本 文档 用的 arm-linux-gnueabihf-gcc), SYS_ARCH=ARM SYS=LINUX CC= arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-gcc -o AR= arm-linux-gnueabihf-ar rc RANLIB= arm-linux-gnueabihf-ranlib 执行 make,成功后如图 98.1.5: 执行 make install,成功后如图 98.1.6: 查看文件夹_x264_install,发现生成的库文件已经在此目录下:98.2  编译 FFmpeg FFmpeg 下载地址:http://ffmpeg.org/download.html,已经把下载好的压缩包放在了文档同一目录下 下载后解压:tar -vxf ffmpeg-snapshot.tar.bz2 ,创建文件夹_ffmpeg_install 存放生成的文件: 进入解压后的 ffmpeg 文件夹,修改 Makefile,添加编译选项:CFLAGS += -fPIC, 配置编译选项,执行以下命令: ./configure --cross-prefix=arm-linux-gnueabihf- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --prefix=/home/ubuntu/work/ffmpeg/_ffmpeg_install --enable-shared --disable-static --enable-gpl --enable-nonfree --disable-ffplay --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-x86asm --disable-stripping --enable-libx264 --extra-cflags=-I/home/ubuntu/work/ffmpeg/_x264_install/include --extra-ldflags=-L/home/ubuntu/work/ffmpeg/_x264_install/lib --extra-libs=-ldl 参数说明: --cross-prefix=arm-linux-gnueabihf-:配置为自己的交叉编译工具 --cc=arm-linux-gnueabihf-gcc:配置为自己的交叉编译工具 --arch=arm --prefix=/home/ubuntu/work/ffmpeg/_ffmpeg_install: --extra-cflags=-I/home/ubuntu/work/ffmpeg/_x264_install/include :改为 --extra-ldflags=-L/home/ubuntu/work/ffmpeg/_x264_install/lib : 配置成功后如图 98.2.6: 执行 make 开始编译,完成后如图 98.2.7: 执行 make install,成功后生成的文件在我们创建好的_ffmpeg_install 目录下:98.3  移植到 ARM  开发板 将_x264_install 下的库文件拷贝到开发板的/lib/目录下, cp *x264* /lib/; 将_ffmpeg_install/lib 下的 so 库文件全部拷贝到开发板的/lib/目录下,如有警告可忽略; 将_ffmpeg_install/bin/目录下的 ffmpeg 拷贝到开发板的/bin/目录下:98.4  测试 插上 USB 免驱摄像头,设备节点为/dev/video2,在开发板终端执行以下命令: ffmpeg -f video4linux2 -s 320x240 -i /dev/video2 /mnt/topeet.avi 会出现如下所示: 开发板的/mnt/目录下会出现 topeet.avi 文件, 将此文件拷贝到 windows 上,用视频播放设备打开: 能看到录像说明移植成功。

最新回复(0)