简单高效易用Windows/Linux/ARM/Android/iOS平台实现RTMP推送组件EasyRTMP-Android MediaCodec硬编码流程介绍

Posted TSINGSEE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单高效易用Windows/Linux/ARM/Android/iOS平台实现RTMP推送组件EasyRTMP-Android MediaCodec硬编码流程介绍相关的知识,希望对你有一定的参考价值。

音视频流媒体硬解码是指不使用CPU进行编码,使用显卡GPU,专用的DSP、FPGA、ASIC芯片等硬件进行编码。编码框架Video ToolBox和AudioToolbox。

EasyRTMP是结合了多种音视频缓存及网络技术的一个rtmp直播推流端,包括:圆形缓冲区(circular buffer)、智能丢帧、自动重连、rtmp协议等等多种技术,能够非常有效地适应各种平台(Windows、Linux、ARM、androidios),各种网络环境(有线、wifi、4G),以及各种情况下的直播恢复(服务器重启、网络重启、硬件设备重启)。

技术图片

EasyRTMP-Android MediaCodec硬编码流程

解决问题

EasyRTMP-Android的硬编码的流程如下:
1、初始化编码器

技术图片

2、配置编码器参数

技术图片

3、开始编码

技术图片

4、获取编码器的输入缓存inputBuffers 和输出缓存outputBuffers

技术图片

5、将要编解码的数据拷贝到empty buffer,然后放入input缓冲区队列

技术图片

6、子线程中不停的编码,并清空输入缓存区

技术图片

7、停止编码并释放编码资源占用

技术图片

以上是关于简单高效易用Windows/Linux/ARM/Android/iOS平台实现RTMP推送组件EasyRTMP-Android MediaCodec硬编码流程介绍的主要内容,如果未能解决你的问题,请参考以下文章

简单高效易用的全平台(Windows/Linux/ARM/Android/iOS)web实现RTMP推送组件EasyRTMP-Android BUS传递消息过程介绍

高效易用功能强大的 api 管理平台(内附彩蛋)

Easy3D:一个轻量级易用高效的C++库,用于处理和渲染3D数据

快速高效的C#FTP文件传输库FluentFTP

一个高效易用的分布式机器学习框架

魔众网盘系统 v1.0.0 简单易用的网盘系统