一、直播平台搭建
直播间从2015年直播元年开始,到现在依然火热不衰,直播在2015年还是相对神秘,但是如今更多的人会想要去了解、熟悉它,就要去解开这层面纱,今天小编就教你如何从零开始搭建自己的直播系统。
二、直播间功能
我们先从市面上主流的直播间功能说起,先看看直播平台最基础要具备什么样的功能。
1. 视频直播功能:这是最基础的功能,主播端将视频数据推送出去,观众端进行接收观看,这就需要RTMP推流功能的支持才能实现,并且这一步也会决定画面的清晰度和流畅程度。
2. 聊天功能:观众可以在互动区进行文字聊天,和主播对话,想说就说。
3. 礼物打赏功能:观众可以对喜爱的女主播进行礼物打赏,游艇、跑车、甚至城堡走起来等等。
4. 支付/提现功能:用户为喜爱的直播进行礼物打赏或者守护,主播收到礼物或接受守护后,可将收到的平台虚拟币兑换成现金提取出。
5. 视频回放功能:直播时同时录屏,随时随地,想看回放就看回放,粉丝再也不会错过喜爱的主播直播的精彩内容。
6. 分享功能:将主播频道或主页分享到微信、微博或者别的平台。
功能是半成品,怎么使用才赋予平台完整性
三、技术模块架构
那么由功能出发,来看看我们如何搭建一个基础的直播平台呢。
视频直播功能其实就是从推流到拉流的过程,基本构成也是由以下几部分构成:
其实这些也是有一些云服务商会提供一整套服务的,比如七牛,声网,腾讯云,金山云等推流服务商。这里就不多做阐述,具体价格和服务需要咨询他们,本文只说技术相关。
采集部分,iOS是比较简单的,因为机型相对固定以及采集方向相对固定,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC只支持手机主播,目前大部分的美女直播平台都是这样的,游戏直播平台则略有不同。
处理部分,其实针对视频帧的预处理,现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要用到GPU编程,需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。难点不在于美颜效果,而在于GPU占用和美颜效果之间找平衡。GPU虽然性能好,但是也是有功耗的,GPU占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧,可能原因是过热会导致CPU降低主频。这是全局美颜,还需要针对脸部的调整,比如最普遍的大眼瘦脸,还有瘦下巴,调整额头高度,鼻翼宽度等,拍摄起来不亚于一场外科手术了。这个就需要配合人脸追踪算法来进行调整,先得识别人脸五官部位,再正对特定部位进行不同方法的图形学渲染,基于这些技术,贴纸道具什么也都不是问题。所以基础美颜难度不大,用上了人脸追踪的美颜就价格高点,因为毕竟人脸追踪现在成本还是比较高的。自己如果做基础美颜难度低,成本也不高,但是一旦要做美型,成本高,周期长,也可以考虑采购第三方的SDK,比如我们拓幻TiFancy~
编码,可以采用硬编码或者软编码720p以上,软编会导致CPU过热。能耗过高,之后自然会卡顿,编码要在分辨率,帧率参数设计上找到最佳平衡点,让能耗和效果之间互相协调。视频-编码格式:H.265、H.264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等。现在比较常用的视频编码是H.264。音频-编码格式:G.711μ、AAC、Opus等,封装有MP3、OGG、AAC等,比较常用的是AAC编码格式。视频经过编码压缩大大提高了视频的存储和传输效率,当然,经过压缩后的视频在播放时必须进行解码。
传输,将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输。这个就肯定要采购云平台的CDN服务了,这个钱不花是不现实的。当然CDN只提供了带宽和服务器间传输,发送和接收端的网络连接抖动缓冲还是要自己做的。如果平台需要提高高质量的直播,这些是需要考虑的,如果前期没这个能力,也不是必备的功能啦,可以后期再做。涉及技术或协议:
传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP LiveStreaming)等
控制信令:SIP和SDP、SNMP等
转码、解码,也肯定要兼容软/硬解码,目前手机普遍支持硬解了,这些功能其实如果采购第三方云平台的推流SDK服务,都是一站式搞定的,至于采购哪家的,肯定是见仁见智的事情,毕竟价格和性能都是需要综合考虑的,比如腾讯云、声网、七牛云、金山云等。
整体过程可以这么理解:
平台搭建,当快则快
打破你对技术的种种限制
颠覆你小心翼翼藏着掖着的预算
我们要最快的平台,要有心意的设计
要低廉的成本,要有花样的功能
怎么才能做到,SDK来帮您
四、特色功能
OK,说完基本构成,我们再说一下特色功能:
比如评论聊天、连麦互动、收费房间、密码房间、礼物打赏等特色功能,也是为直播平台提供更多可能和更多想象空间。
评论聊天可以采用IM方式进行实现,IM提供商也比较多,可以采用环信、网易云等,也可以自己进行实现,因为这个功能不是属于即时音视频通信,没有很复杂。
连麦互动就是属于即时音视频通信了,这个其实自己实现就有点本末倒置,过于浪费时间,并且就算用TCP协议实现了基础功能,稳定性和流畅度也没有保障。
收费、密码房间就属于平台搭建时进行实现的功能,这个对于普通前端工程师而言不是很大的挑战。
礼物打赏就涉及到支付渠道的对接,和渲染功能实现,比如收到费用后,要在屏幕渲染一些特定的特效,比如游艇走起来,火箭biubiubiu~
最后,我们来算一下人力和预算,团队至少有10个技术人员,10个产品运营团队,3个月左右能够全部搭建完毕,并上线推广,成本在100w左右,并且带宽支出也是一笔不小的开销。
所以不要盲目开始搭建,其实开发顺序可以考虑:第三方一站式搭建 > 集成各项功能SDK > 从零开始开发
第三方平台搭建我这里就不多推荐了,毕竟广告太多也不会,百度一搜也有很多,当然,我们拓幻科技也可以做啦~
本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/328571.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除