• 瑞芯微 RK1126 平台编译zlib gpac 使用GPAC将H264 H265保存为MP4文件 录像


    使用GPAC的原因 是 因为项目有录像的需求 ,将摄像头编码出来的在内存中的H264或者H265数据流存为MP4文件

    之前海思平台用的是MP4V2 但是 MP4V2在RK1126平台编译的过程中出错了  没搞定 

    而且MP4V2 默认是不支持H265的 ,虽说网上有支持H265版本的但是 由于没有编译成功就放弃了

    之后又尝试用FFMPEG 来解决这个问题,但是没有尝试成功

    我们的项目录像只需要视频 不需要音频

    网上搜的过程中 看到了GPAC 今天试了下 可以 了 支持H264 H265 录像都没有问题 

    下载到电脑上之后用vlc播放都没有问题

     

    下面记录下过程

    首先 编译zlib

    zlib官网下载zlib

    zlib Home Site

    tar -zxvf 压缩包

    之后 export CC=arm-linux-gnueabihf-gcc

    新建一个编译脚本build.sh

    ./configure --prefix=$PWD/rk1126

    make  make install 之后 在rk1126目录下生成了对应的include 和lib库

     刚忘记说了 之所以编译zlib 是因为 刚刚编译gpac的需要这个  如下图提示

    下载gpac

    解压之后 新建一个编译脚本内容如下:修改成对应自己的zib目录即可

    1. ./configure --prefix=$PWD/rk1126 --cc=arm-linux-gnueabihf-gcc --cxx=arm-linux-gnueabihf-g++ \
    2. --extra-cflags=-fPIC -I/home/QMCY/zlib-1.2.12/rk1126/include \
    3. --extra-ldflags=-L/home/QMCY/zlib-1.2.12/rk1126/lib \
    4. --use-zlib=local

    执行脚本之后 

    编译提示错误

    网上搜了下 没有找到相关的错误 看名字感觉和GUI有关系 我们不需要GUI 所以 打算禁用掉这个特性 在configure文件里面搜x11 果然搜到了

    编译脚本加上这几个选项 

    修改之后的脚本如下:

     

     重新make 没有再提示错误

    make install 提示错误:

     

     网上搜了下说是 编译的gcc和strip不是一个架构的 搜索下config.mak 注释掉行 重新make install

     

     没有再提示错误

    对应的目录也生成了相应的文件 如上图

    我使用的是静态库 需要将libz.a和 libgpac_static.a复制到工程目录

    将头文件也复制过去

     工程目录如下

     用到了很多第三方的库

    之后 用的是 网上搜到的 这个版本的 接口 

     可能楼主之前用的是老版本的 gpac 

    编译的时候有好几个错误 会报下面的两个函数找不到

    gf_media_avc_read_sps

    gf_media_hevc_read_vps

    后来看了下 头文件 新版版的gpac 接口名字换了 改过来就可以 

    之后 调用相应的接口就可以了 一个循环中 不断写数据

     

    调试的过程中还遇到了  H264可以正常保存 但是 保存 H265报错 如下图

     后来对比了下 H264 和H265不一样的地方 改了下也可以了 

    时间戳 时常 格式都没问题 如下图

     

     

  • 相关阅读:
    Android开发之Gradle文件
    一致性hash算法
    分享篇:初识Canvas
    通过SIMULINK实现飞轮储能系统,对风力发电场的功率波动进行补偿,改善故障时的电压跌落并可以抑制母线电流谐波
    【无标题】
    (附源码)HTML+JavaScript+Canvas编写2D小游戏
    JUC并发编程——线程池学习:基础概念及三大方法、七大参数、四大拒绝策略(基于狂神说的学习笔记)
    SAGA GIS使用教程
    使用python进行页面开发——Django模型层
    用于一型糖尿病血糖调节的无模型iPID控制器
  • 原文地址:https://blog.csdn.net/baoecit/article/details/126317284