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

WebRtc libjingle_PeerConnection层(二) CreateOffer

2019-12-28 12:16:48

发起视频通话流程图如下


创建dsp描述符,CreateOffer在流程中位于 OnSignalingMessage(offer)


void CConductor::ConnectToPeer(int peer_id) {

if (peer_connection_.get()) {
LOG(LS_ERROR) <<
"We only support connecting to one peer at a time";
return;
}

if (InitializePeerConnection()) {
peer_connection_->CreateOffer(this, NULL);
}
else {
LOG(LS_ERROR) << "Failed to initialize PeerConnection";
}
}

 

More...

WebRTC 学习笔记(2)--libjingle 部分 (P2P传输)

2019-12-28 12:14:32

说明:此系类的内容都是本人自己对libjingle native API代码的学习总结。其中可能存在不准确甚至是错误的内容。欢迎大家帮忙指出错误。

此文是个人根据WebRTC项目中的libjingle部分总结出来。只代表WebRTC中的libjingle部分的结构,不代表原始的libjingle项目。

 

More...

Libjingle介绍

2019-12-28 12:13:08

国内现在很多语音聊天工具都是基于TURN方式实现的,包括YY、AK等等,这种方式对于服务器的性能要求很高,而且在用户量增大的时候,服务器压力也会越来越大,用户的语音质量也会受到很大影响。而基于P2P方式实现的语聊服务器,就可以极大的避免这种情况的发生,而且用户的语音体验也会非常好。

   通过上文(P2P的原理和常见的实现方式(为libjingle开路))我们知道,因为NAT设备没有固定标准的原因,导致并不能100%的实现P2P,但是根据现在通用的ICE&STUN的方式,P2P的成功率可以达到90%多。前段时间在找使用这种方法实现的成熟库,最后猛然发现libjingle就在那里。
   通过一个多星期的研究,在此记录一下libjingle库的大致情况,如有不妥,希望朋友们可以留言或者邮件(peakflys@gmail.com)指正。

 

More...

WebRTC TURN协议初识及turnserver实践

2019-12-28 11:33:05

WebRTC协议栈

 

More...

WebRTC实时通信协议详解

2019-12-28 11:20:42

这一篇我们来讲一下WebRTC协议,之前我总结过一篇各种网络协议的总结,没看过的朋友建议先看下这篇web知识梳理,有助于加深这篇关于WebRTC的理解。

基本概念

WebRTC是由Google主导的,由一组标准、协议和JavaScript API组成,用于实现浏览器之间(端到端之间)的音频、视频及数据共享。WebRTC不需要安装任何插件,通过简单的JavaScript API就可以使得实时通信变成一种标准功能。

现在各大浏览器以及终端已经逐渐加大对WebRTC技术的支持。下图是webrtc官网给出的现在已经提供支持了的浏览器和平台。

 

More...

webRTC是怎么应对网络变化的

2019-12-28 11:19:45

在视频通信的技术领域WebRTC已成为主流的技术标准,WebRTC包涵了诸多优秀的技术,譬如:音频数字信号处理技术(AEC, NS, AGC)、编解码技术、实时传输技术、P2P技术等,这些技术目的都是为了实现更好实时音视频方案。但是在高分辨率视频通信过程中,通信时延、图像质量下降和丢包卡顿是经常发生的事,甚至在WiFi环境下,一次视频重发的网络风暴可以引起WiFi网络间歇性中断,通信延迟和图像质量之间存在的排斥关系是实时视频过程中的主要矛盾。分析WebRTC是如何解决这个矛盾之前,先来看看我们在在线教育互动的生产环境统计到的视频延迟和人感官的关系,大致如下:

延迟 感官描述
0 ~ 400毫秒 人感觉不到视频在通信过程中的延迟
400 ~ 800毫秒 人能感觉到轻微延迟,但不影响通信互动
800毫秒以上 人能感觉到延迟而且影响通信互动。
也就是说,通信过程中最好将视频延迟控制在800毫秒以内。除了延迟,视频图像质量也是个对人感官产生差异的关键因素,我们以640x480分辨率每秒24帧的H264编码情况下视频码率和人感官之间的关系(这组数据是我们通过小范围线上用户投票打分的数据):

码率 感官描述
800kbps以上 人对视频清晰度满意,感觉不到视频图像中的信息丢失
Phone 人对视频清晰度基本满意,有时能感觉到视频图像中的信息丢失
Pipe 人对视频清晰度不满意,大部分时候无法辨认图像中的细节信息
从上面的描述可以知道视频质量保持在一个可让人接受的质量范围是需要比较大的带宽码率支持的,如果加上控制延迟,则更需要网络有很好速度和稳定性。但是很不幸,我们现阶段的移动网络和家用WiFi并不是我们想象中的那么好,很难做到在实时视频通信中一个让人非常满意的程度。为了解决以上几个问题,WebRTC设计了一套基于延迟和丢包反馈的拥塞机制(GCC)和带宽调节策略来保证延迟、质量和网路速度之间平衡,这是一个持续循环过程,如下图:

 

More...

构建轻量级H.264 WebRTC堆栈

2019-12-25 06:28:03

自WebRTC编解码器战争以缓和告终以来,已经有几年时间了。H.264也已经存在了超过15年,因此很容易掩盖运用中的多种复杂问题。

|pipe| CTO Tim Panton正在研究一个无人机项目,他需要为WebRTC提供一个轻量级H.264堆栈,而他决定自己构建一个。这当然不是我推荐给大多数人的一个运用,但Tim表示,如果不是一个简单的运用,那么这可能是一种启发性的体验。在这篇文章中,Tim一步步地向我们展示了他在努力让视频播放时的发现。除了阅读H.264介绍的RFCs规范之外,还可以通过它获得一个有趣的替换方案!

 

More...

webrtc代码走读十六(Jitter延时的计算)

2019-12-25 06:23:39

一、延时计算原理
1)jitter延时计算公式
JitterDelay由两部分延迟造成:传输大帧引起的延迟和网络噪声引起的延迟。计算公式如下:

JitterDelay = theta[0] * (MaxFS – AvgFS) + [noiseStdDevs * sqrt(varNoise) – noiseStdDevOffset]

该公式详细推导过程,请参见大牛的文章《WebRTC视频接收缓冲区基于KalmanFilter的延迟模型》 

theta[0]:信道传输速率的倒数
MaxFS:自会话开始以来所收到的最大帧大小
AvgFS:表示平均帧大小
noiseStdDevs:表示噪声系数2.33
varNoise:表示噪声方差
noiseStdDevOffset:是噪声扣除常数30

2)jitter延时更新流程

 

More...

webrtc代码走读十五(X264编码FEC弱网效果差问题解析)

2019-12-25 06:19:47

一、问题描述

1)预置条件

1、配置webrtc抗丢包方法为FEC Only。

     启动配置的时候,可以选NACK Only 或FEC Only 或NACK、FEC混合模式。

     为了测试webrtc的X264 FEC抗丢包性能,在启动配置的时候,选择FEC Only模式。

     配置方法请参考:VCMLossProtectionLogic::SetMethod

2、使用Network Emulator Client配置网络丢包模型为随机丢包,随机丢包概率为5%

2)测试用例

1、建立X264编码视频连接,查看视频清晰度及流畅性。

2、建立VP8编码视频连接,查看视频清晰度及流畅性。

3)预期效果

视频无长时间卡顿,至少X264编解码效果要与VP8一致。

 

More...

为WebRTC服务选择H.264的四个理由

2019-12-25 06:17:39

H.264被设定为取代VP8成为WebRTC服务的视频编解码器。

微软上周在他们的Edge开发博客上宣布, Edge的ORTC开始支持H.264/AVC。

· 是的,它是ORTC而不是WebRTC

· 是的,它仅通过运行时标志就可以开启

· 是的,它只在Edge浏览器可用,IE浏览器不行

但话又说回来,这是目前唯一能够在Firefox、Chrome和Edge之间跨浏览器进行视频通话的方法。VP8和VP9至多能让你在Chrome和Firefox之间建立视频通话。

这也是我写这篇文章的原因。Edge在ORTC中对H.264的支持并不多。从更大的视角来看,这甚至谈不上有意义。相比于其他浏览器Edge几乎没有市场份额,那么为什么还要为它花费心思呢?但是这件事仍然标志着一个转折——我们应当问自己:当我们要开发一个基于WebRTC的产品时,我们应该选择什么样的视频编解码器。

去年的时候,这个答案可能是“VP8”。

几个月前,答案可能是“看情况”。

现在,答案将会是“除非必须用VP8,否则就用H.264”。

 

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.