前言
2015 ~ 1016是直播大火的年代,最近公司也是在着手直播这块,作为Android开发,自然也要懂得一些知识,经过一段时间的调研,学习,作了一下自我总结,写了一个【Android音视频开发】
系列,此文便是开篇了!
PS:关于这块的文章着实太少,点开10个链接,有7、8个链接的内容是一样的,各种转来转去,也是耗费了很大的功夫才了解到音视频的一点皮毛。而且很多文章都是12年、13年的,拿到现在可能根本就不适用,我通过实例验证,做下此总结。最近一直在看这一块的东西,今天抽空,趁着记忆的知识还比较新鲜记下来,好记性不如烂笔头,也希望能帮助到其他的人。
直播
从技术层面上来,直播大致分为:音视频采集、美颜/滤镜/特效处理、编码、封包、推流、分发、解码/渲染/播放。
对应到具体的Android层面,便会有如下几个重要环节:
- 视频实时采集:Camera预览/MediaRecorder绑定LocalSocket
- 音频实时采集:MediaRecorder/AudioRecord/OpenSL ES
- 特效处理:视频磨皮美颜,音频降噪去回声等算法
- 编解码:H264&AAC,MediaCodec(API >= 16)硬解,ffmpeg等三方库软解
- 流媒体传输:rtmp rtsp hls等
- 渲染播放:MediaPlayer,ijkplayer等三方库