webrtc-internals调试工具

Google 的 Chrome(87 或更高版本)WebRTC 内部工具是一套内置于 Chrome 浏览器中的调试工具;
webrtc-internals 能够查看有关视频和音频轨道、使用的编解码器以及流的一般质量的详细信息。这些知识对于解决音频和视频质量差的问题非常有帮助。
webrtc-internals 还提供有关 WebRTC 调用中使用的网络配置的详细信息,例如 STUN/ TURN服务器和 ICE 候选者。

getUserMedia/getDisplayMedia

  • 调用地址
  • 调用时间
  • 媒体约束
    在这里插入图片描述

RTCPeerConnection 监控信息

在这里插入图片描述

Event

创建一个本地描述
createOffer => createOfferOnSuccess
存入本地描述
setLocalDescription => setLocalDescriptionOnSuccess
存入远端描述
setRemoteDescription => setRemoteDescriptionOnSuccess
添加轨道
transceiverAdded
多个ICE候选通过信令传传输给远程端,以便远程端可以选择最佳的路径来建立点对点(P2P)连接
icecandidate
主要用于在NAT(网络地址转换)和防火墙后面建立端到端的连接

{
// 表示这个候选与哪个媒体流(audio或video)
sdpMid: 0, 
// 表示这个候选在SDP的m-line中的索引位置
sdpMLineIndex: 0
// 候选字符串,包含了候选的类型、优先级、IP地址、端口号等信息
candidate: candidate:3111111111 1 udp 41111111 11.11.11.11 64434 typ relay raddr 0.0.0.0 rport 0 generation 0 ufrag xdAn network-id 3
url: turn:111.111.11.11:1111?transport=udp, relayProtocol: udp
}

iceconnectionstatechange
ICE的连接状态发生变化
MDN_iceconnectionstatechange
MDN_iceConnectionState

  • new: ICE 代理正在收集地址或等待通过调用,或两者)获得远程候选地址
  • checking:ICE 代理已获得一个或多个远程候选,并正在检查本地和远程候选对以尝试找到兼容的匹配,但尚未找到允许建立对等连接的对。候选的收集可能仍在进行中
  • connected:已为连接的所有组件找到可用的本地和远程候选配对,并且已建立连接。收集可能仍在进行中,ICE 代理也可能仍在相互检查候选以寻找更好的连接。
  • completed:ICE 代理已完成候选者的收集,已检查所有对,并已找到所有组件的连接
  • failed:ICE 候选已检查所有候选对,但未能为连接的所有组件找到兼容的匹配项。但是,ICE 代理可能确实为某些组件找到了兼容的连接。
  • disconnected: 检查以确保组件仍处于连接状态 至少一个组件失败RTCPeerConnection。此测试比 和 的测试要求低failed,可能会间歇性触发,并在可靠性较低的网络上或临时断开连接时自动解决。当问题解决后,连接可能会恢复到 状态connected。
  • closed: 该 ICE 代理RTCPeerConnection已关闭并且不再处理请求。

connectionstatechange
PeerConnection的连接状态发生变化
MDN_connectionstatechange
connectionState

  • new: 该连接的ICE传输(RTCIceTransport或对象)中至少RTCDtlsTransport有一个处于该new状态,并且它们都不处于以下状态之一:connecting、checking、failed、disconnected,或者该连接的所有传输都处于该closed状态
  • connecting: 一个或多个ICE传输当前正在建立连接;也就是说,它们iceConnectionState是checking或connected,并且没有传输处于 该failed状态
  • connected: 连接使用的每个ICEconnected传输要么处于正在使用状态(状态或completed),要么处于关闭状态(状态closed);此外,至少一个传输是connected或completed
  • disconnected: 连接的ICE传输中至少有一个处于该disconnected状态,且其他传输均不处于以下状态:failed、connecting或checking
  • failed: 连接上的一个或多个ICEfailed传输处于该状态
  • closed: RTCPeerConnection已关闭

tabls

outbound-rtp(kind=audio)
// 编码器
[codec]	opus (111, minptime=10;useinbandfec=1)
// 发送总数据包
packetsSent	1009767
// 每秒发送数据包数量
[packetsSent/s]   50.41123456789
// 发送总字节数量
bytesSent     749670966
// 每秒发送字节数量比特数
[bytesSent_in_bits/s]  28291.412345789
// 每秒头部字节总数
headerBytesSent   28386787
// 每秒发送头部字节比特数
[headerBytesSent_in_bits/s]   11206.52334411
// 比特率为32,000 bps(比特每秒),即32 kbps
targetBitrate 32000
outbound-rtp(kind=video)
// 表示使用的编码器是H.264
[codec]	H264 (102, level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f)
// 发送的总数据包数量为616,516个
packetsSent	616516	
// 每秒发送的数据包数量,约为30.66个
[packetsSent/s]	30.664317713909526
// 发送的总字节数为179,434,429字节
bytesSent	179434429	
// 每秒发送的字节数转换为比特数,约为71,568.30 kbps
[bytesSent_in_bits/s]	71568.30001423245
// 发送的头部字节总数为14,852,818字节
headerBytesSent	14852818	
// 每秒发送的头部字节数转换为比特数,约为5,726.59 kbps。
[headerBytesSent_in_bits/s]	5726.59106771328
// 目标比特率为354,830 bps,即354.83 kbps
targetBitrate	354830	
// 编码的总帧数为617,019帧
framesEncoded	617019	
// 每秒编码的帧数,约为28.19帧
[framesEncoded/s]	28.191334587700172
// 编码的关键帧(I帧)数量为215帧	
keyFramesEncoded	215	
// 总编码时间为4781.073秒
totalEncodeTime	4781.073	
// 每帧编码所需的平均时间,约为11.46毫秒。
[totalEncodeTime/framesEncoded_in_ms]	11.464285714282596
// 帧的宽度为1280像素
frameWidth	1280	
// 帧的高度为720像素
frameHeight	720
// 帧率为每秒29帧	
framesPerSecond	29	
// 发送的总帧数为617,405帧
framesSent	617405	
// 每秒发送的帧数,约为29.97帧
[framesSent/s]	29.96823367234663
// 发送的大帧数为32帧	
hugeFramesSent	32
// 总的数据包发送延迟为67.48513秒
totalPacketSendDelay	67.48513
// 质量限制持续时间,包括由于带宽限制、CPU限制、无限制和其他原因导致的持续时间
qualityLimitationDurations	{"bandwidth":26.155,"cpu":0,"none":20703.08,"other":0}
// 编码器的实现是OpenH264
encoderImplementation	OpenH264
// 编码质量
qpSum		7521625
inbound-rtp(kind=audio)下行音频
// 接收到的总数据包数量为1,096,329个
packetsReceived	1096329	
// 每秒接收的数据包数量,约为50.28个
[packetsReceived/s]	50.27808810525396
// 接收的总字节数为81,050,273字节
bytesReceived	81050273
// 每秒接收的字节数转换为比特数,约为32,726.79 kbps	
[bytesReceived_in_bits/s]	32726.78658970012	
// 接收的头部字节总数为26,331,120字节
headerBytesReceived	26331120	
// 每秒接收的头部字节数转换为比特数,约为9,696.83 kbps
[headerBytesReceived_in_bits/s]	9696.825656207442
// 最后一个数据包接收的时间戳	
lastPacketReceivedTimestamp	1735197274039.8062
// 最后一个数据包接收的日期和时间	
[lastPacketReceivedTimestamp]	2024/12/26 15:14:34
// 抖动缓冲区的延迟总和	
jitterBufferDelay	56962627.2
// 抖动缓冲区的延迟平均值(以毫秒为单位)	
[jitterBufferDelay/jitterBufferEmittedCount_in_ms]	77.05882352950306
// 目标抖动缓冲区延迟	
jitterBufferTargetDelay	48588288
// 抖动缓冲区延迟与发出计数的比例(以毫秒为单位)
[jitterBufferDelay/jitterBufferEmittedCount_in_ms]	78.4000000000621	
// 另一个目标抖动缓冲区延迟值
jitterBufferTargetDelay	48628550.4	
// 抖动缓冲区的最小延迟
[jitterBufferTargetDelay/jitterBufferEmittedCount_in_ms]	60	
// 从抖动缓冲区发出的总样本数
jitterBufferMinimumDelay	48628550.4	
// 接收到的总样本数
[jitterBufferMinimumDelay/jitterBufferEmittedCount_in_ms]	60	
// 每秒接收的样本数
jitterBufferEmittedCount	1053912000
// 隐藏的样本数,通常是指由于丢包等原因导致的数据不连续,需要通过算法进行填补	
totalSamplesReceived	1055685600	
// 音频级别
[totalSamplesReceived/s]	48042.709969289725
// 总音频能量	
concealedSamples	1854928
// 音频级别的均方根值
audioLevel	0.1988891262550737	
// 样本的总持续时间
totalAudioEnergy	300.06916838604377	
// 总处理延迟
[Audio_Level_in_RMS]	0.14892546098156428	
// 处理延迟与发出计数的比例(以毫秒为单位)
totalSamplesDuration	22018.689999409253	
// 抖动缓冲区的冲洗次数
totalProcessingDelay	52478673.56832	
// 延迟的数据包中断样本数
[totalProcessingDelay/jitterBufferEmittedCount_in_ms]	70.40555102031576
// 相对数据包到达延迟	
jitterBufferFlushes	1	
// 延迟的数据包中断样本数
delayedPacketOutageSamples	152219	
// 相对数据包到达延迟
relativePacketArrivalDelay	8356.16	
// 中断次数
interruptionCount	0	
// 总中断持续时间
totalInterruptionDuration	0
inbound-rtp(kind=video)下行视频
// 使用的编码器是H.264
[codec]	H264 (102, level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f)	
// 网络抖动,表示接收数据包的时间变化,单位通常是秒
jitter	0.008	
// 丢失的数据包数量为6,294个
packetsLost	6294	
// 接收到的总数据包数量为3,361,657个
packetsReceived	3361657	
// 每秒接收的数据包数量,约为160.88个
[packetsReceived/s]	160.87532063312926	
// 接收的总字节数为3,590,296,459字节
bytesReceived	3590296459	
// 每秒接收的字节数转换为比特数,约为1,387,428.49 kbps。
[bytesReceived_in_bits/s]	1387428.4874414976
// 接收的头部字节总数为94,131,424字节	
headerBytesReceived	94131424
// 每秒接收的头部字节数转换为比特数,约为36,036.07 kbps	
[headerBytesReceived_in_bits/s]	36036.07182182096
// 接收到的重传数据包数量为29,195个	
retransmittedPacketsReceived	29195	
// 每秒接收的重传数据包数量,约为4.97个
[retransmittedPacketsReceived/s]	4.965287673862014
// 接收到的重传字节总数为31,110,354字节	
retransmittedBytesReceived	31110354
// 每秒接收的重传字节数转换为比特数,约为43,615.09 kbps	
[retransmittedBytesReceived_in_bits/s]	43615.086927203934
// 重传流的同步源标识符	
rtxSsrc	2171748361	
// 最后一个数据包接收的时间戳
lastPacketReceivedTimestamp	1735197797031.065
// 最后一个数据包接收的日期和时间
[lastPacketReceivedTimestamp]	2024/12/26 15:23:17	
// 抖动缓冲区的延迟
jitterBufferDelay	11971.191576	
// 抖动缓冲区的延迟平均值
[jitterBufferDelay/jitterBufferEmittedCount_in_ms]	24.631333333309158
// 目标抖动缓冲区延迟	
jitterBufferTargetDelay	15834.935496	
[jitterBufferTargetDelay/jitterBufferEmittedCount_in_ms]	29.960066666717466	
// 目标抖动缓冲区延迟
jitterBufferMinimumDelay	15834.935496
// 每秒接收的帧数,约为29.79帧
[jitterBufferMinimumDelay/jitterBufferEmittedCount_in_ms]	29.960066666717466
// 从抖动缓冲区发出的总样本数
jitterBufferEmittedCount	668493	
// 接收到的总帧数为668,469帧
framesReceived	668469	
// 每秒接收的帧数,约为29.79帧
[framesReceived/s]	29.791726043172087	
// 接收帧数减去解码帧数再减去丢弃帧数的差值为-24
[framesReceived-framesDecoded-framesDropped]	-24
// 帧的宽度为1280像素	
frameWidth	1280	
// 帧的高度为720像素
frameHeight	720	
// 帧率为每秒30帧
framesPerSecond	30
// 解码的总帧数为668,469帧	
framesDecoded	668469	
// 每秒解码的帧数,约为29.79帧
[framesDecoded/s]	29.791726043172087
// 解码的关键帧(I帧)数量为229帧	
keyFramesDecoded	229	
[keyFramesDecoded/s]	0
// 丢弃的帧数为24帧	
framesDropped	24	
// 总解码时间为870.105921秒
totalDecodeTime	870.105921
// 每帧解码所需的平均时间,约为2.41毫秒	
[totalDecodeTime/framesDecoded_in_ms]	2.412299999999353
// 总处理延迟	
totalProcessingDelay	12952.590836	
// 总组装时间为821.873153秒
[totalProcessingDelay/jitterBufferEmittedCount_in_ms]	27.191133333326434
// 这表示总组装时间,单位是秒	
totalAssemblyTime 	821.873153
// 每帧在组装过程中平均花费的时间	
[totalAssemblyTime/framesAssembledFromMultiplePackets_in_ms] 	1.539100000002236
// 从多个数据包中组装的帧数为668,004帧	
framesAssembledFromMultiplePackets	668004	
// 总帧间延迟
totalInterFrameDelay	22503.407	
[totalInterFrameDelay/framesDecoded_in_ms]	33.36666666667345
// 总平方帧间延迟	
totalSquaredInterFrameDelay	848.3095429981339
// 帧间延迟的标准差(以毫秒为单位)	
[interFrameDelayStDev_in_ms]	9.046116416493547
// 暂停次数为0	
pauseCount	0	
// 总暂停持续时间为0秒
totalPausesDuration	0	
// 冻结次数为126次
freezeCount	126	
// 总冻结持续时间为34.267秒
totalFreezesDuration	34.267	
// 用的解码器实现是外部解码器(D3D11VideoDecoder)
decoderImplementation	ExternalDecoder (D3D11VideoDecoder)	
// 全帧引用请求(Full Intra Request)的次数为0
firCount	0	
// 画面质量指示(Picture Loss Indication)的次数为2
pliCount	2	
// 负确认(Negative Acknowledgement)的次数为3,782
nackCount	3782
// 启用了能效解码器
powerEfficientDecoder	true	
// 最小播放延迟为0秒
minPlayoutDelay	0
拉流黑屏可以结合发送端和接收端去看

Stats graphs for outbound-rtp (kind=video)是否发送了数据
在这里插入图片描述

Stats graphs for inbound-rtp (kind=video)图看是否接受到数据
在这里插入图片描述

拉流没声音

Stats graphs for inbound-rtp (kind=audio)是否接受到数据
在这里插入图片描述
说话时audioLevel在0.01以上关闭麦克的话再0.001一下到接近于0
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/65202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Webpack在Vue CLI中的应用

webpack 作为目前最流行的项目打包工具,被广泛使用于项目的构建和开发过程中,其实说它是打包工具有点大材小用了,我个人认为它是一个集前端自动化、模块化、组件化于一体的可拓展系统,你可以根据自己的需要来进行一系列的配置和安…

如何用gpt来分析链接里面的内容(比如分析论文链接)和分析包含多个文件中的一块代码

如何用gpt来分析链接里面的内容,方法如下 这里使用gpt4里面有一个网路的功能 点击搜索框下面这个地球的形状即可启动搜索网页模式 然后即可提出问题在搜索框里:发现正确识别和分析了链接里面的内容 链接如下:https://arxiv.org/pdf/2009.1…

Docker Search失败,但是Pull成功的解决方法(环境:腾讯云服务器CentOS7系统安装Docker)

Docker Search失败,但是Pull成功的解决方法(环境:腾讯云服务器CentOS7系统安装Docker) 背景解决思路 背景 在安装完成Docker后,成功启动Docker(Systemctl start Docker),使用搜索镜像命令(Dock…

负载均衡式在线OJ

文章目录 项目介绍所用技术与开发环境所用技术开发环境 项目框架compiler_server模块compiler编译功能comm/util.hpp 编译时的临时文件comm/log.hpp 日志comm/util.hpp 时间戳comm/util.hpp 检查文件是否存在compile_server/compiler.hpp 编译功能总体编写 runner运行功能资源设…

NiChart 多模态神经影像(structural MRI,functional MRI,and diffusion MRI)处理和分析工具包安装

NiChart多模态神经影像部署 NiChart 本地安装Git clone 问题personal access token PAT 问题 NiChart 云端注册AWS验证问题 NiChart 是UPenn大学,Christos Davatzikos教授开发的一个多模态MRI影像,structural (sMRI), diffusion (dMRI), and …

xinput1_3.dll放在哪里?当xinput1_3.dll丢失时的应对策略:详细解决方法汇总

在计算机系统的运行过程中,我们偶尔会遇到一些令人困扰的问题,其中xinput1_3.dll文件丢失就是较为常见的一种情况。这个看似不起眼的动态链接库文件,实则在许多软件和游戏的正常运行中发挥着至关重要的作用。一旦它丢失,可能会导致…

【VScode】第三方GPT编程工具-CodeMoss安装教程

一、CodeMoss是什么? CodeMoss是一款集编程、学习和办公于一体的高效工具。它兼容多种主流平台,包括VSCode、IDER、Chrome插件、Web和APP等,支持插件安装,尤其在VSCode和IDER上的表现尤为出色。无论你是编程新手还是资深开发者&a…

智慧农业物联网传感器:开启农业新时代

在当今科技飞速发展的时代,农业领域正经历着一场前所未有的变革,而智慧农业物联网传感器无疑是这场变革中的关键利器。它宛如农业的 “智慧大脑”,悄然渗透到农业生产的各个环节,为传统农业注入了全新的活力,让农业生产…

Pytorch | 利用AI-FGTM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用AI-FGTM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集AI-FGTM介绍算法流程初始化迭代更新( t 0 t 0 t0 到 T − 1 T - 1 T−1)迭代完成 AI-FGTM代码实现AI-FGTM算法实现攻击效果 代码汇总aifgtm.pytrain.pyadvtest.py 之前已经…

【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch)

Build a Large Language Model 背景文章第1章:理解大型语言模型什么是LLMs?什么是Transformer?什么是BERT和GPT?GPT的架构设计构建GPT有哪些步骤? 第2章:处理文本数据第3章:编码Attention机制第4章:从零实…

Unity2021.3.16f1可以正常打开,但是Unity2017.3.0f3却常常打开闪退或者Unity2017编辑器运行起来就闪退掉

遇到问题: 从今年开始,不知道咋回事,电脑上的Unity2017像是变了个人似得,突然特别爱闪退掉,有时候还次次闪退,真是让人无语,一直以来我都怀疑是不是电脑上安装了什么别的软件了,导致…

ArkTs组件(2)

一.下拉列表组件&#xff1a;Select 1.接口 Select(options: Array<SelectOption>) 参数名类型必填说明optionsArray<SelectOption>是设置下拉选项。 SelectOption对象说明 名称类型必填说明valueResourceStr是 下拉选项内容。 iconResourceStr否 下拉选项图片…

微机接口课设——基于Proteus和8086的打地鼠设计(8255、8253、8259)Proteus中Unknown 1-byte opcode / Unknown 2-byte opcode错误

原理图设计 汇编代码 ; I/O 端口地址定义 IOY0 EQU 0600H IOY1 EQU 0640H IOY2 EQU 0680HMY8255_A EQU IOY000H*2 ; 8255 A 口端口地址 MY8255_B EQU IOY001H*2 ; 8255 B 口端口地址 MY8255_C EQU IOY002H*2 ; 8255 C 口端口地址 MY8255_MODE EQU IOY003H*2 ; …

2024年12月一区SCI-加权平均优化算法Weighted average algorithm-附Matlab免费代码

引言 本期介绍了一种基于加权平均位置概念的元启发式优化算法&#xff0c;称为加权平均优化算法Weighted average algorithm&#xff0c;WAA。该成果于2024年12月最新发表在中JCR1区、 中科院1区 SCI期刊 Knowledge-Based Systems。 在WAA算法中&#xff0c;加权平均位置代表当…

实现某海外大型车企(T)Cabin Wi-Fi 需求的概述 - 4

大家好&#xff0c;我是Q&#xff0c;邮箱&#xff1a;1042484520qq.com。 今天我们在上几讲的基础上再扩展下 Cabin Wi-Fi 的功能需求&#xff0c;讲讲如何使能 5G TCU Wi-Fi STA Bridge 模式。 参考&#xff1a; 实现某海外大型车企&#xff08;T&#xff09;Cabin Wi-Fi 需求…

《CS2》报错dxgi.dll缺失怎么办?《CS2》游戏提示dxgi.dll缺失要怎么解决?

一、dxgi.dll缺失的根源 游戏安装问题&#xff1a;dxgi.dll文件是DirectX图形接口的一部分&#xff0c;如果游戏安装不完整或安装过程中出现问题&#xff0c;可能会导致该文件缺失。 系统更新或配置变动&#xff1a;Windows操作系统的更新或某些系统配置的变动&#xff0c;有时…

Level DB --- MemTable

MemTable是Level DB中重要的组件&#xff0c;它主要处理Level DB内存级别的增删查改。 基本数据结构 基础的存储数据结构如图1所示&#xff0c;这是一个存储单元的结构。其中1是internal key size&#xff0c;这里面包括两部分&#xff0c;一部分我们Level DB存储key-value中…

SDK 设备树创建

嘿嘿,好使 好使 好使 设备树相同的平台环境&#xff0c;但是细微差异的补充配置

【hackmyvm】Adroit靶机wp

tags: HMVjava反编译SQL注入 1. 基本信息^toc 文章目录 1. 基本信息^toc2. 信息收集3. java反编译4. sql注入5. 解密密码6. 提权 靶机链接 https://hackmyvm.eu/machines/machine.php?vmAdroit 作者 alienum 难度 ⭐️⭐️⭐️⭐️️ 2. 信息收集 ┌──(root㉿kali)-[~] └…

OSCP课后练习-tcpdump

本篇文章旨在为网络安全渗透测试行业OSCP考证教学。通过阅读本文&#xff0c;读者将能够对tcpdump日志分析关键信息过滤有一定了解 1、下载练习分析文件 wget https://www.offensive-security.com/pwk-online/password_cracking_filtered.pcap2、查看分析文件所有内容 sudo t…