直播平台开发的框架有两种,一个是直播的框架一个是系统的框架,两个框架有自己的功能覆盖和实现功能,我们来细说一下两者分别承担的责任。
一、直播框架
直播平台开发都会选择用CDN作为网络分发的中转站,在已有的CDN上再建立起一个服务器,当用户请求发送后,服务器会直接采集音视频通过编码后用RTMP协议推到CDN,接收到用户的请求后,服务器发出指令,将音视频调出传递到用户的播放端,进行播放。
CDN在直播平台开发中承担着重要的责任,不论选择哪个CDN,都需要保证能正常的使用直播平台的各项功能,保证在功能之外,视频流的传递稳定。
二、系统框架
系统框架承担着音视频采集、预处理、编解码、推拉流、播放的任务。
1.音视频采集,通过采集插件直接获取直播的画面和音频数据,视频格式一般采用RGB或YUV等格式,音视频采集则常为PCM格式。
2.预处理,音视频采集完成后会进行简单的预处理,预处理包括对视频画面添加美颜效果,添加动态贴纸等功能,在与处理时会造成对GPU的占用,所以在优化方面也非常重要,减少播放时用户手机内容的占用率,减少功耗。
3.音视频的编解码,编码的处理是为了减少预处理完成后音视频的体积,部分手机系统无法快速读取这么大的数据信息,读取时间过长,用户等待的时间就会越长。在对音视频进行编码处理后,能减少视频的占用空间,在保证分辨率、帧数的情况下增加上传的速度。
解码的快慢除了会受到用户网络环境的影响外,还会受到物理距离的影响,用户离服务器的距离越远,等待传输的时间就越长,这就是为什么要用到CDN的原因,CDN节点能拉近与用户的物理距离,距离节点越近的用户能越快的接收到视频信息。
4.音视频的推拉流,推流是将压缩处理好的数据上传到服务器,拉流是将用户的服务器发送播放请求,获取数据后播放,推拉流过程中常用的流媒体协议为RTMP协议。
三、直播平台开发的注意事项
除了需要了解这些基本知识外,对于源码的选择也很重要,推荐各位选择能进行二次开发的源码,这样后期更新平台功能时能做到更好的调整,不同的源码价格也不一样,可以进行多家比较后在做决定。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任