android直播流渲染,Android手机直播之处理技术分析

前一篇我为大家介绍了Android手机直播的采集技术,这一篇继续为大家介绍直播流程中对视频和音频的处理技术。图玩智能科技为企业提供直播平台的二次开发服务以及各类app的开发,欢迎随时咨询www.toivan.com

视频处理

美颜现在几乎是一个手机直播软件的标配,经过美颜后主播颜值更高,对粉丝也就更有吸引力,也有一些安卓直播应用可以对主播进行人脸识别,然后添加好玩的动画特效,有些时候我们也需要对视频添加水印。

其实对视频进行美颜和添加特效都是通过OpenGL进行处理的。Android中有GLSurfaceView,这个类似于SurfaceView,不过可以利用Renderer对其进行渲染。通过OpenGL可以生成纹理,通过纹理的Id可以生成SurfaceTexture,而SurfaceTexture可以交给Camera,最后通过纹理就将摄像头预览画面和OpenGL建立了联系,从而可以通过OpenGL进行一系列的操作。

美颜的整个过程无非是根据Camera预览的纹理通过OpenGL中FBO技术生成一个新的纹理,然后在Renderer中的onDrawFrame()使用新的纹理进行绘制。添加水印也就是先将一张图片转换为纹理,然后利用OpenGL进行绘制。添加动态挂件特效则比较复杂,先要根据当前的预览图片进行算法分析识别人脸部相应部位,然后在各个相应部位上绘制相应的图像,整个过程的实现有一定的难度。

音频处理

在一些情况下,主播需要添加一些额外的声音以增加直播气氛,比如:鼓掌声等等。一种处理方式是让附加的声音直接播放出来,这样麦克风会采集到然后一起录制,但是这样的处理在主播戴上耳机或者需要对声音进行回声消除处理的情况下就不能起到作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一: 使用javacv来实现,最终也是用过ffmpeg来进行编码和推,javacv实现到可以直接接收摄像头的帧数据 需要自己实现的代码只是打开摄像头,写一个SurfaceView进行预览,然后实现PreviewCallback将摄像头每一帧的数据交给javacv即可 javacv地址:https://github.com/bytedeco/javacv demo地址:https://github.com/beautifulSoup/RtmpRecoder/tree/master 二: 使用Android自带的编码工具,可实现硬编码,这里有一个国内大神开源的封装很完善的的库yasea,第一种方法需要实现的Camera采集部分也一起封装好了,进行一些简单配置就可以实现编码推,并且yasea目前已经直接支持摄像头的热切换,和各种滤镜效果 yasea地址(内置demo):https://github.com/begeekmyfriend/yasea 服务器 媒体服务器我用的是srs,项目地址:https://github.com/ossrs/srs 关于srs的编译、配置、部署、在官方wiki中已经写的很详细了,并且srs同样是国内开发人员开源的项目,有全中文的文档,看起来很方便 这里有最基本的简单编译部署过程 Android直播实现(二)srs媒体服务器部署 播放器 android端的播放使用vitamio,还是国内的开源播放器,是不是感觉国内的前辈们越来越屌了^~^! vitamio支持几乎所有常见的的视频格式和媒体协议 vitamio地址(内置demo):https://github.com/yixia/VitamioBundle 这里使用的是yaesa库,先介绍一下直播实现的程:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值