很高兴回答您的问题:我们先从市面上主流的直播间功能说起,先看看直播平台最基础要具备什么样的功能。
一、基础功能
1.视频直播功能:这是最基础的功能,主播端将视频数据推送出去,观众端进行接收观看,这就需要RTMP推流功能的支持才能实现,并且这一步也会决定画面的清晰度和流畅程度。
2.聊天功能:观众可以在互动区进行文字聊天,和主播对话,想说就说。
3.礼物打赏功能:观众可以对喜爱的女主播进行礼物打赏,游艇、跑车、甚至城堡走起来等等。
360问答4.支付/提现功能:用户为喜爱的直播进行礼物打赏或者守护,主播收到礼三喜范细氢阶修深胜物或接受守护后,可将收到的平钢核台虚拟币兑换成现金专皮优题老案操四其育提取出。
5.视频回放功能:直播时同时录屏,随时随地,想看回放就看回放,粉丝再也不会错过喜爱的主播直播的精彩内容。
6.分享功能:将主播频道或主页分享到微信、微博或者别的平台。
那么由功能出发,来看看我们如何搭建一个基础的直播平念台呢。
二、直播间构成
视频直播功能其实就是从推流到拉流的过程,基本构成也是由以下几部分构成:
采集部分
iOS是比较简单的,因为机型相对固定以及采集方向相对固定,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC只支持手机主播,目前大部分的美女直播平台都是这样的,游戏直播平台则略有不同。
处理部分
其实针对视频帧的预处理防评,现在直播美颜已经是标配了,80%的主播没有美颜根本没亲医根了训丰法看。美颜算法需要用到GPU编程,需要懂图像开蒸袁沿误边无座夜歌处理算法的人,没有好的开源实现,要自己参考论文去研究。笔议混汉便流眼难点不在于美颜效果,而在于GPU占用和美颜效果之间找平衡。GPU虽然性能好,但是也是有功耗的,GPU占用太高会导致手机发烫,而手机端满进界州构夜烟张想例发烫会导致摄像头采集掉帧,可能原因是过热会导致CPU降低主频。这是毫重并纸负象深的洋除全局美颜,还需要针对脸部的调整,比如最普遍的大眼瘦脸,还有瘦下巴,调整额财断缩校头高度,鼻翼宽度等,拍摄起来不亚于一场外科手术了。这个就需要配合人脸追踪算法来装少气换县料球利进行调整,先得识别人脸五官部位,再正对特定部位进行不同方法的图形学渲染,基于这些技术,贴纸道具什么也都不是问题。所以基础美颜难度不大,用上了人脸追踪的美颜就价格高点,因为毕竟人脸追踪现在成本还是比较高的。自己如果做基础美颜难度低,成本也不高,但是一旦要做美型,成本高区希费甚,周期长,也可以考虑第三方的SDK
3.编码
可以采用硬编码或者软编码720p以上,软编会导致CPU过热。能耗过高,之后自然会卡顿,编码要在分辨率,帧率参数设计上找到最佳平衡慢果甚跳题万交固进入副点,让能耗和效果之间互相协调。视频-编码格式:H.265、H.264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等。现在比较土市本推然强常用的视频编码是H.264。音频-编码格式:G.711μ、AAC、Opus等,封装有MP3、OGG、AAC等,比较常用的是AAC编码格式。视频经过编码压缩大大提高了视频的存储和传输效率,当然,经过压缩后的视波早识民频在播放时必须进行解码。
4.传输,将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输。
传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTPLiveStreaming)等
控制信令:SIP和SDP、SNMP等
转码、解码,也肯定要兼容软/硬解码,目前手机普遍支持硬解
整体过程可以这么理解:
OK,说完基本构成,我们再说一下特色功能:
五、特色功能
比如评论聊天、连麦互动、收费房间、密码房间、礼物打赏等特色功能,也是为直播平台提供更多可能和更多想象空间。
评论聊天可以采用IM方式进行实现,IM提供商也比较多,也可以自己进行实现,因为这个功能不是属于即时音视频通信,没有很复杂。
连麦互动就是属于即时音视频通信了,这个其实自己实现就有点本末倒置,过于浪费时间,并且就算用TCP协议实现了基础功能,稳定性和流畅度也没有保障。
收费、密码房间就属于平台搭建时进行实现的功能,这个对于普通前端工程师而言不是很大的挑战。
礼物打赏就涉及到支付渠道的对接,和渲染功能实现,比如收到费用后,要在屏幕渲染一些特定的特效,比如游艇走起来,火箭biubiubiu~
以上就是我的回答,希望得到您的赞同
标签:直播间,搭建