lighttp支持PHP移植到imx6,FFmpeg移植-迅为IMX6ULL开发板

FFmpeg(Fast Forward Mpeg)是一种可以用来记录、转换数字音频、视频,并能将其转化为流的多媒体视频处理工具,拥有视频采集功能、视频格式转换、视频抓图等功能。本文介绍如何将ffmpeg移植到ARM平台。

开发板使用迅为i.MX6ULL终结者和USB免驱摄像头,交叉编译工具为arm-linux-gnueabihf,yocto Qt5文件系统。

1.编译x264获取x264源码,可以从网站http://www.videolan.org/developers/x264.htm下载,进入如图1.1界面,点击下载;或者用我们已经下载压缩包(与文档同一目录下的x264-master.tar.bz2);

2bffe54b17de6adcd1712fb28ec54731.png

将压缩包放到ubuntu并解压,tar -vxf x264-master.tar.bz2 ,创建文件夹_x264_install用来存放编译后生成的文件,mkdir _x264_install:

3b19fcd75011177f362e44a767a4555f.png

进入解压后的路径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:跳过汇编

b34a9e2442e519a24a699cd9ba9e65a1.png

修改配置文件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

bbde234ce4624189f0e5556672ec4c49.png

执行make,成功后如图

a9e46580e1144f984cdf5c9e7fc53ecf.png

执行make install,成功后如图

6af674be8c7495b5b15e6193e3832ba1.png

查看文件夹_x264_install,发现生成的库文件已经在此目录下:

0a28d47712857df5383812550f40ced4.png

2.编译FFmpeg

FFmpeg下载地址:http://ffmpeg.org/download.html,已经把下载好的压缩包放在了文档同一目录下。

7ceb0f5bbf670ca360837b541278585b.png

下载后解压:tar -vxf ffmpeg-snapshot.tar.bz2 ,创建文件夹_ffmpeg_install存放生成的文件:

2ce145fbdbec1b01c9ffab2e2431742e.png

进入解压后的ffmpeg文件夹,修改Makefile,添加编译选项:CFLAGS  +=  -fPIC,

90153d4ab1ebc1983ee4d9c5965ca48c.png

配置编译选项,执行以下命令:

./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:

d65b84bb9c4ae3621b0d9bdfe82c0f7d.png

--extra-cflags=-I/home/ubuntu/work/ffmpeg/_x264_install/include :改为

97aa7adae2e551c8e2052af5bd986e45.png

--extra-ldflags=-L/home/ubuntu/work/ffmpeg/_x264_install/lib :

配置成功后如图

35c152fbe8f32db0f409720bd4098e2e.png

执行make开始编译,完成后如图

b1fa4f48d164292f8ff1be5fd7d4259f.png

执行make install,成功后生成的文件在我们创建好的_ffmpeg_install目录下:

08f91fc673413600e1b49a296768c4f8.png

3.移植到ARM开发板

将_x264_install下的库文件拷贝到开发板的/lib/目录下, cp *x264* /lib/;

0d264b80e5d7254411b18b1324637c91.png

将_ffmpeg_install/lib下的so库文件全部拷贝到开发板的/lib/目录下,如有警告可忽略;

d48f84b775e56c9ad505fabe0f4f5eef.png

将_ffmpeg_install/bin/目录下的ffmpeg拷贝到开发板的/bin/目录下:

ea298c47dfd9bd45be1f83d7ec27dc85.png

4.测试

插上USB免驱摄像头,设备节点为/dev/video2,在开发板终端执行以下命令:

ffmpeg -f video4linux2 -s 320x240 -i /dev/video2 /mnt/topeet.avi

会出现如下所示:

aa30a648a4af272817695d2dd8ef82e6.png

开发板的/mnt/目录下会出现topeet.avi文件,

73469875d34e3db577f380a93fccad8f.png

将此文件拷贝到windows上,用视频播放设备打开:

daf7b5dbbfaac421a0f17608740b7c0e.png

能看到录像说明移植成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值