webrtc
文章平均质量分 93
learning~
~怎么回事啊~
这个作者很懒,什么都没留下…
展开
-
webrtc audio
AudioDeviceModule是一个抽象类,定义了音频相关的接口,如设备枚举(Device enumeration)、设备选择(Device selection)、扬声器音量控制(Speaker volume controls)、麦克风音量控制(Microphone volume controls)、扬声器静音控制(Speaker mute control)、麦克风静音控制(Microphone mute control)、立体声支持(Stereo support)和音频传输设置(...原创 2021-08-20 11:32:14 · 1136 阅读 · 0 评论 -
webrtc 音频引擎
WebRTC由语音引擎,视频引擎和网络传输三大模块组成,其中语音引擎是WebRTC中最具价值的技术之一,实现了音频数据的采集、前处理、编码、发送、接受、解码、混音、后处理、播放等一系列处理流程。 音频引擎主要包含:音频设备模块ADM、音频编码器工厂、音频解码器工厂、混音器Mixer、音频前处理APM。 音频工作机制 想要系统的了解音频引擎,首先需要了解核心的实现类和音频数据流向,接下来我们将简单的分析一下。 音频引擎核心类图 音频引擎WebrtcVoic...原创 2021-08-19 15:16:59 · 737 阅读 · 0 评论 -
10-webrtc实现1V1音视频实时互动直播系统
今天我们来进行STUN和TURN服务的搭建,我们此前已经介绍了WebRTC信令服务器的搭建,以及介绍了端到端视频的传输,在信令服务器搭建的时候我们使用的是nodeJS+socket.io并且最终一个多人的文本聊天室来验证信令服务器的可用性,第二个通过端对端的传输我们是通过我们本机内部的一个网络传输,通过一端的PeerConnection传到另一端的PeerConnection,通过第二个PeerConnection将这个视频获取出来进行展示,下面我们在介绍完这个STUN和TURN服务之后在真实网络下不同的P原创 2021-01-13 22:27:28 · 1480 阅读 · 0 评论 -
9-WebRTC的SDP
SDP规范 SDP的规范非常简单,它会将SDP分成两层,第一层是会话层,会话层就相当于我们写程序时候的一个全局变量,我们写程序的时候有全局变量有局部变量,当局部变量没有设置的时候,那么我们这个全局变量在全局内都是有效的,我们在自己的函数里设置了局部变量,那么局部变量会覆盖全局变量,它也是这样一个层级关系,这个会话层就相当于全局变量的一些东西;第二层是媒体层,媒体层就相当于我们自己 的一个个函数,或者按照SDP 的理解就是一个个媒体,比如一个音频流一个视频流,每一路视频每一路音频都是一...原创 2021-01-07 09:25:40 · 310 阅读 · 0 评论 -
8-WEBRTC端对端1V1传输基本流程
媒体能力协商过程今天我们就进入到了WebRTC学习最关键的一部分知识,那就是端对端的连接,当我们学习完这一部分知识之后,大家就可以自己实现一套实时互动直播系统了,但是这部分知识呢涉及到知识点非常多相应的学习难道也会陡然增加,所以大家 一定要做好心理准备,大家要不断的加深自己的理解,那么下面我们就开始讲解我们这部分知识。RTCPeerConnection下面我们介绍一下最关键的概念就是RTCPeerConnection,其实在一开始的时候就给大家做了一个简单的介绍,这个类是整个WebRTC的一个核原创 2021-01-05 11:00:43 · 1040 阅读 · 0 评论 -
7-webrtc传输基本知识
WebRTC传输基本知识WebRTC首先要解决的是两个浏览器之间如何实现音视频的实时互动,对于底层来说就是如何实现两个端点之间高效的网络传输,为了解决这个问题WebRTC引入了很多的传输协议NAT (Network Address Translator)下面我们以传统的邮件作为例子,给大家说明NAT是什么?比如A和B两个人要发信,那B告诉A它在某个楼的某层时,这个时候A 可以给B发消息或者信件吗?这肯定不行,因为它并不知道一个具体的地址是多少?你必须告诉它具体哪个省哪个市哪个区哪个小区哪号楼哪层原创 2021-01-05 08:09:29 · 1262 阅读 · 0 评论 -
6-webrtc 信令服务器
webRTC信令服务器的作用信令服务器用于交换三种类型的信息:会话控制消息:初始化/关闭,各种业务逻辑消息以及错误报告。网络相关:外部可以识别的IP地址和端口。媒体能力:客户端能控制的编解码器、分辩率,以及它想与谁通讯。会话控制消息 会话控制消息比较简单,像房间的创建与销毁、加入房间、离开房间、开启音频/关闭音频、开启视频/关闭视频等等这些都是会话控制消息。 对于一个真正商业的WebRTC信令服务器,还有许多的会话控制消息。像获取房间人数、静音/取消静...原创 2021-01-03 20:35:11 · 1906 阅读 · 0 评论 -
5-webrtc音视频采集与录制媒体流
音视频采集APIgetusrMedia:https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMediaMediaDevices.getUserMedia()会提示用户给予使用媒体输入的许可,媒体输入会产生一个MediaStream,里面包含了请求的媒体类型的轨道。此流可以包含一个视频轨道(来自硬件或者虚拟视频源,比如相机、视频采集设备和屏幕共享服务等等)、一个音频轨道(同样来自硬件或虚拟音频源,比如麦克风、A.原创 2021-01-02 19:57:08 · 686 阅读 · 0 评论 -
3-webrtc设备管理
webrtc 获取音视频设备通过enumerateDevices()获取到所有的音频和视频设备,返回的值是一个promise,这是javaScript中一个特有的对象,在promsie中有一个特有的结构体:MediaDevicesInfo,在这个结构体中存放了非常重要的几个信息,deviceid为这个设备的唯一标志符,第二个label就是设备的名字,比如内置音频设备,内置音频输入设备等 首先解释一个背景,JavaScript中是使用单线程去处理整个逻辑的,为了防止被阻塞,大量...原创 2021-01-02 10:34:03 · 341 阅读 · 0 评论 -
2-web服务器原理与nodejs搭建
1 web服务器 浏览器像Chrome不允许直接调用本地的JavaScript程序,所以只能把程序从服务器下载到本地,然后在本地运行javascript程序。 首先APPLICATION是我们自己开发的一个javascript程序,输出给V8引擎,主要对javascript进行一些解析工作,解析完了之后生成一个二进制代码,再加上nodejs本身自己的一些API,解析后的二进制去调用Nodejs的API,调用之后,nodejs还会调用一个叫LIBUV的事件处理库...原创 2021-01-01 23:09:32 · 305 阅读 · 1 评论 -
1-webrtc 原理
1 webrtc 整体架构绿色方块内是webrtc的核心功能,外面紫色的部分是web 浏览器提供的javascript的API层, 也就是说浏览器对内部的C++API层 做了一层封装,封装成了jacascript接口,上层应用访问这些API,这样就调到了核心层 获取音频 视频。下面再往下看WebRtc的核心部分,分成4层,各个层分成不同的模块,各个模块之间有不同的调用关系。第一层是C++API,也就是说提供给外面的API接口,这些API其实非常少,最主要的就是peerconnet..原创 2020-11-15 15:56:22 · 961 阅读 · 0 评论 -
webrtc videocapture
视频采集模块的虚基类为VideoCaptureModule,它定义一系列视频采集的通用接口函数: Start/StopCapture用来开始/结束视频采集;Register/DeCaptureDataCallback用来注册/注销数据回调模块,数据回调模块用来把视频数据向上层模块推送;CaptureCallback则是向上层报告采集模块自身的运行状态。视频采集模块采用WebRTC的通用模块机制,因此它也继承自Module类,用来完成通用的模块操作。 // Register ca...原创 2020-10-08 08:52:08 · 1044 阅读 · 0 评论 -
webrtc scoped_refptr
scoped_ptr(scoped_ptr.h)是一个在析构时将自动删除所持有对象的智能指针。使用如下://// A smart pointer class for reference counted objects. Use this class instead// of calling AddRef and Release manually on a reference counted object to// avoid common memory leaks caused...原创 2020-10-06 17:28:07 · 298 阅读 · 0 评论