Skip to content

wx-chevalier/IM-RTC-Notes

Repository files navigation

实时通信与直播

直播和 RTC(Real Time Communication)技术一直是以两种完全不同的形态发展的。直播通常应用于广播电视、体育赛事直播、游戏直播、秀场直播等场合,而 RTC 视频通话最典型的场景就是视频会议和传统的视频通话。随着近些年直播引入更多的互动方式,直播和 RTC 技术的界限也越来越模糊。

从信息传输的角度,直播是单向的信息传输,而 RTC 是双向的信息传输,但这个并不构成本质意义上的区别,因为双向的 RTC 可以拆解成两个单向的信息传输流。带来本质差别的是对延迟的要求,不同的延迟对底层传输协议和分发网络有不一样的挑战。早期的互联网的底层基础设施较差(低带宽、高丢包率、高延迟),通过互联网公网来传输无法满足 RTC 的指标要求,使得传统 RTC 应用都采用专网或专线的方式来实现。而大规模的直播技术则利用成熟的 CDN 基础设施来实现直播的功能(牺牲一定的延迟),比如苹果推出的 HLS 协议,就是把视频流切成一段一段的分片,利用传统的文件 CDN 网络来实现分发。

移动设备和 4G 网络的普及让手机直播成为流行的一种方式,各 CDN 厂商为了抓住商机,也纷纷进入直播 CDN 的建设。为了进一步降低延迟,各 CDN 厂商普遍采用以 Adobe 公司的 RTMP 和 FLV 协议为主要传输协议,铺设了新一代的直播 CDN 分发基础设施。这套基础设施在秀场直播、游戏直播、体育赛事直播领域获得了巨大的成功。

当直播成为一种主流的应用形态后,各种各样纷繁复杂的变化随之而来。最显著的就是引入了主播与粉丝的互动。不管是文字聊天、礼物打赏、直播答题,无一例外的都是更加强调互动的实时性。主播能在第一时间回应粉丝的动作,让观众获得了参与感,极大的提升了用户黏性。更进一步,当观众可以请求与主播进行“现场连麦“时,更是直接以“面对面”的方式进行交流。现场连麦其实已经进入 RTC 的场合了,只不过在这个场景下,底层技术实现还是以两种不同的架构体系来完成的。

再来看纯 RTC 最典型的视频会议场景。视频会议的参与方都能与其他人以“完全实时”的方式进行语音、视频、共享桌面等方式进行沟通、交流与互动。对于近几年来兴起的云视频会议,则还可以把会议房间里的音视频流转推出来进行“直播”,供不在会议房间里的人观看。这个时候,整体的参与者就分成了两个部分,一部分是房间内的成员,他们之间是“完全实时”的,另一部分,就是房间外的普通观众。这就构成了一种新型的“场内”和“场外”模式,场内的人能相互感知,场内的人则无法直接感知场外的人,但所有的一举一动又可以被场外的人观看到。

直播可以加入 RTC 连麦互动,同样视频会议可以转推出来进行直播,不管从哪一个场景,都在往另外一个方向进行延伸。从用户的视角,这两者的界限在逐渐模糊。

About

IM 及实时通信笔记

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages