移动端直播音视频功能的开发--简介


今年的直播非常火,因此也够机会大展身手,开发直播sdk,简单介绍一下我的整个技术方向点:


一、整体的流程可以分为简单的三大块:

1、直播推流端

2、直播服务端

3、直播接收端


二、主要介绍下直播推流端的技术方向


1、音视频采集:需要结合平台接口实现,采集后的裸数据进行统一格式(主要针对采集图像参数的合理设置)

android一般采用NV21格式

ios采用NV12或者RGB格式

当然如果做滤镜实现美颜效果,最终可以通过GPU转为YUV420P或者RGB直接输出


2、音视频编码:音频采用aac编码,视频采用h264编码;移动端性能问题尤为重要,因此,硬编码为首选,也是最重要的一环

编码尤为重要的是对解码信息的生成,不管音频还是视频,都需要将其发送给对端,否则会出现解码失败的情况

另一个是时间戳的问题,大部分卡顿、延时、图像或者声音播放不正常的情况都是和时间戳是否正确有关


3、音视频传输:目前主流的直播多采用rtmp协议,在可靠传输条件下延时可控;可以参考librtmp或者ffmpeg的实现,当然他们是阻塞的;

rtmp这块需要好好阅读文档,加强理解,关键点在于如何封包以及对于出现网络问题的处理


总结:上面讲的都是简介,不会很深入,因为要深入讲解估计得分很多章节才能讲清楚,但是最重要的一点架构一定要考虑足够周到。

(我已经重构了两次,浪费了很多宝贵时间,如果不重构,很多问题只能卡在哪里会浪费更多时间)


欢迎加入

WebRtc开发社区 323038420

你可能感兴趣的:(视频编解码)