在视频直播过程中,用户看到的主播直播画面其实是单向直播,视频直播软件开发的服务器接收到主播传输上的画面后,分发到各请求端,属于单向内容输出。当出现用户请求与主播连麦时,性质就发生改变,信息流传输由单向传输变为双向传输,如果有用户正在观看直播,那他接受到的信息流包括主播和连麦用户两股信息流。
为保证观看用户能及时接收到语音信息,直播平台都会使用CDN分发直播内容。也就是说用户接收的信息流线路不一定是它在请求获取信息时的那条线路,而是由CDN节点根据服务器的负载情况,重新选择最优线路进行分发。对于互动直播面向众多用户群体的公共服务,必须能让处在不同地区的用户在同一时间收到相同的直播内容,保证画面流畅且视频传输延迟低。
如今的视频直播软件中,RTMP协议的使用较为广泛,绝大多数视频直播也是基于RTMP协议和CDN技术前提下实现连麦的,在主播和用户进行连麦时,会基于RTMP协议,分别将主播端和连麦用户端的流推到CDN,通过CDN将两路视频推送到播放端,播放端将两路视频流混合形成一个画面进行播放。
拓幻科技需要提醒大家,使用RTMP协议和CDN节点连麦时的问题
RTMP协议可以保证直播延迟控制在5s内,这对于观看的用户来说不影响观看体验,但对于连麦的用户来说,会感到明显的延迟,影响互动体验。
主播和用户进行连麦时,会听到明显的回声,目前这一问题比较常见且未得到解决。
如果实现连麦的话,耗费的流量会大大增加,本身视频直播软件在宽带、流量支出和CDN节点使用方面会使用很多流量,为实现连麦,两条信息流传输耗费的流量会更高。
如果已有庞大的用户基数,必须要适应高并发,那么采用RTMP与CDN技术下的解决方案,想必是最佳的,这样可以保证大多数用户端用户的观看体验;如果对高并发要求没那么高,反而对直播连麦要求较高或对直播延迟要求较低,则可采用私有UDP协议解决方案,这种方案适用于一对一连麦或语音聊天室。
原文地址:https://blog.51cto.com/14528075/2461966