webrtc
980205
这个作者很懒,什么都没留下…
展开
-
FEC的RED
RED(Random Early Detection,随机早期丢包检测)是一种与 FEC 相关的技术,它通常与 FEC 结合使用以提高网络上的实时音视频传输质量。RED 不直接进行纠错,而是通过在发现网络拥塞或者丢包的早期阶段主动丢弃部分数据包,从而降低网络拥塞的程度,减少后续数据包的丢失。这种行为能够帮助减少丢包并提高整体的传输质量。原创 2023-11-14 19:57:28 · 109 阅读 · 0 评论 -
解析rtp包h264数据
解析rtp包h264数据原创 2023-10-30 18:47:15 · 255 阅读 · 0 评论 -
DTLS 检测数据被第三方篡改的方式
接收方在接收到数据后,使用相同的密钥和加密算法计算出一个新的MAC,并将其与接收到的MAC进行比较。:Client 给出自己能支持的加密套件 CipherSuites,Server 收到后选择自己能支持的回应一个,比如 TLS_ECDHE_ ECDSA_WITH_AES_256_CBC_SHA (0xc014),加密套件确定了证书的类型、密钥生成算法、摘要算法等。接收方会检查接收到的数据包的序列号,如果发现序列号不符合预期的顺序,就会怀疑数据包被篡改。:双方的随机数,参与到生成 MasterSecret。原创 2023-10-26 21:37:05 · 205 阅读 · 0 评论 -
BBR算法的几种状态
STARTUP(启动阶段): 在启动阶段,BBR算法尝试找到网络的带宽容量。PROBE_RTT(往返时延探测阶段): 在带宽探测阶段之后,BBR算法进入往返时延探测阶段。PROBE_BW(带宽探测阶段): 在排空阶段完成后,BBR算法进入带宽探测阶段。在这个阶段,它会逐渐增加发送速率,并测量网络的可用带宽。BBR算法会监测延迟和数据包丢失情况,以确定网络的真实带宽容量,并调整发送速率以接近该容量。它会尽力排空网络中的所有数据包,以确保不会在下一个阶段过度冲击网络,导致延迟增加或丢包情况发生。原创 2023-10-22 15:42:16 · 207 阅读 · 0 评论 -
webrtc gcc算法(1)
在最近的WebRTC实现中, GCC把它的两种拥塞控制算法都移到了发送端来实现, 但是两种算法本身并没有改变,只是在发送端需要计算延迟, 因而需要一些额外的feedback信息, 为此WebRTC扩展了RTCP协议, 其中最主要的是增加了Transport-CC Feedback,该包携带了接收端接收到的每个媒体包的到达时间。基于丢包的拥塞控制比较简单, 其基本思想是根据丢包的多少来判断网络的拥塞程度, 丢包越多则认为网络越拥塞, 那么我们就要降低发送速率来缓解网络拥塞;原创 2023-10-16 22:26:35 · 666 阅读 · 1 评论 -
WebRTC REMB 算法
它基于接收端对视频缓存情况和网络状况的监测,动态地估计可用的带宽,并向发送端发送估计值,使得发送端可以根据估计值适当地调整视频的码率和分辨率。在实时通信中,网络带宽的变化经常会影响视频的质量和流畅度。发送端根据估计值调整码率和分辨率:发送端会根据接收端发来的带宽估计值,适当地调整视频的码率和分辨率,以适应当前的网络带宽。发送端发送带宽估计值:当缓存情况较好时,接收端会向发送端发送一个带宽估计值,告诉发送端当前的可用带宽。接收端监测缓存:接收端会定期监测自己的视频缓存情况,包括缓存的大小、缓存时间等指标。原创 2023-10-16 21:49:41 · 421 阅读 · 0 评论 -
WebRTC AIMD算法用处
在WebRTC中,发送端会周期性地向接收端发送数据,并根据接收端的反馈信息来调整自身的发送码率。但如果网络发生拥塞,接收端无法及时接收和处理数据,发送端会收到丢包的信号,并相应地降低发送码率。通过AIMD算法,WebRTC能够根据网络状况动态调整发送端的码率,从而在不同的网络环境下保持音视频传输的质量和稳定性。在WebRTC中,码率控制的目标是优化音视频传输的质量和稳定性,以适应网络状况的变化。具体而言,AIMD算法通过监测网络的拥塞情况,动态调整发送端的码率,以实现网络带宽的有效利用和拥塞控制。原创 2023-10-15 12:18:16 · 393 阅读 · 0 评论 -
OPUS 中DTX的作用
需要注意的是,尽管DTX技术可以减少编码器的功耗和网络带宽占用,但它可能会影响音频的质量,特别是在一些高噪声环境下。在传统的音频编码中,即使无声部分也会被编码并传输,这可能导致无效的音频数据传输,消耗更多的带宽和功耗。而DTX则可以有效解决这个问题。OPUS DTX是OPUS编解码器中的一种技术,通过语音活动检测实现了不连续传输,从而在保持音频通信质量的前提下,最大程度地节约编码器的功耗和网络带宽。OPUS DTX是OPUS编解码器中的一种技术,用于在音频通信中降低编码器的功耗和网络带宽占用。原创 2023-10-15 11:07:00 · 449 阅读 · 0 评论 -
OPUS解码器PLC
需要注意的是,PLC技术虽然可以在一定程度上改善丢包带来的音频中断问题,但其生成的补偿音频并非原始音频数据,因此无法完全还原丢失的部分。在音频通信中,网络丢包是常见的情况。当网络丢失一些音频数据包时,接收端可能无法正常解码并播放这些丢失的音频信号,导致声音中断或质量下降。当OPUS解码器检测到音频数据包丢失时,它会自动使用PLC技术进行处理,生成适当的补偿音频数据,以确保音频的连续性和质量。OPUS解码器支持PLC技术,可以在网络丢包情况下生成合理的补偿音频数据,以提供连续的音频播放和改善音频质量。原创 2023-10-15 11:02:38 · 372 阅读 · 0 评论 -
webrtc opus 音频编码支持SILK和CELT模式
需要注意的是,SILK CELT是一个相对较老的音频编码方案,在一些最新的音频编解码器中可能并不常见。当前WebRTC更常用的音频编码方案是Opus编码器,它已经集成了SILK和CELT的功能,并提供了更好的音频质量和传输效果。它提供高质量的音频传输,并且适用于各种比特率和带宽条件。通过SILK CELT,可以在不同的比特率范围内实现音频编解码,从低比特率到高比特率都能够得到较好的音频质量和传输效果。SILK CELT是将SILK和CELT编解码器结合在一起的混合音频编码方案,用于实现高质量的音频传输。原创 2023-10-15 10:46:32 · 497 阅读 · 0 评论 -
ice协议
webrtc ice的协议原创 2022-07-30 22:27:15 · 291 阅读 · 0 评论 -
webrtc bitrate_controller 流程
thread.ccvoid Thread::ReceiveSends() { ReceiveSendsFromThread(NULL);}void Thread::ReceiveSendsFromThread(const Thread* source) { // Receive a sent message. Cleanup scenarios: // - thread sending exits: We don't allow this, since thread can exit原创 2022-01-05 22:00:21 · 1591 阅读 · 0 评论 -
webrtc 音频发送
线程启动:platform_thread.ccvoid PlatformThread::Run() { if (!name_.empty()) rtc::SetCurrentThreadName(name_.c_str()); do { // The interface contract of Start/Stop is that for a successful call to // Start, there should be at least one call t原创 2022-01-02 15:14:23 · 1196 阅读 · 0 评论 -
WebRTC源码分析——视频流水线建立(上)
WebRTC源码分析——视频流水线建立(上)好未来技术团队发布于2020-05-081. 引言常见的音视频会话中,一端将本地的音视频数据传输给对端将至少经历3个步骤:采集->编码->传输,将数据从采集模块到发送模块的流动称为音视频数据的流水线。接下来几篇文章中将以视频数据为本来讨WebRTC是如何建立此视频流水线的:数据如何采集,如何从采集模块一步步流向网络发送模块,最终传输出去的。2. 采集视频采集模块是数据流水线的起始点,负责从视频源采集原始视频帧,推送给流水线的下一站.原创 2021-06-07 15:01:32 · 289 阅读 · 0 评论 -
WebRTC SDP 详解和剖析
WebRTC SDP 详解和剖析原创网络通信/物联网作者:VideoCloudTech时间:2020-12-08 15:25:1010550WebRTC 是 Web Real-Time Communication,即网页实时通信的缩写,是 RTC 协议的一种 Web 实现,项目由 Google 开源,并和 IETF 和 W3C 制定了行业标准。在国内 WebRTC 已经获得了越来越多厂商的支持,应用前景变得更加广阔,所以我们也开设专栏,分享阿里云内部的 WebRTC 研究工作。本篇...转载 2021-05-09 10:26:06 · 1481 阅读 · 1 评论 -
webrtc android 打包成aar
我的环境:webrtc最新的, ubuntu20.04, python2.7webrtc android 打包成aar,执行 tools_webrtc/android/release_aar.py --verbose --build-dir out/aar_release 会出现下面一些错误:Traceback (most recent call last): File "tools_webrtc/android/release_aar.py", line 31, in <module.原创 2021-04-30 13:25:01 · 869 阅读 · 6 评论 -
WebRTC 音频算法
WebRTC 音频算法 附完整C代码WebRTC提供一套音频处理引擎,包含以下算法:AGC自动增益控制(Automatic Gain Control)ANS噪音抑制(Automatic Noise Suppression)AEC是声学回声消除(Acoustic Echo Canceller for Mobile)VAD是静音检测(Voice Activity Detection)这是一套非常经典,以及值得细细品阅学习的音频算法资源。在前面分享的博文,也有提及音频相关知识点。转载 2021-04-09 14:19:26 · 705 阅读 · 0 评论 -
qt 添加库
win32: LIBS += -ladvapi32 -lcomdlg32 -ldbghelp -ldnsapi -lgdi32 -lmsimg32 -lamstrmid -lWs2_32 -lwmcodecdspuuid -lsecur32 -liphlpapi -lcrypt32 -ldmoguids -lamstrmid -lmsdmo -ld3d11 -ldxgi -lwinmm -lOpenGL32 -lStrmiids -lcrypt32 -lcryptdll原创 2021-03-17 22:25:16 · 476 阅读 · 0 评论 -
windows 提取webrtc的所有头文件
echo off:: 定义源目录set sourcePath=.\src::定义目标路径set resulePath=.\includexcopy %sourcePath%\*.h %resulePath%\ /s /e /c /y /h /rpause此方式还会保留之前的目录结构原创 2021-03-15 10:41:31 · 570 阅读 · 0 评论 -
webrtc示例peerconnection_client&server
1,使用执行peerconnection_server后,服务器默认会监听本地8888端口;执行peerconnection_client,界面会转到现有的用户列表(暂时为空),服务器那边会打印出有新用户连接的消息;再执行一个peerconnection_client,连接到服务器,此时用户列表里就有先前的client,而先前连接的client的用户列表里则会出现新连接上的client;双击client列表里的项,就可以发起与他的连接;之后页面出现两个视频窗口——对方的视频(中)和本地的视频(右下...转载 2020-10-09 17:08:24 · 1361 阅读 · 0 评论 -
licode服务端总结
1.系统架构(来源:https://github.com/lynckia/licode/issues/335)2.nuve模块(修改:https://blog.csdn.net/u012908515/article/details/53940787)app.post('/rooms', roomsResource.createRoom);app.get('/rooms', roomsResource.represent);app.get('/rooms/:room'.转载 2020-10-02 11:54:03 · 486 阅读 · 0 评论 -
licode 学习总结
licode 学习总结参考:licode编译以及源码分析:https://www.cnblogs.com/limedia/category/1350712.htmlLicode—基于webrtc的SFU/MCU实现:https://www.jianshu.com/p/dcc5ba06b49fLicode架构分析:https://blog.csdn.net/haitian403/article/details/89136984#6__42licode 的singlepc 模式是怎么回事?:转载 2020-10-02 11:51:56 · 3693 阅读 · 0 评论