1、x.264
在/home/fyp/sda3/x264文件夹下
./configure --prefix=/usr/local/arm-x264 --enable-shared --enable-static --host=arm-hisiv200-linux --disable-asm
修改config.mak
Sudo gedit config.mak
主要将:
CC=gcc 改为 CC=arm-hisiv200-linux-gcc
LD=gcc -o 改为 LD=arm-hisiv200-linux-gcc -o
RANLIB=ranlib 改为 RANLIB=arm-hisiv200-linux-ranlib
STRIP=strip 改为 STRIP=arm-hisiv200-linux-strip
make
make install
2.ffmpeg建议流程
检测你的opencv是否已经包含ffmpeg。这个很简单,用ldd命令查看可执行程序用了哪些动态库就知道了。如果没有检测到与ffmpeg相关的库,那说明opencv没配置完全,下面是详细配置过程。
a. 到下面链接下载 ffmpeg-3.0.tar.gz
http://ffmpeg.org/download.html
b. #tar-zxvf ffmpeg-3.0.tar.gz
chmod -R 777 ffmpeg-3.0
mkdir ffmpeg_static
cd ffmpeg_3.0
设置configure
./configure --prefix=/home/fyp/sda3/ffmpeg-hisiv --enable-static --enable-cross-compile --arch=arm --target-os=linux --cc=arm-hisiv200-linux-gcc --ranlib=arm-hisiv200-linux-ranlib --enable-libx264--enable-gpl --enable-pthreads --disable-stripping --ar=arm-hisiv200-linux-ar --ld=arm-hisiv200-linux-gcc --strip=arm-hisiv200-strip --extra-cflags=-I/usr/local/arm-x264/include --extra-ldflags=-L/usr/local/arm-x264/lib
make
make install
再编译opencv,可是无法读取视频流,当时编译x264时有错误prefix前没有加--
而且,没有将交叉编译好的ffmpeg加入pkg-config
用cmake-gui编译时下面查看:
=======================
FFMPEG: NO
codec: NO
format: NO
util: NO
swscale: NO
gentoo-style: NO
这样读取视频不会成功
sudo gedit/etc/bash.bashrc
在打开的文档最后加入:
export LD_LIBRARY_PATH=/home/fyp/sda3/ffmpeg-hisiv/lib
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/fyp/sda3/ffmpeg-hisiv/lib/pkgconfig
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/home/fyp/sda3/ffmpeg-hisiv/lib
保存退出,重启电脑(用source/etc/bash.bashrc命令也可)使其生效,可用命令查看当前pkg-config:pkg-config --list-all
有刚安装好的一些东西
3.交叉编译opencv
用cmake-gui生成的makefile,找不到ffmpeg,参考官方的文档的交叉编译步骤:
http://docs.opencv.org/doc/tutorials/introduction/crosscompilation/arm_crosscompile_with_cmake.html#arm-linux-cross-compile
它用cmake调用opencv-2.4.6.1下的CMakeLists.txt和opencv-2.4.9/platforms/linux/arm-gnueabi.toolchain.cmake来生成makefile,但是arm-gnueabi.toolchain.cmake要修改,打开它,把它所有东西删掉,写入以下几句:
set( CMAKE_SYSTEM_NAME Linux )
set( CMAKE_SYSTEM_PROCESSOR arm )
set( CMAKE_C_COMPILER arm-hisiv200-linux-gcc )
set( CMAKE_CXX_COMPILER arm-hisiv200-linux-g++ )
保存,退出,重命名为arm-hisiv200-linux.toolchain.cmake
然后在opencv-2.4.9下建立一个build目录,cd进入该目录,执行一下命令:
cmake -DCMAKE_TOOLCHAIN_FILE=/home/fyp/sda3/opencv-2.4.9/platforms/linux/arm-hisiv200-linux.toolchain.cmake
等待一会,会发现控制台里输出了很多信息,有什么头文件找不到,但都无关要紧,只需查看一下信息:
-- VideoI/O:
-- DC1394 1.x: NO
-- DC1394 2.x: NO
-- FFMPEG: YES
-- codec: YES (ver55.18.102)
-- format: YES (ver55.12.100)
-- util: YES(ver 52.38.100)
-- swscale: YES(ver 2.3.100)
-- gentoo-style: YES
如果出现了,那么成功就在眼前。用cmake-gui打开CMakeCache.txt,把一些无关要紧的都去掉,不然会出错,
Make
Make install