WebRTC直播课堂实践:实时互动是核心

接下来介绍的是WebRTC的核心,大家也可以在Chrome,Google或WebRTC的官网上找到它的解释。概括一下,WebRTC 内核提供的技术能力包括:

  • 第一,低延时的音视频采集编码和解码。编码和解码是音视频中最重要的部分,是提供低延时的保证。
  • 第二,降低门槛,有浏览器的地方就可以使用WebRTC;这点我觉得是Google做得非常好的地方,目前微软、苹果、Google等都支持WebRTC,除此之外,大家现在手上用的很多硬件设备,都已经支持。最终会达到只要存在浏览器的地方都能使用。
  • 第三,优异的RUDP传输协议;WebRTC原本就是基于UDP的,在UDP上进行优化,可以更有效的使其传输的数据安全、可靠。第四,端到端的协商/建联框架;在七八年前,端到端上的直播几乎不可能实现,为什么那时大家看到都是广电做的直播,而不是互联网在做直播?原因是端上的系统度不够。

此外,WebRTC还提供一系列的业务能力:

  • 第一,低延时音视频垂直领域的发展; 什么是垂直领域?比如今天分享的主题——教育,就是一个非常垂直的领域,当前在线教育的火爆也正是由于音视频技术的发展,可以真正的实现沟通零距离。因此WebRTC对于垂直的领域非常有效,比如说教育、医疗行业等。
  • 第二,就是刚刚提到教育和医疗实时音视频。第三,互动音视频,远程广电系统;我之前在阿里巴巴为阿里云做了一个五地互传,当时阿里云在纽约,新加坡,肯尼亚,杭州等都有很多分部,会发现你要把他们放在一起沟通是一件很难的事,当时我们想到的第一个策略就是用卫星,但卫星的成本真的是高的离谱,而WebRTC就可以完全颠覆它,卫星传输的质量不如WebRTC是因为WebRTC采用的技术和算法完全超越了硬件所能带来的最低延时。第四,海外视频;WebRTC还有一个最大的业务能力是进行海外跨国传输,例如在之前将戛纳电影节上的一些活动的内容从戛纳传回来是一件基本不可能的事情,但是现在可以通过WebRTC实现,当然还要结合一些网络和语音的相关优化。

二、WebRTC课堂实践

image

接下来,从垂直领域来为大家介绍一下WebRTC在教育行业的课堂实践中的一些能力,包括电子白板、高质量通讯、IM和协作能力。

2.1 在线白板

image

电子白板是用于解决多人互动场景下,用户理解和分析的黑板能力。在教育行业中,无论是视频还是音频,都离不开这个白板。在学校里,对比现在和过去的课堂我们会发现变化是非常大的,但是只有一样东西没变,就是黑板,所以足以证明黑板有多么的重要。当我在一块黑板上面写字,一般人的做法是将它变成一个视频然后传播出去,让大家看到。但是这样有一个很大的问题,视频资源最少需要300kbps的带宽,这会占用用户很多的带宽,对于资源消耗是非常高的。

我们做了一件事情,就是让黑板变成一种描述性的语言。用描述性语言来替代白板,用它来描述白板到底画了一些什么,而它所占的带宽资源最高是9kbps,也就意味着,它的带宽消耗是用传统方式传输最低质量视频这种方式的1/30。这是一个非常伟大的突破,可以为客户节约大量的成本和资源消耗。视频化白板的体验问题包括无法放大缩小、不具备交互能力。但如果它是一个描述性语言,就可以随意放大缩小,并保持清晰。另外,对于视频,我无法在上面做第二次操作,但描述性语言可以。在数据扩充性方面,视频化白板是很差的,由于视频内容是非结构化的,导致很难被存储。

另外,AI是无法识别视频索引的。举例说明,我画了一只猫,现在AI的能力还不足以识别它是一只猫。因为我画的并不是特别有效,因此识别不了,但如果是描述性语言来表示,就能立刻识别出是只猫。最后是视频化白板的数据识别转换低。举个例子,有些AI公司会将一些视频中的数学符号识别成了数字,这是因为它无法识别。但对于描述性语言就可以轻松识别,因为它是一个矢量数据,它可以体量。这些说明了使用描述性语言改善了白板是有效的,在这里总结了一下,使用描述性语言白板带来的好处:

  1. 对白板改变进行冲突管理
  2. 描述性语言降低整个白板视频带宽
  3. 降低 CDN 使用成本
  4. 回放和录制存储要求极低,几乎可以忽略
  5. 矢量信息可无限放大细节
  6. 多端同步,相互备份
2.2 高质量通讯

image

Mesh、MCU和SFU是WebRTC的三种模式,目前可以说大部分使用WebRTC的厂商都选择了SFU模式,因为它是最高效的。MCU一般应用于广电领域,MCU就是不同端的推流,都发送到一个中央处理器上进行混流处理,处理完成后再分发给每个客户端。SFU指的是每个客户端都推流到服务器,由服务器转发所有的数据到各个客户端。如果广电要用到画中画的功能,MCU是没办法实现的。通俗的讲就是MCU将东西都固定好了,不能进行某一个区域的放大,它在服务端就已经进行了拼合。但是对于SFU,在收到服务器返回的数据流后可以再随意进行拼合。Mesh是一个最基本的,相对高质量的模式,但由于它消耗的资源及带宽功耗都比较高,所以不会经常用到。

image

高质量的通讯包括画质、流畅度和协同,画质包括了编码方式、码率和编码效率,流畅度包括了中间层构建、Plus插件和带宽优化方案,协同包括配套播放器和冲突管理。那在这里有几个问题想和大家分享一下:

    1. 1.8Mbps 的 720P 清晰度高还是 3Mbps 的 1080P 清晰度高?
    1. H264 Profile Level 决定了哪些要素?用户体验是什么?
    1. 为什么有些场景下只能用 Profile level 3.1 ?
    1. 究竟我们应该使用哪些最优方案去做画面的匹配?

对于第一个问题,我问了很多人,最后发现一个很神奇的事情,还是有很多人会选择3M码率的1080P的清晰度高。我想跟大家说,Adobe官方有一个推荐,刚开始推RTMP协议的时候,对编解码也给出了一个标准的推荐值,720P推荐的是1.8Mbps,1080P推荐的是5.5Mbps,只有这样才能满足相应画质的传输。那么这个问题的答案也就自然而然了,用3Mbps去传输1080P是不满足对应画质的,看起来的效果不如1.8Mbps 的 720P 清晰度高。

对于第二个问题,H264 Profile有3.0、3.1、4.0、4.1等不同level,这些算法依次是复杂程度越高,图像的精度也越好,这也决定了画质和效率,而用户体验指的是流畅度。对于第三个问题,为什么有些场景下只能用H264 Profile Level 3.1,而它的画质没有那么清晰?举例说明,有一天小天才的负责人跟我说,他要做一件事情,就是让孩子的父母可以用着手表进行有效的沟通。那这当中有个问题,我们当时给它设计的是画质优先,将profile level调到了4.1,结果发现,手表8分钟就烫得戴不了,功耗实在是有点高。后来,我们想到把这种嵌入式设备的profile level降到3.1,所以这就回答了为什么是有些地方情愿不需要画质,而需要它的profile level更高效,这跟功耗有关。

对于最后一个问题,就画面匹配这件事情来说,到底是提供一个高profile level的算法,还是低功耗的性能?这是两件事情,需要有一些权衡,确定其中一个有最大化利益。

2.3 IM/AI

image

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

最后

文章不易,如果大家喜欢这篇文章,或者对你有帮助希望大家多多点赞转发关注哦。文章会持续更新的。绝对干货!!!

由于文章篇幅问题 查看详细文章以及获取学习笔记链接:GitHub

  • Android进阶学习全套手册
    关于实战,我想每一个做开发的都有话要说,对于小白而言,缺乏实战经验是通病,那么除了在实际工作过程当中,我们如何去更了解实战方面的内容呢?实际上,我们很有必要去看一些实战相关的电子书。目前,我手头上整理到的电子书还算比较全面,HTTP、自定义view、c++、MVP、Android源码设计模式、Android开发艺术探索、Java并发编程的艺术、Android基于Glide的二次封装、Android内存优化——常见内存泄露及优化方案、.Java编程思想 (第4版)等高级技术都囊括其中。

  • Android高级架构师进阶知识体系图
    关于视频这块,我也是自己搜集了一些,都按照Android学习路线做了一个分类。按照Android学习路线一共有八个模块,其中视频都有对应,就是为了帮助大家系统的学习。接下来看一下导图和对应系统视频吧!!!

  • Android对标阿里P7学习视频

  • BATJ大厂Android高频面试题
    这个题库内容是比较多的,除了一些流行的热门技术面试题,如Kotlin,数据库,Java虚拟机面试题,数组,Framework ,混合跨平台开发,等
    厂Android高频面试题**
    这个题库内容是比较多的,除了一些流行的热门技术面试题,如Kotlin,数据库,Java虚拟机面试题,数组,Framework ,混合跨平台开发,等
  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值