webrtc/speex
一叶知秋dong
好记性不如烂笔头,记录学习和工作中的一些东东。
展开
-
发送调节器 PacedSender代码走读
一、简介1.1、PacedSender(步长发送器) 无线网络最害怕的一个是干扰,一个是突然的大数据量冲击。视频编码后分关键帧I帧和非关键帧P帧,I帧一般是P帧的几十倍大小,比如一个I帧200k,一个p帧10k。如果不加处理的有视频帧就发,就会造成很多瞬间的传输峰值,对网络造成冲击。pacedsender的作用就是平缓突发的数据流,让发送数据流整体平坦,避免对无线网络造成冲击。...原创 2019-10-31 20:56:22 · 1622 阅读 · 0 评论 -
WebRTC手记
一、协议和流程WebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能。而且WebRTC项目是开源的,我们可以借助WebRTC源码快速构建自己的音视频对聊功能。无论是使用前端JS的WebRTC API接口,还是在WebRTC源码上构建自己的对聊框架,都需要遵循以下执行流程:上述序列中,WebRTC并不提供St...转载 2019-10-31 17:01:04 · 634 阅读 · 0 评论 -
webRTC是怎么应对网络变化的
在视频通信的技术领域WebRTC已成为主流的技术标准,WebRTC包涵了诸多优秀的技术,譬如:音频数字信号处理技术(AEC, NS, AGC)、编解码技术、实时传输技术、P2P技术等,这些技术目的都是为了实现更好实时音视频方案。但是在高分辨率视频通信过程中,通信时延、图像质量下降和丢包卡顿是经常发生的事,甚至在WiFi环境下,一次视频重发的网络风暴可以引起WiFi网络间歇性中断,通信延迟和图像质量...转载 2019-04-01 14:47:29 · 1366 阅读 · 0 评论 -
WebRTC源码分析:音频模块结构分析
一、概要介绍WebRTC的音频处理流程,见下图:webRTC将音频会话抽象为一个通道Channel,譬如A与B进行音频通话,则A需要建立一个Channel与B进行音频数据传输。上图中有三个Channel,每个Channel包含编解码和RTP/RTCP发送功能。以一个Channel而言,应用程序中将包含三个活动线程,录音线程,音频接收线程和播放线程。1)录音线程:转载 2016-06-22 16:53:48 · 2018 阅读 · 0 评论 -
WebRtc VoiceEngine代码解析
WebRtc中VoiceEngine可以完成大部分的VOIP相关人物,包括采集、自动增益、噪声消除、回声抑制、编解码、RTP传输。下边我们通过代码来解析Voe中处理流程;创建VoiceEngine和VoEBase[cpp]VoiceEngine* _vePtr = VoiceEngine::Create(); //转载 2016-06-22 16:56:19 · 1366 阅读 · 0 评论 -
WebRTC源代码探索之旅——多线程篇-1
转自:http://blog.csdn.net/kenny_zh/article/details/38580919随着CPU频率接近物理极限,多芯片、多核几乎成为了加速软件运行速度的唯一选择。与之相应地,多线程、异步编程以及并发编程成为了软件开发人员的必修课。因此,各种各样的开发框架不断涌现。在C++领域,boost的thread库等优秀的多线程框架也是其中的代表。特别是针对s转载 2016-06-23 17:19:43 · 932 阅读 · 0 评论 -
WebRTC源代码探索之旅——多线程篇-2
2 crticalsection criticalsection.h/criticalsection.cc文件中包含了3个类talk_base::CriticalSection、talk_base::CritScope和talk_base::TryCritScope。这3个类对于有多线程编程经验的Windows开发人员来说都是非常容易理解的。基本上就是对Win32 Critical转载 2016-06-23 17:20:54 · 626 阅读 · 0 评论 -
WebRTC源代码探索之旅——多线程篇-3
3 messagehandler messagehandler.h/messagehandler.cc文件仅仅定义了talk_base::MessageHandler类,和一个模板工具类talk_base::FunctorMessageHandler类。 3.1 talk_base::MessageHandler talk_base::Message转载 2016-06-23 17:22:03 · 590 阅读 · 0 评论 -
WebRTC源代码探索之旅——多线程篇-4
4 messagequeue messagequeue.h/messagequeue.cc文件是多路信号分离器的重要组成部分。它实现了消息一个完整地消息队列,该队列包括立即执行消息队列、延迟执行消息队列和具有优先级的消息队列。其中,talk_base::MessageQueue类也是talk_base::Thread类的基类。所以,所有的WebRTC的线程都是支持消息队列的。转载 2016-06-23 17:23:49 · 1842 阅读 · 0 评论 -
WebRTC源代码探索之旅——多线程篇-5.1
5 physicalsocketserver physicalsocketserver.h/physicalsocketserver.cc文件实现了一个基本的多路信号分离器。这个多路信号分离器的实现代码可以横跨Windows、Linux、OSX、Android、ios等平台,非常复杂。其实在/trunk/talk/base目录下,还有多个SocketServer的实现,从这些Soc转载 2016-06-23 17:27:49 · 1383 阅读 · 0 评论 -
WebRTC源代码探索之旅——多线程篇-6
6 thread thread.h/thread.cc文件实现了WebRTC对系统线程的封装。它主要包括3个类talk_base::ThreadManager类、talk_base::Thread类和talk_base::Runnalbe类;以及几个工具类talk_base::AutoThread类、talk_base::ComThread类和talk_base::SocketSe转载 2016-06-23 17:29:32 · 1871 阅读 · 0 评论 -
WebRTC源代码探索之旅——多线程篇-7
7 实际使用WebRTC的线程模型 在这一章节我将实际演示如何将WebRTC的/trunk/talk/base目录下的所有文件编译成静态库。并且在这基础上编译运行2个小程序,以观察整个线程模型的调用关系。这将能够很好地帮助读者理解各个模块是如何协同工作的。 7.1 编译静态库 正如在本文开头时提到的,这一节的内容可能是大家最感兴趣的,但也是我不得不和转载 2016-06-23 17:31:36 · 1070 阅读 · 0 评论 -
WebRTC源代码探索之旅——多线程篇-8
转自:http://blog.csdn.net/kenny_zh/article/category/24878498 我们所学到Linux API 通过详尽地阅读WebRTC的线程模型代码,我们学到了以下这些Linux API是如何被实际应用的:pthread_mutex_init、pthread_mutex_destroy、pthrea_mutex_lock、转载 2016-06-23 17:32:35 · 631 阅读 · 0 评论 -
webrtc 源码目录分析
目录结构分析apiWebRTC 接口层。包括 audio/stats/task_queue/transport/video/mediaStream/peerconnection/rtp/sctp 等webrtc 各模块的接口。audio存放音频网络逻辑层相关的代码。包括receive stream,send stream, audio state,audio transport...原创 2019-07-14 15:59:13 · 1006 阅读 · 0 评论 -
webrtc 的回声抵消(aec、aecm)算法简介
webrtc 的回声抵消(aec、aecm)算法主要包括以下几个重要模块:1.回声时延估计 2.NLMS(归一化最小均方自适应算法) 3.NLP(非线性滤波) 4.CNG(舒适噪声产生),一般经典aec算法还应包括双端检测(DT)。考虑到webrtc使用的NLMS、NLP和CNG都属于经典算法范畴,故只做简略介绍,本文重点介绍webrtc的回声时延估计算法,这也是webrtc回声抵消算法区别一般算转载 2016-06-22 16:47:12 · 1577 阅读 · 0 评论 -
Ubuntu 14.04编译WebRTC For Android代码
最近基于Google开源的WebRTC项目做了一款音视频聊天的即时通信项目,期间在下载WebRTC代码时就碰到了一些问题,在此以作记录,也希望能够帮助到正在下载编译WebRTC代码中碰到类似问题的童鞋们。1). 准备环境1. Ubuntu 14.04 LTS 系统2. 准备一个稳定的速度还可以的VPN 或者 VPS ,这个很重要,大家都懂,大部分下载代码失败都是因为访问go转载 2016-06-24 11:27:50 · 1303 阅读 · 0 评论 -
WebRTC源码分析2图像缩放与颜色空间转换
所属模块名称:webrtc_vplib一、图像缩放1、接口路径:webrtc\trunk\src\common_video\vplib\main\interface\interpolator.h2、特点:支持缩放方法:双线性差值支持源图像的格式为I420,YUV,YV12通过封装的类interpolator的接口函数提供调用3、调用接口:a、参数设置 W转载 2012-12-26 11:58:35 · 2675 阅读 · 0 评论 -
WebRTC Native APIs[翻译]
最近一直在研究WebRTC,本篇是WebRTC的本地API文档,Web developer了解一下也是有好处的,了解了API的实现原理使用起来才会更顺手。决定翻译是因为这篇字不多,翻一下加深自己的理解,如果对别人有帮助那就更好了。第一次翻译东西拿出来,如果有错误还望指正,英文好一点的还是移步英文原文吧:http://www.webrtc.org/reference/native-apisb转载 2012-12-26 11:47:53 · 2084 阅读 · 0 评论 -
WebRTC源码分析1视频显示
来源:http://blog.csdn.net/lezhiyongWebRTC是google一项在浏览器内部进行实时视频和音频通信的技术,其他关于WebRTC具体介绍和来源,大家google一下基本能知道,Webrtc里面的系统架构清晰精妙,代码风格良好,如此好的东西能开源出来,无论是学习还是使用,我们受益匪浅。 Webrtc的底层的结构相当清晰,就视频来说分视频采集、视频处理、视转载 2012-12-26 11:57:15 · 2539 阅读 · 0 评论 -
WebRTC源码分析3_jpeg编解码
所属模块:webrtc_jpeg1、接口路径:webrtc\trunk\src\common_video\jpeg\main\interface\jpeg.h2、特点 底层调用三方库:jpeglib 支持的未压缩图像格式:I4203、使用方法:将jpeglib封装成 JpegDecoder和JpegEncoder 两个类使用JpegEncoder目前只支持输出到文件(转载 2012-12-26 11:59:05 · 1154 阅读 · 0 评论 -
WebRTC源码分析4_AVI文件读写
接口路径:webrtc\trunk\src\modules\media_file\source\avi_file.h代码模块:media_file对avi文件的存储方式,可以google了解一下,或参考《AVI文件格式图表描述》点击打开链接先对webRTC 的avi文件读写使用到几个结构体注释一下:[cpp] view plaincopy转载 2012-12-26 11:59:51 · 1686 阅读 · 0 评论 -
WebRTC音视频引擎研究(1)--整体架构分析
1、WebRTC目的 WebRTC(Web Real-Time Communication)项目的最终目的主要是让Web开发者能够基于浏览器(Chrome\FireFox\...)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也无需关注多媒体的数字信号处理过程,只需编写简单的Javascript程序即可实现,W3C等组织正在制定Jav转载 2012-12-26 11:36:12 · 2515 阅读 · 0 评论 -
Opus codec
概览Opus开源免专利费音频编解码器正式成为IETF标准(RFC6716)。Opus 主要是结合Skype 早期网路通话的SILK 语音编解码器与Xiph.org 的CELT 音乐编解码器而成,设计传输网络语音和音频流,可用于VOIP,视频会议、游戏内聊天等应用,其品质被认为优于现有的私有音频编解码器。Opus由 Xiph.Org、Mozilla、微软、Broadcom、Octasic原创 2012-12-28 10:46:41 · 8143 阅读 · 0 评论 -
webrtc--AudioProcessing的使用
1.AudioProcessing的实例化和配置: AudioProcessing* apm = AudioProcessing::Create(0);apm->level_estimator()->Enable(true);//启用重试次数估计组件apm->echo_cancellation()->Enable(true);//启用回声消除组件apm->ec原创 2013-01-04 18:27:32 · 7284 阅读 · 4 评论 -
windows 下编译webrtc
网上搜了一下,一大堆,但是大部分在成功后简单的表述,真正遇到了问题后都帮不上忙。我把自己编译的过程描述下,可能你遇到的问题我也没有遇到,那就也帮不上忙了,呵呵。1. 下载安装svn客户端,例如TortoiseSVN 安装完后,svn执行目录自动被添加入系统环境变量PATH中。2. 下载并安装msysgit和Tortoisegit转载 2013-01-04 17:22:31 · 1735 阅读 · 0 评论 -
build WebRTC for android
首先,其实webrtc的官网上有如何编译的指导:http://www.webrtc.org/reference/getting-startedOS: Ubuntu 10 x641.安装svn和gitsudo apt-get install subversionsudo apt-get install git-core2. 安装Depo转载 2012-12-28 11:59:22 · 2148 阅读 · 0 评论 -
Speex手册----Speex编/解码API的使用(libspeex) 中文翻译
前言:Speex官网:http://speex.org/ 可以再Documentation下找到PDF版或HTML OL版的英文手册。可能会由于英文技能的匮乏或语音解码领域的不熟悉会有翻译错误,所以每段我都会付上英文原段落,也望各位发现后能够不吝赐教,大家共同进步。 PS: 1) 如需转载,注明出处,不胜感激; 2) 如侵您版权,及时通知,速删之 5.1 编码转载 2014-01-27 10:10:19 · 1619 阅读 · 0 评论 -
WebRTC结构
简介 WebRTC是一项在浏览器内部进行实时视频和音频通信的技术,是谷歌2010年以6820万美元收购收购Global IT Solutions公司而获得一项技术。[1] WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。转载 2016-06-24 10:34:45 · 1050 阅读 · 0 评论 -
Android之WebRTC介绍
原文链接 : Introduction to WebRTC on Android原文作者 : Dag-Inge Aas译文出自 : appear.in译者 : DorisMinmin状态 :完成WebRTC被誉为是web长期开源开发的一个新启元,是近年来web开发的最重要创新。WebRTC允许Web开发者在其web应用中添加视频聊天或者点对点数据传输,不需要复杂的代码或者昂贵的转载 2016-06-24 11:01:37 · 3036 阅读 · 0 评论 -
WebRTC音视频引擎研究(2)--VoiceEngine音频编解码器数据结构以及参数设置
1、VoiceEngine Codec数据结构 WebRTC中,用一个结构体struct CodecInst表示特定的音频编解码器对象:[cpp] view plaincopystruct CodecInst { int pltype; //payload type负载类型 ch转载 2012-12-26 11:37:28 · 2460 阅读 · 0 评论