浅谈开发手机直播系统的技术要点

发布来源:云豹科技
发布人:云豹科技
2018-07-13 15:29:44

现在很多的互联网公司,甚至个人开发者,都想开发自己的手机直播系统,本文会帮你理清,开发手机直播系统,你需要注意的一些技术要点。

开发手机直播系统需要哪些技术?

很多前端开发人员会以为:“熟悉HTML5、1个人大约二三十个工作日内就可以开发出来了”。面对这样的想法,只有一句话:太天真了

实际上,你需要了解:

摄像头采集;

音视频编解码;

流媒体协议;

音视频流推送到流媒体服务器;

流媒体网络分发;

用户播放器;

音视频同步;

网络延迟自适应;

需要录制,多种视频文件的格式和封装;

语言:C、C++、html、php、mysql......

开发环境:嵌入式,Linux,Windows,Web......

下面介绍一下,手机直播系统的究竟需要哪些环节,应该如何处理?

开发实时视频直播的流程是什么?

手机直播系统,可以分为:

采集;

前期处理;

编码;

传输;

解码;

渲染。

以上这几个环节,下面具体说明:

1、采集:iOS是比较简单的,Android则要做些机型适配工作。PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC只支持手机主播,目前几个新进的手机直播系统都是这样的。

2、前期处理:现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要懂图像处理算法的人。算法设计好了还要优化,无论你打算用CPU还是GPU优化,算法优化本身也需要专业技术支持在算法开发、算法优化、效果平衡上需要大量的开发调试工作。而这一切都是需要经验支撑。

3、编码:如果你要上720p,肯定要采用硬编码。软编码720p完全没希望,硬件编码不灵活。兼容性也有问题。如何适应纷繁复杂的网络和纷繁复杂的上下行设备?安卓和芯片的坑,开发过的人都知道。那有人问,要求不高,上软编码低分辨率360p行不行?就算上低分辨率,软编码还是会让CPU发烫,CPU过热烫到摄像头,长期发烫不仅直接反应是费电。既然是手机直播,插着电源和充电器实在说不过去吧。还有,CPU发烫会降频,怎么办?这还是只说性能方面。和前处理只影响图像质量和功耗不同,视频编解码技术还关联成本计算和网络对抗。考虑性能、功耗、成本、网络这四个之后你编码的码率、帧率、分辨率。软硬件开发该如何选择?

4、传输:自己做不现实,交给第三方服务商吧。

5、解码:如果你用硬解码,一定要做容错处理,一定要做适配。突然一个crash导致手机重启不好吧。安卓的硬解码,不说了。如果你加了网络目前手机的硬解码还不一定支撑用软解码,功耗发热的问题又来了。

6、渲染:为什么手机明明解码出好多帧数据。就是渲染不出来。为什么画面就是不同步。

以上是媒体模块,还有信令控制,登录、鉴权、权限管理、状态管理等等,各种应用服务,消息推送,聊天,礼物系统,支付系统,运营支持系统,统计系统等。后台还有数据库,缓存,分布式文件存储,消息队列,运维系统等。

技术要点的小结,确实能说明开发一个能用于生产环境的手机直播系统确非易事,跟IM里传统的实时音视频一样,这样的技术都是音视频编解码+网络传输技术的综合应用体,没有一定的技术积累,确实有很多坎需要迈过去。

声明:
以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任