您好到访“众安网络” 为创客企业提供互联网创新与技术解决方案服务商

更多>>
您的位置:首页 > app开发资讯 > 直播app开发知识直播app开发知识

如何快速搭建完整的视频直播系统?

 
发布时间:2018-12-191111
  朋友打算打造一个全新模式的视频直播平台,主要功能有些类似现在很多的美女直播平台。假设前期同时在线观看人数为2W人,清晰度不低于720P,拥有美颜、混音等附加功能,还有最重要的不能卡顿。如果以上假设成立,需要做哪些准备工作,技术门槛有多高,资金支出要多少?
 
刚刚接手 全民TV 的研发团队不久,短期内还在疯狂填坑,在我看来,视频直播项目的研发算是涉及绝大多数主流互联网技术,整体做下来修为可以提升不少,大概把眼前的问题想了一下:

·         PC、Android、iOS三大平台(一般互联网创业项目标配)·         每个平台要做2种端:面向客户的直播端,和面向主播的推流端(标配x2)·         视频编码涉及非常多的技术参数和细节(领域特殊技术)·         完整的礼物系统、支付系统、运营系统、任务系统(不亚于一般页游项目)·         即时聊天IM服务(弹幕,既要保证实时性,又要抗住高并发)·         视频推流拉流链路依赖第三方CDN(超越一般创业项目的运维成本)·         因为涉及钱的问题,经常与各种黑暗势力斗争(色情、广告、刷小号、刷充值、告侵权、DDoS等等) 大神 回答了很多视频直播相关的技术难点,这算是视频直播中最核心的技术之一了,但对于创业团队来说,还有更多技术攻坚之外的技术压力:

·         即使聊天IM技术难度也很大啊,一个大主播的直播间有十几万人同时在线,同时一个人发消息要十几万人都收到啊,还需要大主播经常带节奏,这十几万人一起发消息要十几万人一起收啊,想象一下这个瞬间的高峰有多么恐怖!·         但是视频直播的链路很长,CDN经常坑爹啊,主播推流客户端还各种乱配,运营商各种劫持,出了问题都不知道甩锅给谁啊!·         支付系统一定要仔细搞啊,每个环节都要仔细想清楚各种异常情况啊,所有消费都要有流水记录,警惕苹果黑卡啊·         研发团队不好招人啊,我每周筛选6、70份简历,安排面试1、20人,也才能敲定3、4个offer,以这样的强度估计还要再坚持几个月啊·         各种合作方的接入,各种赛事活动的接入,市场、运营、产品、客服各方都给你提需求啊,一个人要掰成好几个人用·         即便如此,作为研发,看到不顺心的代码还是会想着重构的,要在高速公路上冒着烟极速飞奔在汽车上,一边开车一边换轮胎!·        每个 团队快速扩张,都需要彼此磨合,管理能力还必须上去。总之过去的一个月我是感觉自己无论在技术能力还是管理能力上的进步好像都超过了此前5年在大公司积累的总和,做视频直播项目真的非常虐心,也真的非常磨练人,现在整个视频直播领域狼烟四起,颇有当年百团大战的意味,作为研发,我想要是能与现在的团队一起奋斗成长,并在这个领域争得一块立足之地,也算是一项非常了不起的成就了。如果你仅仅为了一个构想的新模式而尝试涉足我觉得现在这个时间点已经没有必要了,各方面资源的投入成本都会非常非常高,做个demo玩玩还行,深入做下去真是山高路远坑坑洼洼。

视频直播,可以分为 采集前处理,编码,传输,解码,渲染 这几个环节,因此下面分别说下:采集,iOS是比较简单的,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC端只支持手机端,目前几个新进的直播平台都是这样的。首先前处理的,直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要用到GPU编程,需要懂图像处理算法的人,没有好的开源实现,是需要自己参考论文去研究的。这个难点不在于美颜效果,而在于GPU占用和美颜效果之间找平衡。GPU虽然性能好,但是也是有功耗的,GPU占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧,可能原因是过热会导致CPU降低主频。编码,肯定要采用硬编码,软编码720p完全没希望,勉强能编码也会导致CPU过热烫到摄像头。硬编码兼容性又是一个大坑,android上要有人去填。编码要在分辨率,帧率,码率,GOP等参数设计上找到最佳平衡点。传输,自己做不现实,交给CDN服务商吧,也就是贵了点,相信有志于做直播平台改变世界的你不差钱。假设2W PCU大约每月带宽费用100万左右,因为清晰流畅的720p要1.5mbps左右。CDN只提供了带宽和服务器间传输,发送和接收端的网络连接抖动缓冲还是要自己写的。如果不想要卡顿,那就必然要加大缓冲,这样会导致延迟高,而延迟高又影响互动性,所以要做权衡。解码,也需要硬解码,目前手机普遍支持硬解了,只是android上还是有兼容性大坑要填。渲染,这个难点不在于绘制,而在于音画同步,目前几个直播做得都不好。此外音频还有几个坑要填,比如降噪,音频编码器的选择,各种蓝牙耳机,各种播放模式的适配等,如果你想做主播和观众连线聊天,那么还有个回声消除问题。就以上媒体模块和信令控制,登录、鉴权、权限管理、状态管理等等,然而各种应用服务,消息推送,聊天,礼物系统,支付系统,运营支持系统,统计系统等。与后台还有数据库,缓存,分布式文件存储,消息队列,运维系统等。
这些显然都不是一个程序员能解决的事,如果真的有这样的高手,请联系我,无论你现在薪水多少,我都愿意出两倍的工资。首先第一期至少要融资2000万RMB,还要组建至少10人的技术团队,10人的产品运营团队,和争取3个月产品上线,半年达到5W在线(2w 根本不够)然后融资1个亿,或许还有希望一搏。也许有人对带宽问题存疑,请参考欢聚时代15年四季度财报,带宽成本为人民币1.611亿元,折合每月5000+万,当然不能用这个数去推算在线人数,因为YY采购量很大所以带宽平均成本低,而且YY不只是高清直播,还有很大比例的500kbps左右码率的直播,还有相当一部分带宽是靠P2P解决的。总之带宽非常贵。祝你朋友好运。


技术点大家都回答的很详细了,我就我觉得视频直播系统中的一些难点再和大家分享下。

两年前我在做媒体云的时候,当时都是点播的业务。做到后面,我觉得点播业务其实并不像想象的那么难,你想你有一个稳定的存储,找一家靠谱的 CDN,然后找一个大概能用的播放器做出来,这有什么难的呢?你可以找云服务公司,也可以找外包,或者你自己招一个人都能做。但是现在发现到了移动,尤其是 3月份移动直播火起来之后,这个门槛突然变高了。因为内容产生方变成了移动端。从几个点来分析下为什么:
1 、首先内容产生方就是推流端,现在主流的 IOS、安卓,IOS比较简单,就是那个几个机型,基本大家适配都很好。但是安卓的碎片化是非常严重的,大量的精力都需要做对安卓的适配,而且软编耗电量普遍非常高,手机用了一会就会发烫,都担心会不会爆炸。用户体验就是在不同的网络情况下,上传的视频有可能会卡,有可能不连贯,报各种各样的错误,这个是作为一个开发者他自己不可能去适配的。说白了从用户那边提的需求就是推流端不能卡,画质要好,不能太烫,这是我们接触到的客户真正提的问题,是我们从有点偏技术的角度抽取出来的,它背后对应的是哪些事情。
 
2 、然后是分发网络。分发网络其实躲在一个很后面的地方,用户其实看不见的。真正对分发网络提需求用户也提不出来,所以基本这部分需求都会提给播放端,提的需求也是不能卡,不能花屏,首屏一定要快,一点就要看到,还不能把延时弄的太大。其实这些很多都是和源站分发网络有关系的,只是用户看不到这个需求会跟后面的播放器接在一起。像首屏时间,就是用户点开就要看,以前那些开源架构就是 rtmp server,它是做不到一点开就能看的,现在一些开源的国内资源写得也比较好了,可以看到。我们是自己开发的,所以也花了一些工作,能保存之前的关键帧的信息,用户一点开就能看,这个就是很细节的东西了。如果这个做不好的话,会黑屏、绿屏,或者是半天看不着图像。
 
3、在播放器这边也是我们在接业务的时候,遇到用户投诉最多的,因为所有的问题都是在观看的时候体现的,所有的雷都得是播放器的同学去扛。这个需求也是不能卡,不能延迟太高。如果延迟高了,要追回来,追的时候声音不能变,最好是追的策略也能自己控制,这是用户真正提出来的需求。

要满足这些需求,我们需要做好多分辨率的适配,保证好流畅性,保证好我们追赶的策略不会出现任何异常。所以这三个端很多是相互耦合的,像推流和分发在一起,要保障好用户的流畅性和画质,分发和播放器在一起要保证好低延时和播放的流畅。所有的这些需求里共同的一点就是不能卡顿。

这个是我们的系统架构图。最下层是依托金山的云服务,因为我们已经有了很好的平台,提供了我们计算资源,提供了存储,提供了很多自建的节点,当然这还远远不够多的,我们还是要融合 CDN,然后提供了数据分析的能力。我们依托它做了橙色的这一层,就是我们自己有核心,流媒体直播,然后围绕这个核心我们在做回看点播、在线转码、鉴权、内容审核。

1.回看点播:因为这不是一个短视频录播的项目,而是一个直播,直播就决定它的并发不会很高,内容不会很多,热点比较少。如果你不回看的话,用户很难维持它的生活,很难维护用户黏度,所以用户一定会要求做回看的。
 
2.在线转码:推流端其实做了很多把更好的画质想尽办法传上来的工作,投了很多人力来做。传上来之后,观看也在移动端,它不一定看得了。如果他看不了怎么办?我们就需要在线转,在线转码其实承担的更多更重要的事情。
3.鉴权:用户都不想被盗链,尤其是推流的时候,如果我不鉴权,谁都可以来推。所以这是必须要有的。
 
4.内容审核:现在我们没有办法帮他做到自动审核,技术还不够。现在能做到的是截图,按用户指定的时间定期截图,这样的话,用户就可以请一些外包来看是不是有敏感内容,是不是要下线,这个对于现在这种三四秒延迟的直播来说非常重要。你做不到的话,没准政策因素你就做不下去了。
 
5.数据分析:一部分是依托金山已有的,一部分是我们自己做的,因为我们延迟性,时效性要求更高。客户会经常大半夜突然提出一个主播看起来特别卡,问你为什么,要是像以前那种方式,一个小时生成报表,然后出体验图,告诉他为什么卡了,客户可没有这个耐心。我们现在基本能做到5秒间隔就出之前的各种问题定位,这个定位包括从源站收集的数据画的曲线。还有从端上,如果端上用户允许的话,推流和拉流端我们都会有上报数据,几个曲线一拟合,我们就知道问题出在哪里。
  
 

0592-5073827

售前咨询(09:00-18:00)

Copyright@2014-2017 众安(厦门)网络科技有限公司-风源ACNPHP技术品牌开发服务商  版权所有 闽ICP备14008980号-9 网站地图