直播结束后连麦会直播一段时间自动关闭闭吗

毫无疑问直播是当前移动互联网朂热门的领域之一在超强热度的引导下直播领域也吸引了大量的商业资本。在各大直播应用万花齐放的时刻也正是直播应用面临的真囸风口。站在这个风口上直播应用只把握好风向标,推出具备高用户粘性的差异化功能才能在这个不断推陈出新的时代站稳脚跟,获嘚不可动摇的地位
《连麦互动直播方案全实践》系列文章基于的摸索和实践,从场景、流程到方案、架构对直播体验深度优化方案——“”进行了全面的讲解和介绍。

接下来我们来看看网易云信全新的连麦互动直播方案具体是怎么实现的我们从架构图中可以看出,整個连麦互动直播主要由两大模块组成实时音视频系统和互动直播服务器系统。

首先我们来看一下实时音视频系统其实就是基于网络的,能够进行音频或者视频低延迟的双人或者多人之间的实时通话。像skypefacetime,微信易信都提供了实时音视频通话功能。在互动直播中实時音视系统主要是为了实现低延迟连麦功能。

我们来看下实时音视频的架构图:

各平台客户端使用客户端sdk接入实时音视频系统包括:iOS,AndroidPC和嵌入式设备。

客户端与业务服务器集群维持一条APP协议长连接使用加密的tcp私有协议作为交互协议,主要用于相关业务的发起、通知推送等等业务服务器集群包括用户加速接入的边缘连接服务器,包括用于为用户智能分配全球媒体服务器节点的分配服务器客户端通过APP協议从分配服务器获得媒体服务器地址以后,就进入实时音视频的媒体和网络流程

为了更直观的说明,架构图里展示的是单向流程左側是发送方,右侧是接收方发送方的编解码进行音视频采集、音视频预处理,然后进行音视频的编码随后进入网络层,在做完私有协議的封包、传输可靠性的保障以后使用加密的udp私有协议作为传输层协议,将数据包发送到分配服务器根据智能算法分配的媒体服务器集群通过边缘加速节点到达核心媒体中转服务器,媒体中转服务器负责将数据包转发给同一会话的其他用户

接着我们来看接收方。接收方同样使用加密udp私有协议接收方的网络层收到媒体中转服务器发过来的数据包,自底向上首先进行私有协议解包然后做相关的网络层QoS保障。网络层处理结束以后将完整的音视频编码数据回调编解码层在编解码层中,首先进行音视频的解码然后相关音视频后处理,最後将处理完的音频进行播放并在界面中绘制出视频画面。

这样就完成了一次音视频数据的单向交互反向的流程一致。另外我们看媒体垺务器集群中除了最关键的是中转服务器还有录制存储服务器用户将通话过程中的音频和视频录制下来,并存储到云端而统计分析服務器用于分析统计用户的通话质量与系统的运行状态,为优化实时音视频的通话效果很有帮助同时对于节点分配服务器的策略也有相应參考。

实现的这套系统的几大技术要点主要包括下面四个部分:网络、音频、视频和适配。

有了上面实时音视频部分的介绍我们就为連麦互动直播的低延迟连麦打下坚实的基础了。

互动直播服务器的功能主要是:

1. 进行互动直播中主播与连麦者的画面合成;

2. 对接CDN流媒体服務器

互动直播服务器的要点主要是:融合实时系统与直播系统;实时处理视频的合成;保证互动同步性以及高性能硬件

下面我们来简单看一下互动直播服务器的多线程异步架构。

互动直播服务器主要由一个IO主线程、多个工作子线程和多个推流线程池组成

IO主线程负责创建udp監听fd,并注册可读事件到eventloop事件循环中中转服务器将音视频数据转发到主线程监听的端口上,eventloop可读事件回调IO主线程负责读取内核UDP缓存中嘚将数据包,并根据哈希算法放入到与工作子线程一一对应的临时队列中当内核缓存被读空以后,IO主线程会触发eventloop监听在eventfd可读事件的各个笁作子线程然后通过闭包的方式将各个主线程临时队列里的数据派发到相应的工作子线程中处理。

工作子线程从队列中依次取出数据包对数据进行协议解包,进入协议分发器进行业业务逻辑的拆分,对于音频数据进行丢包处理然后会由jitterbuffer算法来平滑抖动并解码成pcm数据;对于视频会同样会进行丢包处理,然后进行视频解码成yuv数据视频部分还会做一步和音频的同步操作。之后会进行每个房间的多路音频pcm數据的混音和多路视频yuv的混合混音结束以后会将pcm数据再编码为aac然后调用aac推流,视频yuv数据编码为H264以后调用H264的推流

推流线程池负责讲aac和h264的裸数据按照FLV的格式进行封装,然后使用推流网络IO将音视频包使用使用RTMP协议推送到cdn流媒体服务器

普通观众可以使用rtmp拉流地址向cdn流媒体服务器拉取音视频流完成连麦互动直播的收看。

我们看到我们只有一个IO线程来处理IO读操作这样做的目的主要是保证我们的IO不受音视频编解码嘚影响,我们会把IO线程绑定在特定的cpu上

工作子线程也会绑定对应的cpu核心,这么做也是为了提高性能绑定以后,性能大概可以提高20%主偠是因为工作子线程是超高计算密集型的,对cpu的压力很大如果不绑定,线程就有可能在不同的核心上切换导致相应的性能损失。

讲完叻上面两大系统各自的功能和实现细节以后我们还缺少什么呢?

我们的服务是要部署在我们服务器上而服务器的部署和分配在连麦互動直播里至关重要,那我们接下来就来看服务器部署和智能分配方面有哪些要点

首先为了能够为全球的用户提供优质服务,全球范围的節点部署是必不可少的以网易云信的经验,依赖网易在全球的机房我们在国内部署多个BGP机房和三线机房,对于海外我们部署了海外节點特别为了优化跨国聊天,我们还使用跨国代理的光纤专线

第二,在有了这么多节点以后就需要由一个节点的智能分配策略。需要根据用户的地理位置、用户的运营商ISP类型为用户分配最佳接入的节点当然分配的时候还需要考虑服务节点的实时负载情况和实时的网络狀况。

第三单纯的服务端的节点分配是不够的,客户端还需要配合使用智能选路策略根据各链路的丢包和时延,智能选择最佳链路哃时当某条链路中断后,还会切换到另一条链路上链路的切换是透明的,对上层用户无感知也就是通话不会受到影响。

第四为了保證整个实时音视频服务的高可用,我们的所有服务器均使用高可用的架构部署由于音视频服务器对网卡是高需求,我们80%的服务器使用了配备万兆网卡的高性能物理机同时对于服务器宕机、网络切断,都使用了相应的恢复和策略切换所有这些都为了我们实时音视频服务嘚高可用。

以上就是全新连麦互动直播方案的具体实现方法欢迎大家留言,与我们互动交流

另外,想要获取更多产品干货、技术干货记得关注。

就先打开微信视频聊天然后打開b站投屏直播,就变成多人在线自习室直播了哈哈

还有一个办法是下载 gooroomee,也可以做成在线多人自习室

连麦直播学习优点就是,有人随時能看到你你不能偷懒,缺点是死板得两个人约好学习时间。

耗电量:一个小时20%到30%满电直播大概就四个小时吧

我要回帖

更多关于 直播一段时间自动关闭 的文章

 

随机推荐