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

深入浅出 WebRTC AEC(声学回声消除)

2021-04-25 23:46:17

WebRTC AEC 存在的问题:

(1)线性部分收敛时间较慢,固定步长的 NLMS 算法对线性部分回声的估计欠佳;
(2)线性部分滤波器阶数默认为 32 阶,默认覆盖延时 132ms,对移动端延时较大设备支持不是很好,大延时检测部分介入较慢,且存在误调导致非因果回声的风险;
(3)基于相干性的帧状态依赖严格的固定门限,存在一定程度的误判,如果再去指导非线性部分抑制系数的调节,会带来比较严重的双讲抑制。

优化的方向:
(1)算法上可以通过学习 speex 和 AEC3 的线性部分,改善当前线性滤波效果;
(2)算法上可以优化延时调整策略,工程上可以新增参数配置下发等工程手段解决一些设备的延时问题;
(3)另外,有一些新的思路也是值得我们尝试的,如开头提到的,既然回声也可以是视为噪声,那么能否用降噪的思路做回声消除呢,答案是可以的。

「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

More...

游戏实时语音解决方案是怎么炼成的

2021-04-25 23:20:53

在棋牌游戏中,一起打牌的玩家有吹牛唠叨的社交需求。在MMORPG竞技游戏中,一起并肩作战的队友有团队协同的通讯需求。实时游戏语音是网络游戏的标配,这早已经是业界共识。

 

现在的问题是,不管是自行研发实时游戏语音方案,还是采用第三方游戏实时语音SDK,都必须要先为游戏量身订造一套解决方案。这套解决方案必须是和游戏本身的用户需求、考量因素、及应用场景紧密结合的。把通用的语音视频通讯方案直接拿来给游戏用是不适合的。

今天,我们就一起来深度聊一聊,怎么针对游戏的应用场景订造游戏实时语音解决方案。

 

人声 or 音乐声

人声场景是指语音通讯中大部分或者全部时间都是人声在说话的场景。典型的例子包括Skype网络电话、和微信语音。音乐声场景是指语音通讯中有相当一部分内容是涉及到音乐和表演等娱乐环节的场景。典型的例子包括花椒直播的连麦K歌海选赛。

游戏实时语音的场景基本是人声在说话。现在,让我们来了解一下人声语音的特点。人类的听力感知范围是从20Hz到20kHz。这个频宽范围被划分成四个频宽类别:窄带、宽带、超宽带和全带。

More...

WebRTC研究:WebRTC M89关键更新

2021-03-18 09:14:14

最近更新了M89代码,看了下Release Notes,有几个需要关心的地方。

Plan B SDP语法后续处理计划

WebRTC 1.0已经正式成为W3C标准,推荐使用标准SDP格式:Unified Plan,主流浏览器基本都支持Unified Plan SDP。Plan B SDP后续将会不赞成使用,直到移除掉。官方后续时间计划如下:

  • M89 (2021.02):在开发者控制台增加不赞成使用警告
  • M93 (2021.08): Plan B被移除掉, 但是增加了选项,可以延长移除的截止日期
  • M96 (2022.01): 不再允许延长截止日期,Plan B将彻底移除

rtp payload类型增加新范围

M89中RTP payload类型增加了新的值范围:35-65。

首先根据RFC3551,回顾下目前用于标准音视频编码器的RTP payload类型。

音频编码器的payload类型

More...

WebRTC Native 源码导读(十五):RTP H.264 封装与解封装

2021-02-26 00:25:28

再谈 RTP 协议

我们首先了解一下 RTP H.264 相关的 RFC,下面的内容是对两篇 RFC 的总结:RTP: A Transport Protocol for Real-Time Applications, RTP Payload Format for H.264 Video。

RTP 包结构

包头有固定 12 个字节部分,以及可选的 csrc 和 ext 数据(在为 janus-pp-rec 增加视频旋正功能一文中有更详细的介绍):

More...

提纲挈领webrtc之vad检测

2021-02-22 01:47:47

顾名思义,VAD(Voice Activity Detection)算法的作用是检测是否是人的语音,它的使用

范围极广,降噪,语音识别等领域都需要有vad检测。vad检测有很多方法,这里我们之介绍一

下webrtc里面的vad检测。

  webrtc的vad检测原理是根据人声的频谱范围,把输入的频谱分成六个子带

(80Hz~250Hz,250Hz~500Hz,500Hz~1K,1K~2K,2K~3K,3K~4K。) 分别计算这六个子带的、

能量。然后使用高斯模型的概率密度函数做运算,得出一个对数似然比函数。对数似然比分为

全局和局部,全局是六个子带之加权之和,而局部是指每一个子带则是局部,所以语音判决会

先判断子带,子带判断没有时会判断全局,只要有一方过了,就算有语音。

More...

Medooze RTP录制为MP4 源码解析 

2021-02-21 07:35:46

一、概述

Medooze作为WebRTC流媒体服务器,实现了将WebRTC/RTP流的录制为文件,以及将文件转换为RTP流。

mp4recorder.cpp 包含2个类:MP4Track和MP4Recorder,下面一个个分析。

二、MP4Recoder

 

  • MediaFrame::Listener 声明接口方法: onMediaFrame。继承这个纯虚类,表达MP4Recorder可以使用onMediaFrame,接收Frame流。
  • RecorderControl 声明接口方法: Create Record Stop Close GetType。继承这个纯虚类,表示MP4Recorder拥有这些控制方法。

MP4录制功能由MP4V2库提供支持。

More...

audio语音相关的基础知识-VAD,ASR,AEC,AGC,BF等

2021-02-21 07:16:55

一. VAD

1. 什么是VAD

VAD,也就是语音端点检测技术,是Voice Activity Detection的缩写.

这个技术的主要任务是从带有噪声的语音中准确的定位出语音的开始和结束点,因为语音中含有很长的静音,也就是把静音和实际语音分离开来,因为是语音数据的原始处理,所以VAD是语音信号处理过程的关键技术之一。

语音识别系统在识别或者声学模型训练阶段所遇到的第一个技术就是端点检测,把静音和噪声作为干扰信号从原始数据中去除,并且端点检测对于语音识别系统的性能至关重要。

 

静音抑制,又称语音活动侦测。静音抑制的目的是从声音信号流里识别和消除长时间的静音期,以达到在不降低业务质量的情况下节省话路资源的作用,它是IP电话应用的重要组成部分。静音抑制可以节省宝贵的带宽资源,可以有利于减少用户感觉到的端到端的时延。

 

2. VAD的作用

现在流行的语音识别系统大部分,或者是相当一部分都是基于统计和训练的原理所构建的系统,因此对数据来源和训练环境都是很敏感的。在识别的过程中,经常存在实际语音因背景噪声的干扰而与训练失配的情况,实际这也是造成语音识别系统鲁棒性差的一个根本原因(另一个主要的是无法处理非预期的输入),从而导致识别错误,性能下降。哪怕是两段内容上是完全一致的语音信号,可能由于语速不一样,所以语音信号的时间也不相同,音素之间的时间间隙也就不一样,对于时变而非平稳的语音信号来说,其特征就完全不相同了。有音素之间的间隙,也有静音和语音本身的间隙,为了对数据从时间上进行相对的校准,语音端点检测技术就应运而生了,因此端点检测技术可以决定这种校准的相对精度,使得同一内容的特征更趋于相同,当然,一般情况下是不可能完全相同的。大量研究表明,如果环境是安静的环境,没有太多背景噪声,此时语音识别系统的主要错误来源于端点检测技术不精确。

但在实际应用中,不可能没有背景噪声,另外由于麦克风的录制和信号增益也会带来噪声,所以语音识别系统的错误是由多方面影响的,至少包括:端点检测、特征提取、语音模型、声学模型、解码器等多个方面。

More...

音视频相关的书籍,多媒体技术

2021-01-08 02:16:26

对播放器架构演进、流媒体存储传输、视频编解码标准及图像声音信号处理,既对数学要求较高又与当时全民IT热相结合的专业——(计算机)信息安全,精妙绝伦的数论及密码学。既能应用密码学的知识技能又能和声色并茂的多媒体场景结合起来的信息隐藏和数字水印,音视频技术是互联网品质生活的连接器。连接器”的另一头则连接且聚合着信息论、最优化理论、图形图像学、声学、人类视觉系统等一众根基深厚、源远流长的学派。

-- 多媒体技术

   基础知识方面推荐岗萨雷斯的《数字信号处理》,东南大学的《信息论与编码》;

   编码基础方面推荐Wiley的《THE H.264 ADVANCED VIDEO COMPRESSION STANDARD》或国内毕厚杰老师的《新一代视频压缩编码标准H.264》;

   最新的标准可以看相关的标准文档。

More...

SFU级联解决方案——Jitsi

2020-12-31 06:01:36

部署WebRTC的媒体服务器有两个主要挑战,从一台服务器开始扩展,并且优化参加会议的用户的媒体延迟。尽管简单的碎片化方法像‘将X会议中的所有用户发送到服务器Y’容易实现水平扩展,在用户体验中,媒体延迟是一个关键因素,在这方面,此方法还远远不能达到最优效果。
将视频会议分布在距离用户很近的许多服务器上并且保持相互连接,同时解决了两个问题。本文深度描述了级联SFU存在的问题并且展示了解决方法和遇到的其它问题。

在这里插入图片描述

实时交流的App非常依赖网络环境,例如吞吐量,延迟,丢失。低比特率导致低视频质量,导致了视频音频中的传输延迟更高。丢包可以导致视频跳帧,进而导致‘波浪音’和视频冻结。

由于这些原因,在会议中,在两个端点之间选择最优路径是很重要的。当只有两个参与者时,这很直接—WebRTC使用ICE协议在两端建立连接,交换多媒体。如果可能的话,两端直接连接,不然的话,在少数情况下使用 TURN传递服务器。WebRTC支持分解域名来获得 TURN服务器地址,这使得选择基于DNS的本地 TURN服务器相对简单,例如,使用AWS Route53的布线选项。

然而,当一个视频会议的参与者通过中心媒体服务器来发送时,情况变得更复杂。许多WebRTC服务像Hangouts,appear.in, Slack和meet.jit.si,使用SFU来在参与者人数多于3人时更有效的传递音频视频。

More...

SFU级联解决方案——Licode

2020-12-31 06:00:32

文章目录

    • 1. 引言
    • 2. SFU
      • 2.1 SFU简介
      • 2.2 单SFU问题
        • 2.2.1 人数限制
        • 2.2.2 地理分布,就近接入
      • 2.3 解决方案:级联SFU
        • 2.3.1 解决人数限制
        • 2.3.2 解决地理分布与就近接入问题
    • 3. Licode
    • 4. 基于Licode级联实现
      • 4.1 单节点Docker化
      • 4.2 级联间去加密
      • 4.3 其他级联优化
      • 4.4 全球化
    • 5. 参考资料

 

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
41
42
43
44
45
46
47
next
  • 分类目录

    • WebRTC概念与基础 (252)
    • WebRTC项目与应用 (33)
    • WebRTC教程资料 (38)
    • WebRTC开发资源 (13)
    • WebRTC源码分析 (19)
    • WebRTC服务端开发 (27)
    • WebRTC网络与通信 (43)
    • WebRTC编码与解码 (15)
    • WebRTC问题与缺陷 (2)
    • WebRTC-Androd端开发 (2)
    • WebRTC-RFC文档 (1)
    • WebRTC音频处理 (6)
    • WebRTC-Mediasoup (2)
    • FFMpeg音视频处理 (3)
    • H264编解码基础 (10)
    • openCV相关 (1)
  • 最新文章

    • TensorFlow 中的通信机制 ——Rendezvous(二)gRPC 传输
    • 详解|SRT编码器中Rendezvous模式详解
    • 完整SIP/SDP媒体协商概论-ICE初始offer发送详解
    • 完整SIP/SDP媒体协商概论-ICE初始offer发送详解
    • WebRTC - ICE 过程简述
    • Webrtc delay-base-bwe代码分析(2): InterArrival模块
    • 从janus中学习webrtc的ice简单交换过程
    • WebRTC PeerConnection 建立连接过程介绍
    • P2P技术详解(三):P2P技术之STUN、TURN、ICE详解(转载)
    • WebRTC ICE 状态与提名处理
    • licode服务端总结
    • libnice调用流程分析
    • libnice调用流程分析
    • licode 学习总结
    • Licode—基于webrtc的SFU/MCU实现
    • ncnn_example
    • opencv-rtsp运动检测
    • WebRTC 基于GCC的拥塞控制(上)
    • WebRTC 基于GCC的拥塞控制(下)
    • LearningWebRTC: 拥塞控制LearningWebRTC: 拥塞控制
    • WebRTC入门(三)---- 目录结构
    • WebRTC之带宽控制部分学习(1) ------基本demo的介绍
    • webrtc视频流程
    • webrtc nack实现原理
    • webrtc QOS方法一(NACK实现)
    • webrtc源码之nack&&rtx详解
    • webrtc的rtp重传代码分析
    • webrtc QOS方法一(NACK实现)
    • WebRTC基于TransportCC和Trendline Filter的发送端码率估计(Sendside-BWE)
    • WebRTC中丢包重传NACK实现分析
  • 链接

    • 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.