很高兴回答您的问题:我们先从市面上主流的直播间功能说起,先看看直播平台最基础要具备什么样的功能。
一、 基础功能
1 视频直播功能:这是最基础的功能,主播端将视频数据推送出去,观众端进行接收观看,这就需要RTMP推流功能的支持才能实现,并且这一步也会决定画面的清晰度和流畅程度。
2 聊天功能:观众可以在互动区进行文字聊天,和主播对话,想说就说。
3 礼物打赏功能:观众可以对喜爱的女主播进行礼物打赏,游艇、跑车、甚至城堡走起来等等。
4 支付/提现功能:用户为喜爱的直播进行礼物打赏或者守护,主播收到礼物或接受守护后,可将收到的平台虚拟币兑换成现金提取出。
5 视频回放功能:直播时同时录屏,随时随地,想看回放就看回放,粉丝再也不会错过喜爱的主播直播的精彩内容。
6 分享功能:将主播频道或主页分享到微信、微博或者别的平台。
那么由功能出发,来看看我们如何搭建一个基础的直播平台呢。
二、 直播间构成
视频直播功能其实就是从推流到拉流的过程,基本构成也是由以下几部分构成:
采集部分
iOS是比较简单的,因为机型相对固定以及采集方向相对固定,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC只支持手机主播,目前大部分的美女直播平台都是这样的,游戏直播平台则略有不同。
处理部分
其实针对视频帧的预处理,现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要用到GPU编程,需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。难点不在于美颜效果,而在于GPU占用和美颜效果之间找平衡。GPU虽然性能好,但是也是有功耗的,GPU占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧,可能原因是过热会导致CPU降低主频。这是全局美颜,还需要针对脸部的调整,比如最普遍的大眼瘦脸,还有瘦下巴,调整额头高度,鼻翼宽度等,拍摄起来不亚于一场外科手术了。这个就需要配合人脸追踪算法来进行调整,先得识别人脸五官部位,再正对特定部位进行不同方法的图形学渲染,基于这些技术,贴纸道具什么也都不是问题。所以基础美颜难度不大,用上了人脸追踪的美颜就价格高点,因为毕竟人脸追踪现在成本还是比较高的。自己如果做基础美颜难度低,成本也不高,但是一旦要做美型,成本高,周期长,也可以考虑第三方的SDK
3 编码
可以采用硬编码或者软编码720p以上,软编会导致CPU过热。能耗过高,之后自然会卡顿,编码要在分辨率,帧率参数设计上找到最佳平衡点,让能耗和效果之间互相协调。视频-编码格式:H265、H264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等。现在比较常用的视频编码是H264。音频-编码格式:G711μ、AAC、Opus等,封装有MP3、OGG、AAC等,比较常用的是AAC编码格式。视频经过编码压缩大大提高了视频的存储和传输效率,当然,经过压缩后的视频在播放时必须进行解码。
4传输,将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输。
传输协议:RTP与RTCP、RTSP、RTMP、>
控制信令:SIP和SDP、SNMP等
转码、解码,也肯定要兼容软/硬解码,目前手机普遍支持硬解
整体过程可以这么理解:
OK,说完基本构成,我们再说一下特色功能:
五、 特色功能
比如评论聊天、连麦互动、收费房间、密码房间、礼物打赏等特色功能,也是为直播平台提供更多可能和更多想象空间。
评论聊天可以采用IM方式进行实现,IM提供商也比较多,也可以自己进行实现,因为这个功能不是属于即时音视频通信,没有很复杂。
连麦互动就是属于即时音视频通信了,这个其实自己实现就有点本末倒置,过于浪费时间,并且就算用TCP协议实现了基础功能,稳定性和流畅度也没有保障。
收费、密码房间就属于平台搭建时进行实现的功能,这个对于普通前端工程师而言不是很大的挑战。
礼物打赏就涉及到支付渠道的对接,和渲染功能实现,比如收到费用后,要在屏幕渲染一些特定的特效,比如游艇走起来,火箭biubiubiu~
以上就是我的回答,希望得到您的赞同
你说的应该是视频直播,而视频服务器(流媒体服务器)的特点是长时间高并发,因此CPU至少为至强E5-2665八核多线程,内存起码到16G。
网站上五千到万人同时在线建议至少也要用50M以上的独享带宽如果你服务器的用户只针对国内,但没法具体到哪个省和市,那建议选择锐讯网络BGP服务器。
直播软件开发需要经过采集、编码、推流、分配、拉流、解码、观看等过程,直播的实现与传统的视频直播过程平稳一致。因此,所使用的开发框架、开发语言、业务服务等方面与传统的Live平台开发基本一致。ThinkHP框架可用于开发框架。对于直播软件开发语言,根据不同的应用终端,手机的Android端是用Java语言开发的,而iOS端是在OC中开发的,OC是苹果系统的开发语言。对于服务器端,可以根据要求选择Java或PHP语言。建设和部署所需服务器的直播平台还包括消息服务器、业务服务器、视频服务器、即时聊天服务器和流媒体服务器。
每一个直播平台,直播软件源码都会像无数针线一样,穿插在各个功能里,紧紧地凑在一起,一块构成一个完整的直播平台。
1、手机即可直播——开播方式便捷,有手机随时随地看直播。
2、高级美颜特效——加强美颜、瘦脸等功能,主播开播更美丽。
3、百万高并发——根据您的需要定制百万高并发解决方案。
4、高清流畅无卡顿——全网加速,秒看高清直播无卡顿。
您需要安装Flash播放器,流媒体服务器软件基于流协议(RTP / RTSP,MMS,RTMP,等)的流媒体服务器软件的主要功能的视频文件传输到客户端的在线观看,视频采集,压缩,软件接收实时视频流,实时流媒体协议的客户端。
典型的流媒体服务器的Microsoft Windows媒体服务(WMS),它使用MMS协议接收和发送视频使用Windows Media Player(WMP)的前端播放器,RealNetworks公司的Helix服务器,RTP / RTSP协议,接收和发送视频播放器的前端,Adobe公司的Flash媒体服务器使用RTMP(RTMPT / RTMPE / RTMPS)协议接收和发送视频,Real播放器,Flash播放器,播放器的前端。这是值得注意的,Adobe公司的Flash播放器(点击官方数据的普及的闪存播放器安装容量已达到99%以上),越来越多的网络视频开始到使用Flash播放器的播放器前端,所以越来越多的企业开始采用Flash播放器兼容的流媒体服务器,并开始消除其他类型的流媒体服务器。 Flash播放器,除了Adobe Flash媒体服务器,流媒体服务器有一个用Java编写的名为Red5的开源软件,在中国制造的有一个叫Ultrant的Flash Media Server的软件,说是很不错的,最新版本的到版本187,可以下载一个免费的社区版。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)