瑞芯微 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目录即可

./configure --prefix=$PWD/rk1126 --cc=arm-linux-gnueabihf-gcc --cxx=arm-linux-gnueabihf-g++ \
    --extra-cflags=-fPIC -I/home/QMCY/zlib-1.2.12/rk1126/include \
    --extra-ldflags=-L/home/QMCY/zlib-1.2.12/rk1126/lib   \
    --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不一样的地方 改了下也可以了 

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

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QMCY_jason

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值