webrtc
文章平均质量分 80
webrtc的简单介绍
嵌入式音视频开发
这个作者很懒,什么都没留下…
展开
-
6.5.编解码器信息的收集
就是你在这个模板列表中啊,可以传入可变参数的模板,这个参数呢是可多可少的,根据你的需要,你去列出来就了。那在这个函数中呢,它生成了一个新的对象,那这个时候呢,我们就要考虑一个问题了,那既然我们现在已经知道在这个列表中呢,有这么多的编码器,那我如何能将一个个的编码器获取到呢?它需要提供两个模板,那第一个模板呢,就是可变参数模板列表中的第一项,那后边儿ts呢,就是余下的可变参数。对吧,这样可变参数列表中就少了一项,然后通过递归的方式,每次取一项,每次取一项,最终呢,将可变参数模板列表中的每一项给它取近。原创 2023-12-14 22:57:11 · 83 阅读 · 0 评论 -
6.4.如何生成SDP
好,那对于transfer来说呢,它包括了一堆的字段,那这些字段呢?创建receiver的时候呢,会创建audio rtp receiver和video rtp receiver,那对于每一种类型的track,它只能创建这种类型的sender和receiver。那我们的目标呢,当然就是生成这样一个文本,那这个文本呢,就是sdp文本那里边包括了各种各样的媒体信息,音频,视频。那我们都知道,对于接口儿层,还有sdp,它都属于外边儿tc的筛选层,那通过前面儿的介绍呢,我们就可以对这个sesion啊,做一下总结。原创 2023-12-14 22:34:42 · 87 阅读 · 0 评论 -
6.3.WebRTC中的SDP类的结构
在上节课中呢,我向你介绍了sdp协议,那这节课呢,我们再来看看web rtc中。是如何存储sdp的?也就是sdp的类结构,那在此之前呢?我们先对sdp的内容啊,做一下分类。因为在上节课中呢,虽然我们介绍了它的协议,但是具体对于stp中它到底包含了哪些内容?实际我们并没有做详细的介绍,对吧?那所以呢,我们今天先把这块内容给大家做一个介绍,之后呢,我们再来看看web rtc是如何存储它的。好,那这张图呢?就是对stp内容的一个分类。那从大的方面来看呢?sdp它包括了会话层和媒体层,对吧?那会话层呢?包含原创 2023-11-23 23:17:31 · 580 阅读 · 0 评论 -
6.2.SDP协议
它是由k value所组成的,那另外呢,我们要知道sdp它是分层的,对这对于我们理解sdp来说呢,非常的关键。那对于视频来说,它的media ID是一,那这个序号呢?那p6使用的是VP 8,这个编辑码器,它的时钟频率呢是九万,那这个呢,就是一个stp的例子。那这个时候呢,我们要做好兼容,那以上呢,就是我们这节所要向你介绍的内容,那在这节中呢,我首先向你介绍了sdp协议的一个基本的规范。那第二次协商的时候呢,版本号就变成二,那第三次呢,就是三,它这个版本呢,是不断累加的,后边这个o呢,就代表是就谁拥有它?原创 2023-11-23 23:05:06 · 407 阅读 · 0 评论 -
6.1.webrc媒体协商
媒体协商的过程中呢,就会进行网络传输的创建,编解码器的创建等等,这些呢,都是在set local description中实现的。我们来看一下y8 rtc的媒体协商,那实际上在我们之前的课程中呢?那我们在进行网络传输的时候呢,实际是希望这个数据越小越好,越紧凑越合适,那如果你要传一个更大的数据,它占的网络带宽就会越多。那当只有某一项的时候,比如只有offer或者answer的时候,那他只做其中的一半工作,那剩下的一半工作呢,要交给下一个API,也就是set remote description来进行完成。原创 2023-11-23 22:44:54 · 436 阅读 · 0 评论 -
6.6.编解码器信息的收集之二
在上节课中呢,我向你介绍了编辑码信息收集的第一部分,那在那一部分中呢?我们本来是要将所有内容通过一节课全部讲出来。但是呢,由于时间的关系,我们只能讲其中的一部分,那今天呢,我们继续讲第二部分。那在上节课中,我们归到了通过create peer connection factory,我们就开始收集音视频编解码器的信息了。其中用到的四个重要的函数呢,就是create buildin audio encoder factory create buildin audio encoder factory。以及vid原创 2023-11-15 23:04:29 · 207 阅读 · 0 评论 -
5.12.webrtc接口调用过程
嗨,大家好,我是李超,在上节课中呢,我向你介绍了外接口的设计以及我们红接口展开之后的样子,对吧?那今天呢?我们再来看看整个接口调用过程。那整个这个调用过程啊,非常的复杂,我通过一张图呢,向你做了一下展示,那么通过这张图,我们可以看到。整个从一开始红的展开,到最后我们调用到create peer connection这个API这个过程呢?需要11步。那它还是非常复杂的,我们要理解起来呢,也会非常的费劲,但是通过这张图呢,可以大大简化,我们在理解这个过程中的复杂度。那即使这样,其实我们在理解的时候可能还会遇原创 2023-10-18 23:26:51 · 551 阅读 · 0 评论 -
5.9.Webrtc线程事件处理
在前面的课程中呢,我已经向你介绍了事件处理的一些基础知识,那今天呢,我们再来看一下外边儿rtc下事件处理的基本逻辑是什么?那首先呢,我们来看一下事件是如何协调线程工作的,那就如果这张图所展示的有两个线程,对吧?一个是限定线程,一个是工作线程。其中,工作线程呢,又称为等待线程,它会因为一个事件而睡眠,直到事件发生为止。这两个线程是如何协调工作的呢?那中间儿就要有一个公共对象在外边儿tc下,这个公共对象就是non socket server或者是physical socket server。这在我们上节课原创 2023-09-11 23:34:42 · 379 阅读 · 1 评论 -
5.8.webrtc事件处理基础知识
它有两种事件源,那第一种事件源呢,就是我们刚才介绍的socket的事件源,当socket读写或者连接的时候呢,都会触发事件。首先,我们要清楚啊,不同的平台处理事件的API是不一样的,这就如同我们当时创建线程是类似的,对吧?那另外呢,我们要知道对于Windows系统下它的事件呢,包括两种,一种是wsa even的事件,一种是普通的even的事件。当然,完全端口的方式会更高效一些,但对于web rtc来说呢,它选择的是wsa even的select,所以对于这节课来说呢,我会向你介绍大量ws a开头的。原创 2023-08-21 00:49:30 · 754 阅读 · 0 评论 -
5.6.webrtc三大线程
好,那再往后,它就会做一次线程的切换,也就是说,从当前线程切换到新的线程,那一块逻辑的切换呢?当three的对象创建好之后呢,它调用start方法将这个线程启动起来,那现在我们就知道network three的这个对象,它是在哪创建的,以及这个线程。但是对这三个线程来说呢,实际我们在写应用程序的时候,可以自己先把它创建好,然后传给外部rtc,让外部rtc用我们创建好的线程来做底层的处理。当应用层调用外部r7c的API的时候,进入到API内部,它就会进行线程的切换,从应用层的线程切换到信号线程。原创 2023-08-20 22:03:19 · 1480 阅读 · 0 评论 -
5.5.webrtc的线程管理
我们继续跳到three的类的实现。那关于three的local storage呢,应该是在C加加幺幺引入的对,所以它引入的时间呢,并不是很长,下面呢,我们来看看three的local storage,它的一些基本用法。那对于外边rtc来说呢,它里边存放的就是three的指针,这个map与three的manager中的message q每一项呢都是一一对应的,也就是说第一项的three的对应这里的。原创 2023-08-20 21:36:37 · 509 阅读 · 0 评论 -
5.4 webrtc的线程
实际上,关于threed的类中的很多细节呢,我们都可以看一些注释,在这个threed的类中呢,包含了大量的注释。就是在这里,那在threed的点h中的168行就是threed的类的定义,我们可以简单过一下,看看这个类它是怎么定义的?后边我们需要的时候,我们再看这个类,它是怎么定义的?是用于线程切换的,我们也知道,为了提高效率,它采用了多线程,不同的线程呢,完成不同的工作。那首先我们来看一下数据,之前呢,我在常见的线程模型中,曾经向你介绍过,一般呢,我们在使用线程的时候呢,都要增加一些队列,对吧?原创 2023-08-20 15:55:16 · 383 阅读 · 0 评论 -
5.2.线程基础知识
那首先呢,就是互斥通过锁呢,可以达到一个互斥,当某个线程要访问共享资源的时候,他先给它加一把锁,这个时候呢,其他的线程就没法再访问这个共享资源了。当然,我们加锁的时候呢,还要注意一些点,那第一个呢,就不能出现 什么时候会出现死锁呢,就是a线程等待b线程,但是a线程呢,和b线程都要同时访问一个共享的资源。对吧,那这都是我们经常遇到的事儿好,那下面呢,我们再来看看多线程给我们带来了哪些问题,好,第二个呢,是为了提高效率,我们应该把这个资源呀,尽量划分的更小,这样使得我们锁这个资源的时间就更短。原创 2023-08-20 13:59:38 · 51 阅读 · 0 评论 -
5.1 webrtc线程模型
那除此之外呢,我们还要了解web rtc线程与线程之间是如何协调工作的,哪个线程是先执行,哪个线程是后执行,(三大线程和子线程的关系)才能更好的理解它内部的一个运转机制,所以通过上面的介绍呢,我们应该知道理解y8 rtc的关键点就是你对它里边的线程的理解。当存在多个线程的时候,哪两个线程之间是可以有联系的,而其他线程之间呢,是相互独立的,这都是我们比较关心的问题。对吧,只有我们了解线程创建的时机,我们才能知道外边rtc线程之间它是怎样的一个关系,是一对多的关系,还是一对一的关系?好,那我们今天的课呢?原创 2023-08-20 13:44:19 · 1112 阅读 · 0 评论 -
4-12.源码分析-信令的实现
那第三步呢,是执行I nid socket signals,那这个函数啊,是非常重要的,我们跳到这个函数中去看一下,那在这个函数中它做了哪些事情呢?这里我们就会产生一个疑问,我们的信令已经构造好了,并且呢,向服务端发送了一个连接请求,那我们的信令是什么时候发出去的呢?这个应答呢,我们会在昂锐的函数中读取到,那读取到之后呢,它会对消息呢进行分析。它会从消息队列中取出一个消息,最终调用cld 3 two peer,将这个消息发送出去,那我们再进入到这个函数中,在send to peer这个函数中呢?原创 2023-07-06 23:23:13 · 79 阅读 · 0 评论 -
1.WebRTC源码剖析导学
为了用户体验的更好,他们对网络音视频质量的要求呢,都非常苛刻,所以对人才的要求呢,也很高。最后呢,是webrtc的架构,webrtc的架构设计的特别优秀,尤其是对线程的控制,使得它的执行效率特别高。在读的音视频方向的研究生也可以学习这门课,那通过这门课的学习呢,可以让你进步的更迅速。步子不要迈的太大,否则不但不会有好的学习结果,而且呢,还会严重的打击你的自信心,这样呢,就得不偿失了。在这三大质量中呢,网络质量是最关键的,因为它属于基础设施,因视频质量的好坏实际上很大一部分是由网络质量的好坏来决定的。原创 2023-05-22 21:41:37 · 258 阅读 · 0 评论 -
4-9.peerconnection-client界面实现
实际UI是一个状态机,你显示不同页面的时候呢,它的状态会发生变化,那第三句呢,是对连接信令服务器页面的布局。已经非常清楚了,下面呢,我们再来看一下这些页面之间是如何切换的,那由于页面切换是一个非常复杂的过程,那这里呢,我就以这历史页面为例来做一下重点讲解。首先,我们要知道一个原理,就是我们页面切换的真实情况,是我们有一个共同的父窗口,在不同的阶段呢,我们在父窗口里显示不同的子窗口。副窗口就知道我下边有哪些子窗口,那这些子窗口呢,也同时要释放资源,所以我们在创建子窗口的时候呢,一定要注意这个参数要填对。原创 2023-05-31 23:06:42 · 85 阅读 · 0 评论 -
3-4.编译WebRTC源码
那通过这两个命令呢,我们都可以查找到好以上呢,就是we br 7编译的一些参数,那知道这些参数之后呢,我们再来看看如何?那默认情况下呢,我们就使用这一行语句,就可以将编译脚本呢生成出,这非常简,那第二个呢?这时候呢,我们需要先清理一下那使用的命令呢,就是这个命令,当我们执行这条命令的时候呢,它就会将目录中的内容呢给它清掉。就不执行了,下面呢,大家可以自己执行一下,当我们执行完成之后呢,你可以用gn gen --ide=VS out/mytext ,那通过这条命令呢,来产生VS工程文件,我们执行一下啊。原创 2023-05-22 23:14:23 · 146 阅读 · 0 评论 -
4-3.peerconnection_client的构成
创建登录窗口,创建peerconnectionclientld模块,那这个模块呢,就是信令发送模块,创建conductor,在创建conductor的时候呢?conductor是最为核心的,它的工作包括了两部分,一部分是对于webrtc native接口的调用,那另外呢,就是对这两个模块的一个统一调度。那最终呢,会调用到conductor这个模块的connect函数,在这个函数中呢,又会调用pcc,也就是peerconnectionclient的模块,然后进行网络的连接。那第一个界面呢,就是登录界面。原创 2023-05-22 23:22:41 · 104 阅读 · 0 评论 -
WebRTC 的核心RTCPeerConnection 接口
WebRTC 的核心是 RTCPeerConnection 接口,该接口封装了所有建立 P2P 连接的细节和基本操作。在创建 RTCPeerConnection 实例时,我们可以传递一个配置项对象,它包含以下可选属性:• iceServers: WebRTC 中 ICE (Interactive Connectivity Establishment) 协议用于在两个端点之间建立网络连接。这个属性可以用来指定 STUN 或 TURN 服务器的 URL 以进行 NAT 穿透和中继等操作。原创 2023-05-31 23:12:41 · 2030 阅读 · 1 评论 -
3-3.编译WebRTC的必备工具
我主要是以Windows端为主,介绍Windows端整个webrtc的代码逻辑,当我们将这一端完全理解之后呢,我们再看其他的好,那下面呢,我们就来看看。是吧,那我们通过这个命令呢,就可以将它直接安装好,在安装的时候我们还有一点要注意的呢,那以上呢,就是我们这节课主要介绍内容,那这节课中呢,我主要向你介绍了,在Windows下我们要安装的两个必备的工具,一个是Windows SDK。第三个呢,在安装的过程中,我们要选择一些模块,那Windows SDK呢,要将debug工具安装好,而对于VS2019呢?原创 2023-05-22 23:14:14 · 117 阅读 · 0 评论 -
4-1.分析WebRTC必经之路章节概述
实际上,关键的一点就是我们之前介绍的peerconnectionclientlient,我们应该牢牢的抓住peerconnectionclientlient的这个demo,因为在这个demo中呢?那我们来看一下,我本章主要讲解的内容,首先呢,我们先来了解一下一对一的实时通讯的架构,也就是说,我们要拿到一把打开webrtc的钥匙,那对于webrtc来说,它的代码量是非常庞大的,我们到底该如何下手呢?那通过这一章的课程学习呢,都会为我们打下非常坚实的基础OK,那我们本节呢,主要就是向你介绍一下我们这一章。原创 2023-05-22 23:17:49 · 38 阅读 · 0 评论 -
3-5.WebRTC中的重要Demo
那这就是我们这个demo的一个大体的结构,那通过这个demo呢,我们可以知道对于客户端实际它包含了三个界面,那第一个界面是登录界面。而我们打开之前的那个呢,可以看到显示的是另外一个客户端的名字,当然由于我是在同一台机子里,所以这两个名字呢,是一模一样的,那对于服务端来说呢,每次有一个客户端登录的时候,那它都会提示一个连接数,那目前呢,只有一个连接,因为我们刚才在操作的时候由于。那由于我在同一台机子上摄像头呢,相互之间会强占,所以呢,在这里它就发生了一个冲突,因此呢,这个显示界面就是一片空白。原创 2023-05-22 23:16:47 · 86 阅读 · 0 评论 -
4-6.完美协商
以及它的作用了,对吧?那对于完美协商来说呢,它是允许双方可以同时发送offer给对方的,这是第一点,那第二点呢,是由于web rtc底层的状态机并没有发生变化。所以在新的webrtc中呢,提供了一种新的协商的方式,称为完美协商。但是对于角色的设置是由我们人为规定的,而不是由它内部自己设置的,所以我们在进行媒体协商之前呢,应该将一端设成为有礼貌的角色,另一端呢,设成为无礼貌的角色,这是第二点,当产生冲突的时候,就要判断你的角色是什么了,那如果是无礼貌的角色,那当收到对端的offer之后呢,就应该把它忽略掉。原创 2023-05-23 22:10:03 · 101 阅读 · 0 评论 -
4-4.几个重要的信令
在上节课中呢,我向你讲述了peerconnection客户端类之间的关系以及类之间的时序图,那通过那两张图呢,我想你应该对peerconnection的整体结构。存在内存中,然后给客户端返回一个用户,登录成功消息好,第二个信令呢,是用户退出信令,也就是Sign out,这也非常好理解,对吧?获取暂存的中转消息,比如说sdp消息、candidate的消息,那换句话说呢,对于信令服务器来说,它没有主动推消息的功能,只能是用户给服务端。包括三个部分,第一个呢是呼叫端,第二个呢是信令服务器。第三个呢,是被呼叫端,原创 2023-05-22 23:22:36 · 37 阅读 · 0 评论 -
4-10源码分析-client界面
我们进入到这个函数中,在这个函数中呢,实际就像我们前面介绍的,首先呢,是对peer list UI进行一个布局。后边的一些逻辑呢,都是一些不太重要的逻辑了,好,如果在这个过程中呢,我们没有获得mainwindow,那它会将所有的消息呢都交由。当然最后呢,他们都是进入到on defer的action这个函数中,那总之呢,通过上面分析呢,你应该知道了wndproc是如何处理子控件消息的。在H文件中呢,定义的mainwindow类在CC文件中呢,是它的实现,那第二个呢,是conductor类。原创 2023-05-31 23:05:49 · 40 阅读 · 0 评论 -
WebRTC setlocaldescription的原理
setlocaldescription的原理是将本地的SDP描述信息赋值给RTCPeerConnection对象中的localDescription属性,然后通过信令服务器将此SDP描述信息发送到远端的对等端,用于协商和建立连接。当远端的对等端接收到SDP描述信息后,会将其设置为remoteDescription属性,并再次使用createAnswer方法生成自己的SDP描述信息,通过信令服务器发送给本地的对等端,从而完成建立连接的过程。原创 2023-05-31 23:16:40 · 392 阅读 · 0 评论 -
3-1.WebRTC开发环境搭建概述
那对于这个demo呢,我们还会在后面的课程中对它的源码做详细的介绍,那通过对这个demo的分析呢,你可以知道。下载源码,那这是最方便的,但这里指的条件是十分苛刻的,那不是说我们通过花钱的方式就一定可以成功,那这些呢,是我们第二节所介绍的重点好,第三节当源码下载好了,工具也安装好了,我们就可以编译webrtc了,那在这一节中呢,我将向你介绍如何编译webrtc源码?我也会对其中的原因做详细的讲解,除了直接下载的方式啊,还有其他的一些方法可以获取源码,那这些方法呢,我也会在本节向你做详细介绍。原创 2023-05-22 23:10:30 · 289 阅读 · 0 评论 -
4-7.Windows窗口与消息
对这个消息进行转换,对于一般的消息来说呢?所以对于main函数来说呢,它包括了两大块儿,第一大块儿呢,是窗口的创建,第二大块儿呢,是消息的分发。在这个函数中呢,我们对各种各样的消息进行处理,那最终呢,再调用我们自己的逻辑,这就是windows程序的一个基本构成。所以在这个函数中呢,我们可以写一个switch case,判断每个消息,那对我们关心的消息呢,做特殊的处理。实际上windows窗口的创建是由多个步骤组成的,那第一个步骤呢,就是我们要注册一个窗口,在注册窗口的时候,我们要指定消息的处理函数是哪个?原创 2023-05-31 23:03:35 · 116 阅读 · 0 评论 -
3-2.获取WebRTC源码
那这就是我们获取webrtc源码的三种方式,那下面呢,那对于物理机来说,一般这个磁盘空间啊,不是问题,而对于虚拟机来说呢,有很多同学在分配的时候呢,没有分配很多,分了几十个g编译的时候就会出现问题,因为它会产生大量的临时文件。是我们必须要保证的,尤其是使用虚拟机的同学,那必须要注意这些配置好,后边儿的这个开发工具呢,我们暂时先不说,因为这个呢,后边儿我还会详细介绍。去下载那么第二天呢,再使用它对,所以它下载时间是非常长的,当然这也与你的带宽是有关系的,由于我这个访问外网的带宽呢,比较小,也就1M的这个量。原创 2023-05-22 23:11:33 · 266 阅读 · 0 评论 -
4-8.实战-实现一个最简单的Windows应用程序
处理函数进行消息处理,那接下来我们再看看问window文件它做了哪些事情,那么window呢,实际就是封装了一个类,那在这个类中呢,实现了窗口的创建。那紧接着呢,我们再来看看注册窗口里实现了哪些功能,那对于这个内部函数呢,它先调用了系统的EX,注册了一个窗口,不过,对于我们后面要了解的peerconnectionclient端来说,它的界面呢,其实是非常简单的,只有三个页面,那每个页面中呢,都有很少的这个子控件儿。放大缩小,那在这个窗口中呢,包含了三个默认的button,一个是最小化,一个是放大。原创 2023-05-31 23:05:31 · 217 阅读 · 0 评论 -
2-7.WebRTC整体架构
那通过这张图呢,你可以看到整体分成了四个层次,那第一个层次呢是接口儿层,在接口儿层中呢,包含了两种接口儿,一种是web端的接口儿,另一种呢是C++接口儿。计算出来的一种呢,是基于丢包的带宽计算,那还有一种呢,是基于延迟的计算,基于延迟的机制呢,又包括TCC和REMB。好,再来看看视频引擎,那视频引擎呢,同样也包括了几个模块儿,第一个是jitter buffer,它与音频引擎中的NetEQ呢是类似的,也是对。这个两个图是特别特别关键的,一定要印在你的脑子里,那这样呢,才能对我们后面的学习呢,提供更大的帮助。原创 2023-05-19 00:27:54 · 290 阅读 · 0 评论 -
4-2.一对一实时通信架构
其实它的实现非常的简单,只是进行一个信令的中转,没有其他过于复杂的内容好,所以对于我们这一章的例子来说呢,这个STUN跟TURN服务啊,不是必须的,所以这一块儿呢,我们可以暂时忽略掉第三部分呢,就是peerconnectionclient。对吧,通过STUN服务呢,获取到我本机的外网IP地址,那将我的外网IP呢,通过新令服务器交给对端,对端就可以通过NAT穿越。所以我们通过这个图啊,也可以看出左右这两个client端它的结构呢,其实是一模一样的,所以呢,我们只需要介绍一端的内容就OK了。原创 2023-05-22 23:20:42 · 45 阅读 · 0 评论 -
4-11.信令逻辑
将客户端与信令服务器之间的连接给它断掉,之所以要这么做,是因为peer connection clan端与信令服务器之间的连接是短连接,当每处理完一个信令之后,就将这个连接断掉。关于信令的作用,我在前面的课程中呢,都向你做过介绍,那这里我就不再重复了。对,所以它是一个短链接,这是第一点,在rode中做的第二件事呢,是收到新令服务器返回的消息之后,要对返回的消息进行分析。那可能有的同学会有疑问,觉得这个connection clan端,它的信令处理啊,非常的繁琐,就那么几个信令,还要用两个连接。原创 2023-05-31 23:06:37 · 38 阅读 · 0 评论 -
4-5.WebRTC中的媒体协商
这样peer connection在媒体协商的时候就知道我们要协商哪些信息了,那我们是否有音频,是否有视频,视频的参数是怎样的,音频的参数是怎样的?将远端的answer也设置到自己的缓冲区中,最终呢,就可以进行媒体协商了,那以上呢,我们再来看看媒体协商的时序图,那在这个时序图中呢,一共包括四个组件儿,那第一个呢就是呼叫端a。那对于这张图来说呢,我们一定要牢牢掌握,因为媒体协商呢,是我们使用webrtc非常关键的一个步骤。我们介绍的主要是协商的一个完整的过程,那对于协商时我们使用的sdp中的详细内容。原创 2023-05-23 22:09:53 · 251 阅读 · 0 评论 -
2-6.为什么要使用WebRTC
性能呢,我们自研系统要通过自己来控制,而webrtc呢,有google的技术专家和强大的社区支持,所以它的性能呢,是非常优秀的第二个呢浏览器。那另外呢,安卓端使用的是audio record iOS端呢,使用的是audio unit,这是音频的采集,那对于视频来说。那这张图呢,就是一个最基本的实时互动直播架构图,那在这张图中啊,我们可以看到它包括了五大模块儿,那第一个模块儿呢,是音视频采集模块儿。OK,那以上呢,就是我们这节课所要讲解的内容,那这节课中呢,我主要通过webrtc与我们自研系统的一个比较。原创 2023-05-19 00:22:21 · 88 阅读 · 0 评论 -
2-5.几个重要指标和评测方法
那今天呢?我们来看看实时互动直播的几个重要指标和评测方法,那这几个指标呢?包括了实时通讯的延迟指标。音频服务质量评测指标和视频服务质量评测指标。可以说啊,这几个指标是我们评估实时互动直播最最基本的标准,那作为开发者呢?我们必须将这几个指标牢记于心。时刻记得用这些指标呢来评估我们的产品是否达标,那首先我们来看看实时通讯延迟指标。那这个指标呢?可以说是实时互动,直播里最最关键的一个指标,通过这张表,我们可以看到在我们的直播系统中。端到端的延迟必须符合这个标准的时候,那这个系统呢,才能称得上是实时系统。实际上原创 2023-05-19 00:09:36 · 137 阅读 · 0 评论 -
2-4.实时互动直播的难点
对于大部分人来说,都是不太满意的,会有明显的这个延迟,那这个就是实时的。那回音问题呢,也是我们这个实时互动中的一个,非常难以解决的一个问题,那整个儿的过程呢,就如这张图所展示的,那这里呢,我就不做详细介绍了。经常发生丢包儿,而且每次发生的丢包儿呢,都是同一个包儿,其实这个包儿发送之后呢,丢了然后再重新发的时候呢,又丢了,对,这样就会造成什么呢?那如果是300毫秒呢,大部分人都是非常满意的,400毫秒有一小部分人呢,就会感觉到有这个延迟现象了,但是呢,还不影响整个的这个互动性,那如果超过500毫秒。原创 2023-05-19 00:01:02 · 73 阅读 · 0 评论 -
2-3.直播技术的方向
传统直播在浏览器上只能拉流,不能推流,而基于webrtc的实时互动,直播呢,在浏览器上既可以推流,也可以拉流啊,服务器方面对于传统直播来说呢,如果是。而对于实时互动直播来说,它要求的这个实时性呢,特别高,那端到端的延迟一般不超过500毫秒,这个讲的呢,是端到端,那对于中间儿的网络传输来说呢,这个延迟就要更小了。而实时互动直播的实现的目标儿则是多人的音视频互动,强调的是多人的互动性,对,这是他们目标儿的不同啊,那下面呢,我们就来对这两种技术做一下对比,那这样呢,可以使我们更加清楚,知道两者的区别是什么,原创 2023-05-18 23:54:13 · 104 阅读 · 0 评论 -
2-2.音视频直播的由来
而且还可以让你得到一些额外的收获,比如说啊,如果你是一家企业,正在找音视频方面的人才,那通过这段历史呢,你就可以知道有哪些公司。这种可能呢,都是令人难以想象的,所以呢,我们现在更应该把音视频学习好,把webrtc学习好,那让自己呢,在未来有一个更广阔的空间。OK,那以上呢,就是我们这节课所要介绍内容,那在这节课中呢,我主要是向大家介绍了一些音视频直播的小历史。那有的呢,用它来观察昆虫,有的呢,用它来拍电影,电影一出来,人类就进入了视频的时代。那以上呢,就是音视频起源的一点小历史,那接下来呢,原创 2023-05-18 23:46:17 · 260 阅读 · 0 评论