直播系统、直播平台技术开发要点在哪?

2017-10-20 14:21:05 +08:00
 jiala
现如今,直播已经成为了人们生活中必不可少的产品了,不仅仅通过实时直播带来的娱乐和欢乐,还有更重要的是它带来的实时信息分享,由此直播也带来了非常大的商业价值和潜力。不仅是现在的秀场直播,现在慢慢兴起的教育、电商、金融等,都在一步步的跨入直播领域,可见直播的领域应该还存在更大的潜力等待我们去挖掘。

那么现在想要迈进直播这个“槛”的人也越来越多,却又正是因为这个“槛”而无从下手,很多人有好的想法或项目却被直播前的这个门槛给拦住了,那么,直播技术的开发到底需要哪些技术呢?需要了解哪些方面的只是呢?我就给大家来讲解一下:

首先开发实时直播时需要了解哪些知识:
摄像头采集;
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),团队拥有扎实的直播开发经验,直播产品具有自主知识产权,已成功为国内外客户搭建上线近百家直播平台。所以选择也要选择好的,美丽播会给你强大的技术支持,我相信美丽播会解决你在直播上的一切问题。
2734 次点击
所在节点    程序员
7 条回复
jiala
2017-10-20 14:23:22 +08:00
有问题的可以咨询
julyclyde
2017-10-20 14:31:20 +08:00
你这是提问还是广告?
baixiangcpp
2017-10-20 14:31:23 +08:00
到处复制粘贴别人的内容有意思吗
z742364692
2017-10-20 15:45:36 +08:00
so?
nine99
2017-10-20 16:03:30 +08:00
@jiala 你好,有联系方式吗
jiala
2017-10-20 16:24:51 +08:00
@nine99 擦亮眼睛
nine99
2017-10-20 16:46:30 +08:00
@jiala ok

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/399242

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX