WebRTC开发者社区为开发者提供最新最全的WebRTC资料
目录
  • 首页
  • WebRTC概念与基础
  • WebRTC项目与应用
  • WebRTC教程资料
  • WebRTC开发资源
  • WebRTC源码分析
  • WebRTC服务端开发
  • WebRTC网络与通信
  • WebRTC编码与解码
  • WebRTC问题与缺陷
  • WebRTC-Androd端开发
  • WebRTC-RFC文档

即构科技在线抓娃娃H5方案正式上线,400ms超低延迟,完美兼容微信!

2019-11-22 15:21:03

即构科技在线抓娃娃H5方案剖析

硬件方案——娃娃机整机、摄像头和硬件板子等。

软件方案——用户终端的抓娃娃H5源码、娃娃机摄像头推流方案、娃娃机天车控制方案、实时视频传输网络、实时信令控制网络和内容分发网络等。

 图1、图2分别是即构科技在线抓娃娃H5方案的抓娃娃模式和围观模式的系统架构图。

 


作者:ZEGO即构
链接:https://www.jianshu.com/p/476ac6c2efc8
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

More...

WebRTC本地C++开发基础

2019-11-22 15:16:59

本文以Linux/Mac平台为例,简单归纳总结WebRTC本地C++开发的基本步骤。

1. 先决条件

Google使用一个脚本工具集depot_tools进行代码检出、下载管理、代码审查、代码提交等日常开发工作[1]。该工具集中的常用工具包括gclient,gcl,git-cl,repo等等。在Linux/Mac平台上安装depot_tools工具集非常简单[2]:下载源代码并添加到PATH中即可:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"

需要注意的是,我们要把depot_tools放在PATH的最前端,否则gcl命令会指向GNU Common Lisp编译器。另外,export这一句最好添加到.bashrc中,这样就不必每次都设置。

对于Ubuntu/Debian系统,除安装depot_tools工具集,还有另外一项先决条件:在获取WebRTC源代码后,需要运行源代码中的install-build-deps.sh脚本安装一系列依赖软件:

 

More...

国内免费可用的STUN服务器(webrtc 必备)

2019-11-22 15:16:27

亲测有效的stun服务器:

 

More...

WebRTC拥塞控制算法——GCC介绍

2019-11-22 15:15:55

网络拥塞是基于IP协议的数据报交换网络中常见的一种网络传输问题,它对网络传输的质量有严重的影响, 网络拥塞是导致网络吞吐降低, 网络丢包等的主要原因之一, 这些问题使得上层应用无法有效的利用网络带宽获得高质量的网络传输效果。特别是在通信领域, 网络拥塞导致的丢包, 延迟, 抖动等问题, 严重的影响了通信质量, 如果不能很好的解决这些问题, 一个通信产品就无法在现实环境中正常使用。 在这方面WebRTC中的网络拥塞控制算法给我们提供了一个可供参考的实现,这篇小文会尽量详细的介绍WebRTC中的拥塞控制算法---GCC的实现方式。

●●●

WebRTC简介

WebRTC是一个Web端的实时通信解决方案, 它可以做到在不借助外部插件的情况下, 在浏览器中实现点对点的实时通信。 WebRTC已经由W3C和IETF标准化,最早推出和支持这项技术的浏览器是Chrome, 其他主流浏览器也正在陆续支持。Chrome中集成的WebRTC代码已全部开源, 同时Chrome提供了一套LibWebRTC的代码库, 使得这套RTC架构可以移植到其他APP当中,提供实时通信功能。

More...

webrtc P2P服务器coturn搭建说明

2019-11-22 15:15:12

rfc5766-turn-server规范

rfc5766-turn-server是谷歌推荐的turn开源项目,经常作WebRTC的服务器端使用。 该开源项目是包含TURN与STUN功能于一体,默认TURN与STUN监听端口为3478。
支持tcp, udp, tls, dtls 连接.tls为基于TCP的安全层传输协议,dtls为基于udp的安全传输层协议。
注意:TLS和DTLS需要安装证书。

 

More...

兼容 WebRTC 的开源抗丢包音频编解码器SOLO

2019-11-22 15:14:27

在 RTC 2019 第五届实时互联网大会的编解码技术专场上,声网开源了自研抗丢包音频编解码器Agora SOLO。

目前,编解码器的源代码已经开源在 Github 上:https://github.com/AgoraIO-Community/Solo

这个开源项目兼容 WebRTC,可集成于多种场景下的实时音视频应用中,比如在线课堂、直播社交、游戏语音开黑、IoT 等。在分析它的特性之前,首先要讲一下它名字中的一个关键词,丢包。

丢包是什么?

尽管很多人开始使用 WebRTC 了,但是其中有不少人都对「丢包」的概念不是很熟悉。所以,首先我们要解释一下。由于 SOLO 是音频编解码器,我们接下来讲的场景,主要是指其中的实时音频部分。

 

More...

webrtc延迟分析

2019-11-22 15:13:52

1.背景

webrtc可以用于将一台机器上的桌面投射到另外一台机器上,通过浏览器实现桌面分享。然而其延迟时间是一个关键问题,即我们在源桌面上做一个操作,经过多长时间能够在目的桌面上看到。接下来,将根据查找到的资料对导致延迟的因素做简要介绍。
想了解更多可以查看:抖动和延迟之间的区别

2.延迟时间构成

以下是计算WebRTC呼叫总等待时间的关键因素:
(1)网络延时。取决于网络连接质量和通信距离(在一个国家内部应该小于50毫秒,国家之间可能大于100毫秒)。
(2)网络带宽和服务质量。丢包或者带宽不足可能触发更多的延时。
(3)声音延迟。取决于操作系统、音频硬件和驱动(在windows和ios上小于20毫秒,在android和linux上可能更多)。
(4)抖动缓冲。每种VoIP软件维持一个大小不一的抖动缓冲器,以补偿网络延迟(通常在0到100毫秒)。
(5)回声消除和前向纠错。回声消除和前向纠错可能引入一个数据包的延迟(通常在20毫秒)。
(6)其他因素。还有其他因素对延迟有影响,例如CPU占用率过高以及软件实现细节等。
如果通话双方在一个国家内部,总的延迟应当小于300毫秒,如果通过webrtc打长距离的跨国电话,总的延迟可能高达600毫秒。

 

More...

WebRTC源码分析-线程基础之线程基本功能

2019-11-22 15:13:08

前言

如之前的总述文章所述,rtc::Thread类封装了WebRTC中线程的一般功能,比如设置线程名称,启动线程执行用户代码,线程的join,sleep,run,stop等方法;同时也提供了线程内部的消息循环,以及线程之间以同步、异步方式投递消息,同步方式在目标线程执行方法并返回结果等线程之间交互的方式;另外,每个线程均持有SocketServer类成员对象,该类实现了IO多路复用功能。

本文将针对rtc::Thread类所提供的基础线程功能来进行介绍,Thread类在rtc_base目录下的thread.h中声明,如下(删除了其他非线程基础功能的API,其他的API将于另外的文章中分析):

 

More...

WebRTC源码分析-线程基础概述

2019-11-22 15:12:12
WebRTC实现了跨平台(Windows,MacOS,Linux,IOS,Android)的线程类rtc::Thread,WebRTC内部的network_thread,worker_thread,signaling_thread均是该类的实例。该类的源码位于rtc_base目录下的thread.h与thread.cc中。

基础功能

rtc:: Thread及其相关类,ThreadManager、MessageQueue,Runnable等等一起提供了如下的基础功能:

  • 线程的管理:通过ThreadManager单例对象,可以管理所有的Thread实例;
  • 线程的常规基本功能:rtc:: Thread提供创建线程对象,设置线程名称,启动线程去执行用户代码;
  • 消息循环,消息投递:rtc:: Thread通过继承MessageQueue类,提供了内部消息循环,并提供了线程间异步,同步投递消息的功能;
  • 跨线程执行方法:提供了跨线程执行方法,并返回执行结果的功能。该功能非常强大,因为WebRTC在某些功能模块的使用上,有要求其必需在指定的线程中才能调用的基本要求,比如音频模块:ADM 的创建必须要在 WebRTC 的 worker thread 中进行;
  • 多路分离器:通过持有SocketServer对象,实现了多路分离器的功能,能处理网络IO;
 

More...

WebRTC加深理解 - 会话流程

2019-11-22 15:08:33

基于ios native api自己写客户端得出的大概流程,WebRTC的API接口和例子都是oc版本,因为我最讨厌最恶心的语言就是oc,所以我使用swift来编写客户端。我本身不是搞ios开发的,以前稍微用过oc,至于swift前段时间看过一点,现学现卖,就是转换oc的过程实在是折磨死我了。

音视频客户端会话的整体流程
WebRTC主要是客户端技术,尽量使用p2p点对点流媒体传输。

 

More...

last
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
next
  • 分类目录

    • WebRTC概念与基础 (225)
    • WebRTC项目与应用 (33)
    • WebRTC教程资料 (38)
    • WebRTC开发资源 (13)
    • WebRTC源码分析 (12)
    • WebRTC服务端开发 (23)
    • WebRTC网络与通信 (26)
    • WebRTC编码与解码 (15)
    • WebRTC问题与缺陷 (2)
    • WebRTC-Androd端开发 (2)
    • WebRTC-RFC文档 (1)
  • 最新文章

    • 音视频相关的书籍,多媒体技术
    • SFU级联解决方案——Jitsi
    • SFU级联解决方案——Licode
    • Janus源码分析(6)——Streaming分析
    • janus Streaming插件推流指南
    • 流媒体服务器 
    • WebRTC+libwebsockets+Janus的秒开实践
    • 基于WebRTC的直播CDN
    • 不需要SFU实现WebRTC联播实践  
    • webrtc 开启Simulcast功能
    • Migrating your native/mobile application to Unified Plan/WebRTC 1.0 API
    • WebRTC源码分析rfc4588 RTP重传有效载荷格式
    • WebRTC网关服务器搭建:开源技术 vs 自行研发
    • WebRTC网关服务器搭建:开源技术 vs 自行研发
    • 自研WebRTC网关服务器架构的实践之路
    • WEBRTC三种类型(Mesh、MCU 和 SFU)的多方通信架构  
    • janus的videoroom插件
    • WebRTC+libwebsockets+Janus的秒开实践
    • Janus源码分析(7)——videoroom分析
    • Janus源码分析(5)——echotest分析
    • Janus源码分析(4)——信令交互过程
    • WebRTC+libwebsockets+Janus的秒开实践
    • 前向纠错码(FEC)的RTP荷载格式
    • WebRTC 开发实践:从一对一通话到多人会议
    • Distord如何使用WebRTC处理250万用户同时进行的音频交流
    • 了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化
    • 基于WebRTC技术的多人音视频解决方案
    • 谁是最好的WebRTC SFU?
    • WebRTC媒体服务器
    • 使用Janus作为对讲服务器的后台框架和业务流程
  • 链接

    • WebRTC官网
    • xSky 实验室
    • 树莓派技术圈
    • 声网 Agora
    • WebRTC中文网
    • web性能权威指南
    • WebRTC官网
    • webrtc在线源码
    • webrtc在线源码
    • webrtc
    • webrtc示例
    • LiveVideoStack
    • 雷霄骅(leixiaohua1020)的专栏
  • 开源项目


Powered By xblog Copyright 0xsky.com All Rights Reserved.

Copyright WebRTC.ren All Rights Reserved.