直播系统开发、视频直播平台开发技术要点

[复制链接]

4

主题

1

回帖

17

积分

游客

积分
17
jiala 发表于 2017-10-19 17:00:20 | 显示全部楼层 |阅读模式
在直播浪潮这么火热的当下,越来越多人想在直播这一块大展拳脚一番,于是,越来越多的人来了解视频直播系统如何开发,视频直播系统开发需要用到哪些知识和技术,有哪些难点问题需要解决的呢?所以我现在就来给大家简单介绍一下在开发视频直播系统、直播平台开发过程中需要遇到哪些问题和需要用到哪些技术:


开发实时直播时需要了解哪些知识:摄像头采集;
1、音视频编解码;
2、流媒体协议;
3、音视频流推送到流媒体服务器;
4、流媒体网络分发;
5、用户播放器;
6、音视频同步;
7、网络延迟自适应;
8、需要录制,多种视频文件的格式和封装;
9、语言:C、C++、html、php、mysql......
10、开发环境:嵌入式,Linux,Windows,Web......


视频播放解决方案:
1、CDN加速;
2、自己架服务器;
3、用别人的云服务。




用CDN加速,可以尽量减少延迟。目前业内水准来看,视频延迟都在3-6秒之间。也就是在视频直播时,你看到的是几秒以前的画面。


自己架服务器,如果你部署的数据中心不够多,那么遇上跨网、跨省的传输,还是得用CDN加速。那么为了尽可能降低延迟,你就需要在全国各省市都部署数据中心,来解决跨网、跨省的传输。这种解决方案,相较CDN,非常昂贵。


用云服务的话,就是别人把服务器给你架好了,你只要傻瓜式的用就行了。为防止广告嫌疑,有关实时直播云,现在有很多服务商提供这一块,具体情况请自行了解哦。
当然,不管用哪种方式,请综合权衡利弊,找到适合自已的方案就是最好的方案。


开发视频直播的流程有哪些
1、采集;
2、前期处理;
3、编码;
4、传输;
5、解码;
6、渲染。


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


前期处理:现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。算法设计好了还要优化,无论你打算用CPU还是GPU优化,算法优化本身也需要专业知识支持。GPU虽然性能好,但是也是有功耗的。GPU占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧,iPhone6尤其明显。因为iPhone6的CPU和前置摄像头很近,在算法开发、算法优化、效果平衡上需要大量的开发调试工作。而这一切都是需要经验支撑。


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


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


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


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




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




上技术要点的小结,确实能说明开发一个能用于生产环境的实时视频直播平台确非易事,跟IM里传统的实时音视频一样,这样的技术都是音视频编解码+网络传输技术的综合应用体,没有一定的技术积累,确实有很多坎需要迈过去,所以如果你是自己开发的话真的是并非易事,毕竟在直播开发上每一个技术都是非常的难,想要做好一个技术都并不容易,所以最好还是找一家像直播开发行业上比较美丽播(www.meilibo.net)这样的公司,专业开发直播平台、直播系统的公司,不仅前期投入少,开发周期短,更是能节省宝贵的时间,让你最快速的拥有属于你自己的直播系统平台。可以移步官网咨询。

你喜欢看