亮网络解锁器,解锁网络数据的无限可能 了解详情
写点什么

每一节网课的背后,累死的小人儿能够绕地球 3 圈

  • 2020-04-19
  • 本文字数:1015 字

    阅读完需:约 3 分钟

每一节网课的背后,累死的小人儿能够绕地球 3 圈

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


你知道吗?每一堂网课背后,都有这样一群辛勤的”小人儿“在忙碌着,你可以把他们想象成一个剧组,彼此通力配合完成一堂网课。他们是:摄影组(视频采集)、收音组(音频采集)、翻译组(编码/解码)、道具组(信令)、场务组(传输模块)、放映组(渲染)。


本期的动画科普,就带你看看他们在每一堂网课开启后,都在忙什么。整体来讲,可以用这样一张图来表示。(我们的铁粉可能都猜到是哪张图了)


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


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


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


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


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


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


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


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


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


本文转载自 声网 Agora 公众号。


原文链接:https://mp.weixin.qq.com/s/gLvhKUuvUs35G1UaXnIkEQ


2020-04-19 17:17512

评论

发布
暂无评论
发现更多内容

代码零改动Serverless架构升级?这家在线编程教育企业是这么做的

阿里巴巴中间件

Python Serverless

最有技术含量的面试

escray

面试 面经 七日更 十日谈

生产环境全链路压测建设历程 18:某快递 A 股上市公司的生产压测案例之中篇

数列科技杨德华

全链路压测 七日更

彩色的线,数据的诗,你好——贵州鲲鹏!

脑极体

“社恐”独处好去处:无人自习室,一个人的“世外桃源”

IoT云工坊

物联网 无人自习室 智能门禁 智能灯控 线上预约

Nginx常见典型故障|Linux干货

赖猫

c++ nginx Linux

夜莺二次开发指南-监控系统(1)

ning

滴滴夜莺 夜莺监控

手写线程池,对照学习ThreadPoolExecutor线程池实现原理!

小傅哥

Java 小傅哥 线程池 七日更 ThreadPoolExecutor

wildfly 21的domain配置

程序那些事

程序那些事 wildfly wildfly21 配置管理 domain模式

JDK 16 即将发布,新特性速览!

xcbeyond

Java 七日更

单点破局思维|技术人应知的创新思维模型(8)

Alan

个人成长 技术人应知的创新思维模型 七日更 28天写作

附PPT丨AWS基于数据湖构建云上的数据分析架构

dbaplus社群

数据湖 AWS

Spring Cloud 2020.0.0正式发布,再见了Netflix

YourBatman

Spring Cloud Spring Boot netflix 2020.0.0

数据为墨,智能作笔:画一卷新姑苏繁华图

脑极体

用大白话给你解释Zookeeper的选举机制

爱笑的架构师

zookeeper ZooKeeper原理 七日更

Serverless 落地之痛怎么解?

阿里巴巴中间件

Serverless

30G 上亿数据的超大文件,如何快速导入生产环境?

楼下小黑哥

Java MySQL 并发编程 线程池

SQL优化最干货总结-MySQL「2020年终总结版」

Java架构师迁哥

世界之书:《禅与摩托车维修艺术》与发现良质

lidaobing

禅与摩托车维修艺术 28天写作

揭秘大流量场景下发布如丝般顺滑背后的原因

阿里巴巴中间件

阿里巴巴

TypeScript | 第三章:函数、泛型和枚举

梁龙先森

typescript 编程 大前端 七日更

语音助手中的复杂语义表达方法

DataFunTalk

AI nlp

Shell简介

入门小站

Shell

业务中台建设 - 配置化

孝鹏

中台 微服务 配置化开发

12张图带你彻底理解分布式事务!!

冰河

分布式事务 BASE理论 TCC ACID CAP理论

任务发布系统软件开发|任务发布APP开发

系统开发

夜莺二次开发指南-监控系统(2)

ning

滴滴夜莺 夜莺监控

Go中的Channel背后的设计哲学

soolaugust

Go Concurrency Patterns 七日更 CSP Go 语言

[git使用技巧] git提交忽略不必要的文件或文件夹

xcbeyond

git 七日更

如何成为架构师?

xcbeyond

个人成长 架构师 七日更

《数据分析》PDF免费下载

计算机与AI

数据分析

每一节网课的背后,累死的小人儿能够绕地球 3 圈_文化 & 方法_声网_InfoQ精选文章