gpac的库用起来比较麻烦,从mp4box的代码里整理了一个简化的接口,可以方便h265和aac合成mp4

https://github.com/Tvirus/gpac-interface

使用时按下面的顺序调用即可。close后可以调用creat再次生成文件

void *pCMP4Handle;pCMP4Handle = MP4_Init();MP4_CreatFile(pCMP4Handle, strFileName);
MP4_InitVideo265(pCMP4Handle, TimeScale);
MP4_InitAudioAAC(pCMP4Handle, AudioType, SampleRate, Channel, TimeScale);
MP4_Write265Sample(pCMP4Handle, pData, Size, TimeStamp);
MP4_WriteAACSample(pCMP4Handle, pData, Size, TimeStamp);
MP4_CloseFile(pCMP4Handle);MP4_Exit(pCMP4Handle);

注意:

传入的每一个视频帧前面都要有4个字节的0x00000001。一般第一包是VPS SPS PPS I帧,然后下一包是P帧,如果传入的数据包中I帧或P帧后面还有帧,需要自己改一下接口里的分割函数

输入的音频数据带adts头

初始化完成后输入的第一个帧的时间戳会对应到0时刻

TimeScale 的值要看视频编码器的具体配置,如果配置是每秒25帧,同时编码器从第n帧到第n+25帧的时间戳增加了600,则TimeScale要配置成600

需要gpac的库才能编译 https://gpac.wp.imt.fr/mp4box/

写视频数据、写音频数据以及音视频之间都不能并发进行,否则会花屏

接口中有改动原入参数据的地方,即把入参中的265帧开始的4个字节0x00000001修改为了帧长度,写完文件后虽然又恢复了修改,但如果有其他流程同时用这一份视频数据会有问题

调试时使用的是2019年1月左右的gpac库,适配新版的库时已知问题是需要初始化GF_ISOSample结构体里的新增成员nb_pack

.

海思 Hi3516 使用 gpac 库把 H265 和 AAC 封装成 MP4相关推荐

  1. 关于 海思Hi3516横竖屏Qt使用QGraphicsScene代理窗口强制旋转导致弹窗旋转与阴影不显示的 解决方案

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/128592671 红胖子(红模仿)的博文大全:开发技术集 ...

  2. 海思Hi3516使用srs-librtmp推送视频流至阿里直播平台

    srs-librtmp可以直接推送H264格式的rtmp数据流,所以可以将海思HI3516通过VENC编码后的H264裸流数据直接通过srs-librtmp发送到阿里直播平台. 这里需要注意的是srs ...

  3. 我的内核学习笔记16:海思Hi3516平台PWM使用记录

    本文介绍海思平台 Hi3516 的 PWM 使用,包括手册介绍及用户空间控制. 一.PWM 概览 芯片一共提供2路独立的 PWM,分别以 PWM0 和 PWM1 称呼.PWM 时钟有3种选择:3MHz ...

  4. 我的内核学习笔记15:海思Hi3516平台GPIO使用记录

    本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制. 一.GPIO概览 Hi3516 芯片支持 12 组GPIO(General Purpose Input/Output) ...

  5. 海思HI3516 MIPI屏幕调试笔记

    1:参考资料-<HIMPP媒体处理软件开发参考>-<屏幕对接指南>-<屏幕时钟时序计算器>-<京东方屏幕驱动>: 2:采用sample中的vdec例程进 ...

  6. 海思Hi3516新增sensor imx214 笔记

    海思平台------------------------------------------------- 本文档简述了如何在海思平台(以原版SDK为例)更换一块新屏幕和新sensor,并完成采集显示 ...

  7. 海思HI3516移植使用AP6181 BCM43362

    备注 平台:Hi3516dv300 WiFi:AP6181 (AP6XXX应该都差不多,我猜的):SDIO2.0接口(时钟设置在50M左右,其他 SDIO3.0的设置在150M左右,电压设置在1.8V ...

  8. 海思HI3516板子初体验

    文章目录 一.网络连接 二.传输文件 三.检测sample 一.网络连接 开发板上电,进行usb连接. 连接好后,你可以在电脑上看到这个端口,类似于这个. 开发板网口和电脑网口进行连接 连接好后你的笔 ...

  9. gpio复用 海思_我的内核学习笔记15:海思Hi3516平台GPIO使用记录

    本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制. 一.GPIO概览 Hi3516 芯片支持 12 组GPIO(General Purpose Input/Output) ...

最新文章

  1. eureka的惊群效应
  2. html怎样添加日历控件,向日历控件中添加自定义内容
  3. VS2010编译选项查看MSDN
  4. VC++开发一个简易图片浏览器 - 含目录浏览功能
  5. 服务器操作系统百度文库,Linux操作系统配置服务器的方法及实现_百度文库(6页)-原创力文档...
  6. HTML与CSS基础之兄弟元素(六)
  7. 边缘计算如何实现海量IoT数据就地处理
  8. PyAutoIt 安装(Windows 版)
  9. 我的 HTTP/1.1 好慢啊!
  10. Windows下最快的磁盘空间分析软件——WizTree
  11. FCC ES6篇中的解构赋值
  12. echarts柱状图 饼图 折线图
  13. python第三方库re库实例之爬取古诗词网上诗歌
  14. html5开发制作,漂亮html5模板欣赏,H5网站建设
  15. 电脑上可以连接网线可以上网,但是WiFi没有了
  16. vmware 上网问题解决
  17. 勘误发布:《数字滤波器的MATLAB与FPGA实现——Xilinx/VHDL版》P320
  18. 1KB (Kilobyte 千字节)=1024B=8192b【大B代表Byte字节,小b代表bit位】
  19. 网工必须了解的华为华三设备基础命令行与WEB界面
  20. 【数据库SQL】约束

热门文章

  1. android手机 无电池开机,手机无法开机的6种解决方法
  2. 价格数字转换成大写汉字的一个类
  3. SDL版仙剑奇侠传读后感
  4. pe怎么安装kali linux,U盘+kali+pe三合一教程!装机,存储,渗透,persistence存储问题解决!...
  5. 怎么在html中加入特效文字,如何使用HTML5+css3实现粒子效果文字动画特效(附完整代码)...
  6. 音频线视频线和同轴电缆的关系(同轴线除了外面的屏蔽网还有中间的绝缘塑料体,而音频线一般只有外面的屏蔽网)
  7. 源码分享!!!world文档转换为JPG图片
  8. Polychain重仓的Findora公链,想带领DeFi脱虚向实
  9. wave和pyaudio读取wav语音文件并播放
  10. JetBrains Rider想创建新工程一直显示Syncing Project Templates...