博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如果你还不了解 RTC,那我强烈建议你看看这个!
阅读量:4092 次
发布时间:2019-05-25

本文共 996 字,大约阅读时间需要 3 分钟。

今天,跟大家聊聊一种比较常见的技术:RTC。

疫情期间,你的家人或亲戚一定也开始宅在家上网课了吧?

熟悉 RTC 技术(实时音视频)的小伙伴都知道,每一堂网课背后,都有一套技术栈。你可以将它们想象成一群辛勤的 “小人儿”,彼此通力合作完成一堂网课。

如果你不了解 RTC 技术,那么我们可以用一个视频来解释一下:

我们把视频中网课的原理用图文来表示的话,会是这样:

当网课开启后,老师端的音视频数据会被摄像头、麦克风采集下来。视频采集后都是视频流数据,你可以将它视为跑马灯里的一张张画,这样的数据是无法直接进行传输的,需要转换为二进制数据才能传输。

同样,音频采集下来的是模拟音频信号。所以,要传输音频,也需要将模拟信号,转换为数字信号,然后最终以二进制数据格式表达出来。

而视频、音频数据的这转换的过程,都是由编码器来完成的,也就是动画中的“翻译组”。视频和音频还会被打上“时间戳”,它是用来告诉你的电脑/手机,“老师几点几分几秒说了这句话”,这是为了让你看到的画面和听到的声音能对上号。

除了这些,还有老师翻动 PPT、在白板上划重点,甚至是发文字消息等一系列操作,都是基于信令系统完成的。当然,这些数据中也会包含“时间戳”。

好了,这些数据都转换为二进制数据后,就要开始传输了。这时候都会交给传输模块,也就是我们动画中的场务组。他们会通过 RTC 专用的“物流网络”来传输这些数据。

在线互动课堂对实时性、互动延时有着很高的要求,必须保持学习过程的顺畅进行,否则学生的学习效果会大打折扣。由于每个人在家上课的网络情况各有不同,这就要求适配 3G、4G、Wi-Fi 等各种网络,并且在网络传输环境较差情况下还能保证良好的音视频互动。这背后的“物流网络”有许多值得分享的技术原理,我们以后再详细讲解。

这些数据安全到达你的电脑、手机、iPad 之后,解码器就会开始将这些二进制的数据还原成视频流、音频,然后经过设备的渲染播放出来。这样,一堂普通的网课在一顿操作之后就实现了。

至于美颜、送礼、弹幕,它们背后的技术原理与实时音视频相似。送礼、弹幕都是基于信令实现的。美颜是发生在编码之前,我们也会在后续的视频中跟大家慢慢分享。

尽管,动画中的小人儿不是真实存在的,但是造就这些小人儿的工程师们都时时刻刻在每一堂网课背后忙碌着。

还想了解哪些音视频技术原理?可以留言告诉我们

往期科普视频回顾:

转载地址:http://kuvii.baihongyu.com/

你可能感兴趣的文章
分布式之redis复习精讲
查看>>
数据结构与算法7-栈
查看>>
线性数据结构学习笔记
查看>>
数据结构与算法14-跳表
查看>>
Java并发编程 | 一不小心就死锁了,怎么办?
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
(python版)《剑指Offer》JZ06:旋转数组的最小数字
查看>>
(python版)《剑指Offer》JZ13:调整数组顺序使奇数位于偶数前面
查看>>
(python版)《剑指Offer》JZ28:数组中出现次数超过一半的数字
查看>>
(python版)《剑指Offer》JZ30:连续子数组的最大和
查看>>
(python版)《剑指Offer》JZ32:把数组排成最小的数
查看>>
(python版)《剑指Offer》JZ02:替换空格
查看>>
JSP/Servlet——MVC设计模式
查看>>
使用JSTL
查看>>
Java 8新特性:Stream API
查看>>
管理用户状态——Cookie与Session
查看>>
最受欢迎的前端框架Bootstrap 入门
查看>>
JavaScript编程简介:DOM、AJAX与Chrome调试器
查看>>
通过Maven管理项目依赖
查看>>
通过Spring Boot三分钟创建Spring Web项目
查看>>