mp4v2源码编译并移植到海思平台
一,步骤
1.从网站下载源码
https://launchpad.net/ubuntu/artful/+source/mp4v2
参考“嵌入式Linux下MP4视频录制库MP4V2移植和简介 - 嵌入式天地 - ****博客
http://blog.****.net/wavemcu/article/details/40660309”
2.放到海思平台编译程序所用的虚拟机中,
使用tar -jxvf xxxx.tar.bz2解压,生成mp4v2-2.0.0文件夹。
3.在/usr/local下新建安装目标目录mp4v2
这个目录名自定义的,/usr/local路径也可以自己选择放别处,一般bin文件都默认在这个位置。并且授权。
4.然后进入到mp4v2源码目录下,执行命令
CC=arm-hisiv100nptl-linux-gcc
CXX=arm-hisiv100nptl-linux-g++
./configure --host=arm-hisiv100nptl-linux
--prefix=/usr/local/mp4v2
一直check并且配置,如果没有fail或error说明执行成功。
解析CC=arm-hisiv100nptl-linux-gcc
CXX=arm-hisiv100nptl-linux-g++
./configure --host=arm-hisiv100nptl-linux
--prefix=/usr/local/mp4v2
备用:(CC=arm-hisiv100nptl-linux-gcc
CXX=arm-hisiv100nptl-linux-g++ ./configure --host=arm-hisiv100nptl-linux --prefix=/usr/local/mp4v2 --disable-option-checking --disable-debug --disable-optimize --disable-fvisibility --disable-gch --disable-largefile --disable-util --disable-dependency-tracking
--disable-libtool-lock)
①.选择交叉编译器,找到交叉编译链目录。因为mp4v2源码是基于window的intel架构,所以内部程序格式需要对应到linux端的arm架构,需指定交叉编译器。之前虚拟机的交叉编译链已经安装好了,现在只要把mp4v2源码的配置文件configure指定到先前安装的交叉编译链环境就可以。使用echo
$PATH或cat /etc/profile可以查看交叉编译链的环境变量对应的交叉编译器安装的目录。(添加环境链的目的是方便全局操作,不用每次编译都调用目录)
②.这个指令
5.完成后,会在\mp4v2-2.0.0目录下生成GNUmakefile文件,授权该文件:
chmod 777 /opt/mp4v2-2.0.0 -R
修改GNUmakefile文件中CFLAGS项,为
CFLAGS = -s -O3 -fPIC -march=armv7-a -mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=vfpv3-d16 -mapcs-frame
6.然后在在\mp4v2-2.0.0目录下执行:
make clean;make;make install
等一会执行完成。
7.查看生成的库文件大小和格式,确保正确
二,后期实验
1.在一的步骤中,省去步骤5,发现也可以用于海思平台的录像。开始后,不会导致设备重启。
2.在一的步骤中,步骤4里,将执行命令(CC=arm-hisiv100nptl-linux-gcc
CXX=arm-hisiv100nptl-linux-g++ ./configure --host=arm-hisiv100nptl-linux --prefix=/usr/local/mp4v2 --disable-option-checking --disable-debug --disable-optimize --disable-fvisibility --disable-gch --disable-largefile --disable-util --disable-dependency-tracking
--disable-libtool-lock)
中的--disable-optimize换成--enable-optimize,生成的库用在海思平台的录像上,开始后,设备会重启。
需交流的话,可发邮箱:[email protected]