Android Studio 3.0
Android NDK r12
- H.264/AAC 硬编 Api 18支持.
- H.264/AAC 软编 Api 16.
- 更多可选项配置(正在开发中).
- 水印(正在开发中).
- 硬编 使用MediaCodec编码.
- 软编 使用FBO读取纹理数据,由于使用FBO读取的数据是上下颠倒的,故而使用libyuv将图像旋转了180度,openh264编码.
- 硬编 使用MediaCodec编码.
- 软编 使用fdk-aac编码为aac数据.
使用方式:
onCreate中设置初始化
CameraSetting cameraSetting = new CameraSetting();
AudioSetting audioSetting = new AudioSetting();
StreamingSetting streamingSetting = new StreamingSetting();
streamingSetting.setRtmpUrl("rtmp://www.ossrs.net:1935/live/demo")
.setEncoderType(EncoderType.SOFT);
GLSurfaceView glSurfaceView = (GLSurfaceView) findViewById(R.id.gl_surface_view);
mMediaStreamingManager = new MediaStreamingManager(glSurfaceView);
mMediaStreamingManager.prepare(cameraSetting, streamingSetting, audioSetting);
mMediaStreamingManager.resume();
mMediaStreamingManager.pause();
mMediaStreamingManager.startStreaming();
mMediaStreamingManager.stopStreaming();
实现setSurfaceTextureCallback接口
mMediaStreamingManager.setSurfaceTextureCallback(this);
public int onDrawFrame(int textureId, int textureWidth, int textureHeight, float[] transformMatrix)
在onDrawFrame函数中实现滤镜处理,这里的textureId参数为GLES11Ext.GL_TEXTURE_EXTERNAL_OES
类型,textureWidth
为纹理的宽度,textureHeight
为纹理的高度,transformMatrix
为纹理的textureTransform
数组,返回值如果<=0或者是textureId代表不处理滤镜,否则需要返回一个GLES20.GL_TEXTURE_2D
类型的纹理id,示例中使用了MagicCamera作为滤镜处理库.
wlanjie, 联系方式:qq:153920981 微信:w153920981