海思3516A 运行mp4box工具,移植gpac 0.4.0

本文为原创文章,转载请标明出处

关于海思移植mp4box 网上没有找到参考资料,就自己摸索了一下,搞了一天终于成功了,经验分享给大家:
mp4box只是gpac里的一个应用程序,所以主要是移植gpac。

(一) 首先移植zlib
本文用的是zlib-1.2.11
https://download.csdn.net/download/nihaohanfang/10691716

tar xzvf zlib_1.2.11.tar.gz
cd zlib-1.2.11
export CC=arm-hisiv300-linux-gcc               //它的configure不支持用CC变量来指定交叉工具链
./configure --prefix=$PWD/_install -shared  //最后生成的库、头文件和man文件都在当前目录的_install目录下
make && make install

编译好的zlib库在当前目录下的_install文件夹下的lib目录里。

(二)开始编译gpac
本文用的gpac库是0.4.0,下载地址
https://download.csdn.net/download/nihaohanfang/10691700

  1. 减压gpa源码,进入到gpac目录:
tar xzvf gpac.tar.gz
cd gpac
sudo chmod +x configure 
./configure --prefix=$PWD/_install --cc=arm-hisiv300-linux-gcc  --extra-cflags=-I/work/gpac/extra_lib/include/zlib/  --extra-ldflags=-L/work/gpac/extra_lib/lib/gcc --disable-x11-shm
  1. 把zlib编译好的库放到/gpac/extr_lib/gcc目录下
    海思3516A 运行mp4box工具,移植gpac 0.4.0_第1张图片
  2. 对gpac里的一些文件做修改
    打开gpac下的Makefile,对63-65行做如下修改:
    在这里插入图片描述
    对81行做如下修改
    在这里插入图片描述
    打开config.mak, 对第10行的STRIP指定为arm-hisiv300-linux-strip
    在这里插入图片描述
    进入modles文件夹里,打开makefile,去掉58-61行,不要编译x11
    在这里插入图片描述
    进入application文件夹中,打开makefile,第3行和第5行的osmozilla去掉
    在这里插入图片描述
    进入application/mp4client,打开makefile42-44行做如下修改:
    海思3516A 运行mp4box工具,移植gpac 0.4.0_第2张图片
    进入application/mp4box,打开makefile,在第30行最后加上-lz
    在这里插入图片描述
    同样在application/mp42avi目录里makefile的第29行最后加入-lz;
    application/mp4client目录里makefile的第34行最后加入-lz
  3. make&&make install
  4. make install-lib;编译成功后在当下目录的_install里产生了需要的库,和工具。
  5. 海思3516A 运行mp4box工具,移植gpac 0.4.0_第3张图片
    海思3516A 运行mp4box工具,移植gpac 0.4.0_第4张图片
    海思3516A 运行mp4box工具,移植gpac 0.4.0_第5张图片
    (三) 在海思板上运行
    把zlib编译好的库也放到gpac产生的lib下,把库考到海思板子上设置环境变量,即可运行:
    海思3516A 运行mp4box工具,移植gpac 0.4.0_第6张图片
    测试h264转mp4:
    在这里插入图片描述
    在这里插入图片描述

修改后的源码下载链接:
https://download.csdn.net/download/nihaohanfang/10691859

刚测试下载修改过的源码由于删除掉了config.mak文件,所以make install的时候会报错,
原因是strip用的是本地的,解决的办法是打开config.mak 的第10行,修改为 STRIP=arm-hisiv300-linux-strip

你可能感兴趣的:(arm)