微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > OpenCV ffmpeg移植到ARM平台

OpenCV ffmpeg移植到ARM平台

时间:11-09 来源:互联网 点击:

ASFLAGS=-O2 -f elf
VFW=no
GTK=no
EXE=
VIS=no
HAVE_GETOPT_LONG=1
DEVNULL=/dev/null
CONFIGURE_ARGS= --enable-shared --prefix=/root/arm-none-linux-gnueabi/armnone-
linux-gnueabi/
SONAME=libx264.so.49
default: $(SONAME)
修改Makefile,将66~68行的ar和ranlib改为arm下的:
libx264.a: .depend $(OBJS) $(OBJASM)
arm-linux-ar rc libx264.a $(OBJS) $(OBJASM)
arm-linux-ranlib libx264.a
(3).编译安装
# make
# make install
这里可以在交叉编译链目录/root/arm-none-linux-gnueabi/arm-none-linux-gnueabi/的
lib下生成libx264.so
3 交叉编译xvid
到 http://downloads.xvid.org/downloads/xvidcore-1.1.3.tar.gz 下载xvid
下载xvid解压并进入build/generic
配置
# ./configure --prefix=/root/arm-none-linux-gnueabi/arm-none-linux-gnueabi/ --disableassembly
[解释]--disable-assembly :因为xvid没有针对ARM的汇编优化,所以编译时必须关掉汇

修改Makefile引用的platform.inc文件,将CC=gcc改为CC=arm-linux-gcc
# make
# make install
成功后进入example文件夹
测试,输入
arm-linux-gcc -o xvid_encraw xvid_encraw.c -lc -lm -I../src/ -L../build/generic/=build

-lxvidcore
即可生成xvid_encraw
这里可以在交叉编译链目录/root/arm-none-linux-gnueabi/arm-none-linux-gnueabi/的
include,lib下生成相应的头文件和库文件
4 交叉编译ffmpeg
到http://download.chinaunix.net/download.php?id=5532&ResourceID=2990在这个网址
上下载ffmpeg-0.4.9-p20051120.tar.bz2,然后解压。
修改configure文件,要修改的如下
由于cc、ar、ranlib、strip都是交叉编译环境中的执行文件,可以这样配置
prefix="/root/arm-none-linux-gnueabi/arm-none-linux-gnueabi/"
cross_prefix="root/arm-none-linux-gnueabi/bin/arm-linux-"
cpu="arm"
配置
# ./configure --cpu=arm --cc=arm-linux-gcc --enable-shared --disable-ffserver --enablexvid
--enable-x264 --enable-gpl --enable-pthreads --disable-strip
# make
# make install
这里可以在交叉编译链目录/root/arm-none-linux-gnueabi/arm-none-linux-gnueabi/的
include,lib下生成相应的头文件和库文件
至此,OpenCV所依赖的库都交叉编译完成,并在交叉编译链中的include,bin,share,lib下
有相应的文件
三 交叉编译OpenCV
下载OpenCV-1.0.0源码 http://www.opencv.org.cn/download/opencv-1.0.0.tar.gz
解压进入目录配置
# ./configure --host=arm-none-linux-gnueabi --without-gtk --without-carbon --withoutquicktime
--without-1394libs --with-ffmpeg --without-python --without-swig --enable-static
--enable-shared --disable-apps CXX=arm-none-linux-gnueabi-g++ CPPFLAGS=-
I/root/arm-none-linux-gnueabi/arm-none-linux-gnueabi/include LDFLAGS=-L/root/arm-

none-linux-gnueabi/arm-none-linux-gnueabi/lib --with-v4l --prefix=/root/opencv-arm
--libdir=/root/opencv-arm/lib --includedir=/root/opencv-arm/include
说明:
--host=arm-none-linux-gnueabi :指出交叉编译arm平台
--without-gtk:忽略gtk+2.0 windows
--without-carbon: 不使用Mac OS上的X库
--without-quicktime
--without-1394libs
--without-ffmpeg
--without-python
--without-swig
--enable-static :生成静态库
--enable-shared :生成动态库
CXX=arm-none-linux-gnueabi-g++ : 指定编译工具
CPPFLAGS=-I/root/arm-none-linux-gnueabi/arm-none-linux-gnueabi/include :
OpenCV会用到一些dev的包,如png.h,jpeglib.h,大部分头文件在/usr/include下
--prefix=/root/opencv-arm :指定安装目录
-libdir=/root/opencv-arm/lib: 指定库文件安装位置
--includedir=/root/opencv-arm/include:指定包含文件安装位置
如果配置正确,会有下面信息
General configuration ================================================
Compiler: arm-none-linux-gnueabi-g++
CXXFLAGS: -Wall -fno-rtti -pipe -O3 -fomit-frame-pointer
Install path: /root/opencv-arm
HighGUI configuration ================================================
Windowing system --------------
Use Carbon / Mac OS X: no
Use gtk+ 2.x: no
Use gthread: no
Image I/O --------------------

Use libjpeg: yes

Use zlib: yes
Use libpng: yes
Use libtiff: no
Use libjasper: no
Use libIlmImf: no
Video I/O ---------------------
Use QuickTime / Mac OS X: no
Use xine: no
Use ffmpeg: yes
Use dc1394 & raw1394: no
Use v4l: yes
Use v4l2: yes
Wrappers for other languages =========================================
SWIG
Python no
Additional build settings ============================================
Build demo apps no
Now run make ...
===================================================================
===
# make
# make install
arm上运行OpenCV所需库:
1 将/root/opencv-arm/lib下生成的库文件
libcvaux.so.1.0.0
libcv.so.1.0.0
libcxcore.so.1.0.0
libhighgui.so.1.0.0
libml.so.1.0.0
拷出来全部重命名
*.so.1
2 加上之前的库文件,将/root/arm-none-linux-gnueabi/arm-none-linux-gnueabi/lib下的
libjpeg,xvid,x264,ffmpeg库都拷出来放去板子的/usr/lib或者/lib下,也可以到板子上一
个文件夹,然后#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/YOUR/lib/DIR
3 OpenCV所需库总表:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top