DyncRTMPLiveClient-Android的解析

本文详细介绍了DyncRTMPLiveClient在Android平台的使用,从界面初始化、LooperExecutor的实现,到不支持美颜功能的摄像头设备如何通过BeautifyEncoder进行设置,以及BeautifyCameView显示与videoMode数值的关联分析。
摘要由CSDN通过智能技术生成
源码地址:https://github.com/AnyRTC/DyncRTMPLiveClient-Android


Apk 大小4.5M


代码结构:
APP
├MainActivity
├PushActivity
└PullActivity


liblivertmp_v1.0.4.aar
├api
   ├DynLivePublisher
   └DynLivePlayer
├beautify
   ├camera 摄像头相关处理
   ├encoder
      ├gles OpenGL ES
      └video 视频编码
   ├filter
      ├advanced美颜、美白处理
      ├base
         ├gpuimage OpenGL ES图片处理
         └其他 基于GUIImageFilter.java的其他过滤器
      └helper 过滤器工厂和总览
   ├utils 工具类
   └widget 基于GLSurfaceView的一些界面
├core 包括推流AvStreamer .java、播放AvPlayer.java、网络传输AvHttpClient.java及其他
├event 主界面事件接口
└其他


├libfaac.so
├libfaad2.so
├liblivertmp-jni.so
└libopenh264.so



界面


 
可使用api功能。
 


推流代码实现细节:

1、 初始化:初始化DyncLivePublisher


 
2、 初始化的内容是AvStreamer的准备,
 
 

LooperExecutor的实现如下


 

3、 以不支持美颜摄像头设备为例,初始化了BeautifyEncoder


 

4、 关于BeautifyCameView显示的设置,对应于videoMode的数值


 
5、 VideoEncoderCore编码器的配置
 
6、 对编码器编码出的信息处理,由OnH264Data接口实现后续的操作。
 
 
7、 补充说明预览效果的呈现:由摄像头获取的图像由mediacodec处理,获取surface,再由opengl处理生成继承EglSurfaceBase的WindowSurface。
 


播放没什么好说,实例化了一个渲染器交给jni层处理了。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值