@besovideo/webrtc-player 0.8.34 → 0.8.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.es.js +1 -1
- package/package.json +1 -1
- package/dist/index.html +0 -21
- package/dist/webgl-demo.html +0 -24
- package/dist/webgl-demo.js +0 -600
- package/dist/webrtc.report.html +0 -506
package/dist/main.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var kC=Object.defineProperty,xi=Object.defineProperties,Wi=Object.getOwnPropertyDescriptor,Zi=Object.getOwnPropertyDescriptors;var NC=Object.getOwnPropertySymbols;var ui=Object.prototype.hasOwnProperty,Vi=Object.prototype.propertyIsEnumerable;var tC=(A,g,I)=>g in A?kC(A,g,{enumerable:!0,configurable:!0,writable:!0,value:I}):A[g]=I,oA=(A,g)=>{for(var I in g||(g={}))ui.call(g,I)&&tC(A,I,g[I]);if(NC)for(var I of NC(g))Vi.call(g,I)&&tC(A,I,g[I]);return A},SI=(A,g)=>xi(A,Zi(g));var vI=(A,g,I,B)=>{for(var Q=B>1?void 0:B?Wi(g,I):g,C=A.length-1,E;C>=0;C--)(E=A[C])&&(Q=(B?E(g,I,Q):E(Q))||Q);return B&&Q&&kC(g,I,Q),Q};var HB=(A,g,I)=>{if(!g.has(A))throw TypeError("Cannot "+I)};var HA=(A,g,I)=>(HB(A,g,"read from private field"),I?I.call(A):g.get(A)),HI=(A,g,I)=>{if(g.has(A))throw TypeError("Cannot add the same private member more than once");g instanceof WeakSet?g.add(A):g.set(A,I)},qB=(A,g,I,B)=>(HB(A,g,"write to private field"),B?B.call(A,I):g.set(A,I),I);var KB=(A,g,I)=>(HB(A,g,"access private method"),I);var q=(A,g,I)=>new Promise((B,Q)=>{var C=D=>{try{i(I.next(D))}catch(a){Q(a)}},E=D=>{try{i(I.throw(D))}catch(a){Q(a)}},i=D=>D.done?B(D.value):Promise.resolve(D.value).then(C,E);i((I=I.apply(A,g)).next())});var F={NODE_ENV:"production",SH_LIB_NAME:"@besovideo/webrtc-player",SH_LIB_VERSION:"0.8.
|
|
1
|
+
var kC=Object.defineProperty,xi=Object.defineProperties,Wi=Object.getOwnPropertyDescriptor,Zi=Object.getOwnPropertyDescriptors;var NC=Object.getOwnPropertySymbols;var ui=Object.prototype.hasOwnProperty,Vi=Object.prototype.propertyIsEnumerable;var tC=(A,g,I)=>g in A?kC(A,g,{enumerable:!0,configurable:!0,writable:!0,value:I}):A[g]=I,oA=(A,g)=>{for(var I in g||(g={}))ui.call(g,I)&&tC(A,I,g[I]);if(NC)for(var I of NC(g))Vi.call(g,I)&&tC(A,I,g[I]);return A},SI=(A,g)=>xi(A,Zi(g));var vI=(A,g,I,B)=>{for(var Q=B>1?void 0:B?Wi(g,I):g,C=A.length-1,E;C>=0;C--)(E=A[C])&&(Q=(B?E(g,I,Q):E(Q))||Q);return B&&Q&&kC(g,I,Q),Q};var HB=(A,g,I)=>{if(!g.has(A))throw TypeError("Cannot "+I)};var HA=(A,g,I)=>(HB(A,g,"read from private field"),I?I.call(A):g.get(A)),HI=(A,g,I)=>{if(g.has(A))throw TypeError("Cannot add the same private member more than once");g instanceof WeakSet?g.add(A):g.set(A,I)},qB=(A,g,I,B)=>(HB(A,g,"write to private field"),B?B.call(A,I):g.set(A,I),I);var KB=(A,g,I)=>(HB(A,g,"access private method"),I);var q=(A,g,I)=>new Promise((B,Q)=>{var C=D=>{try{i(I.next(D))}catch(a){Q(a)}},E=D=>{try{i(I.throw(D))}catch(a){Q(a)}},i=D=>D.done?B(D.value):Promise.resolve(D.value).then(C,E);i((I=I.apply(A,g)).next())});var F={NODE_ENV:"production",SH_LIB_NAME:"@besovideo/webrtc-player",SH_LIB_VERSION:"0.8.34",PROJECT_NAMESPACE:"bvplayer"};var vi=Object.defineProperty,Xi=Object.defineProperties,Pi=Object.getOwnPropertyDescriptors,cC=Object.getOwnPropertySymbols,Ti=Object.prototype.hasOwnProperty,zi=Object.prototype.propertyIsEnumerable,hC=(A,g,I)=>g in A?vi(A,g,{enumerable:!0,configurable:!0,writable:!0,value:I}):A[g]=I,Sg=(A,g)=>{for(var I in g||(g={}))Ti.call(g,I)&&hC(A,I,g[I]);if(cC)for(var I of cC(g))zi.call(g,I)&&hC(A,I,g[I]);return A},ji=(A,g)=>Xi(A,Pi(g)),qA;(function(A){A.red="#e72528",A.blue="#2a79af",A.weakBlue="#6eb6f4",A.geekblue="#85a5ff",A.gold="#ffd666",A.orange="#ffa940",A.cyan="#13c2c2",A.green="#52c41a",A.volcano="#fa541c",A.lime="#389e0d",A.pink="#eb2f96",A.purple="#722ed1",A.darkPurple="#292F4C",A.gray="#8c8c8c"})(qA||(qA={}));var dC=class{constructor(){this.colors=qA,this.shapes={slider:new eC}}},eC=class{constructor(){}title(A=""){return Fg`
|
|
2
2
|
color: ${A};
|
|
3
3
|
border-left: 3px solid ${A};
|
|
4
4
|
padding: 2px;
|
package/package.json
CHANGED
package/dist/index.html
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* @Author: Shirtiny
|
|
3
|
-
* @Date: 2021-06-25 15:39:30
|
|
4
|
-
* @LastEditTime: 2021-12-28 12:25:31
|
|
5
|
-
* @Description:
|
|
6
|
-
-->
|
|
7
|
-
<!DOCTYPE html>
|
|
8
|
-
<html lang="en">
|
|
9
|
-
<head>
|
|
10
|
-
<meta charset="UTF-8" />
|
|
11
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
12
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
13
|
-
<title>Document</title>
|
|
14
|
-
<link rel="icon" href="./favicon.ico" />
|
|
15
|
-
<link rel="stylesheet" type="text/css" href="./index.css" />
|
|
16
|
-
<script defer src="./index.js"></script>
|
|
17
|
-
</head>
|
|
18
|
-
<body>
|
|
19
|
-
<div id="root"></div>
|
|
20
|
-
</body>
|
|
21
|
-
</html>
|
package/dist/webgl-demo.html
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* @Author: Shirtiny
|
|
3
|
-
* @Date: 2022-01-19 14:54:26
|
|
4
|
-
* @LastEditTime: 2022-01-19 14:55:11
|
|
5
|
-
* @Description:
|
|
6
|
-
-->
|
|
7
|
-
<!DOCTYPE html>
|
|
8
|
-
<html>
|
|
9
|
-
<head>
|
|
10
|
-
<meta charset="utf-8" />
|
|
11
|
-
<title>WebGL Demo</title>
|
|
12
|
-
<script
|
|
13
|
-
src="https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.8.1/gl-matrix-min.js"
|
|
14
|
-
integrity="sha512-zhHQR0/H5SEBL3Wn6yYSaTTZej12z0hVZKOv3TwCUXT1z5qeqGcXJLLrbERYRScEDDpYIJhPC1fk31gqR783iQ=="
|
|
15
|
-
crossorigin="anonymous"
|
|
16
|
-
defer
|
|
17
|
-
></script>
|
|
18
|
-
<script src="./webgl-demo.js" defer></script>
|
|
19
|
-
</head>
|
|
20
|
-
|
|
21
|
-
<body>
|
|
22
|
-
<canvas id="glcanvas" width="640" height="480"></canvas>
|
|
23
|
-
</body>
|
|
24
|
-
</html>
|
package/dist/webgl-demo.js
DELETED
|
@@ -1,600 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: Shirtiny
|
|
3
|
-
* @Date: 2022-01-19 14:55:28
|
|
4
|
-
* @LastEditTime: 2022-01-19 14:59:20
|
|
5
|
-
* @Description:
|
|
6
|
-
*/
|
|
7
|
-
var cubeRotation = 0.0;
|
|
8
|
-
// will set to true when video can be copied to texture
|
|
9
|
-
var copyVideo = false;
|
|
10
|
-
|
|
11
|
-
main();
|
|
12
|
-
|
|
13
|
-
//
|
|
14
|
-
// Start here
|
|
15
|
-
//
|
|
16
|
-
function main() {
|
|
17
|
-
const canvas = document.querySelector('#glcanvas');
|
|
18
|
-
const gl = canvas.getContext('webgl');
|
|
19
|
-
|
|
20
|
-
// If we don't have a GL context, give up now
|
|
21
|
-
|
|
22
|
-
if (!gl) {
|
|
23
|
-
alert('Unable to initialize WebGL. Your browser or machine may not support it.');
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// Vertex shader program
|
|
28
|
-
|
|
29
|
-
const vsSource = `
|
|
30
|
-
attribute vec4 aVertexPosition;
|
|
31
|
-
attribute vec3 aVertexNormal;
|
|
32
|
-
attribute vec2 aTextureCoord;
|
|
33
|
-
|
|
34
|
-
uniform mat4 uNormalMatrix;
|
|
35
|
-
uniform mat4 uModelViewMatrix;
|
|
36
|
-
uniform mat4 uProjectionMatrix;
|
|
37
|
-
|
|
38
|
-
varying highp vec2 vTextureCoord;
|
|
39
|
-
varying highp vec3 vLighting;
|
|
40
|
-
|
|
41
|
-
void main(void) {
|
|
42
|
-
gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
|
|
43
|
-
vTextureCoord = aTextureCoord;
|
|
44
|
-
|
|
45
|
-
// Apply lighting effect
|
|
46
|
-
|
|
47
|
-
highp vec3 ambientLight = vec3(0.3, 0.3, 0.3);
|
|
48
|
-
highp vec3 directionalLightColor = vec3(1, 1, 1);
|
|
49
|
-
highp vec3 directionalVector = normalize(vec3(0.85, 0.8, 0.75));
|
|
50
|
-
|
|
51
|
-
highp vec4 transformedNormal = uNormalMatrix * vec4(aVertexNormal, 1.0);
|
|
52
|
-
|
|
53
|
-
highp float directional = max(dot(transformedNormal.xyz, directionalVector), 0.0);
|
|
54
|
-
vLighting = ambientLight + (directionalLightColor * directional);
|
|
55
|
-
}
|
|
56
|
-
`;
|
|
57
|
-
|
|
58
|
-
// Fragment shader program
|
|
59
|
-
|
|
60
|
-
const fsSource = `
|
|
61
|
-
varying highp vec2 vTextureCoord;
|
|
62
|
-
varying highp vec3 vLighting;
|
|
63
|
-
|
|
64
|
-
uniform sampler2D uSampler;
|
|
65
|
-
|
|
66
|
-
void main(void) {
|
|
67
|
-
highp vec4 texelColor = texture2D(uSampler, vTextureCoord);
|
|
68
|
-
|
|
69
|
-
gl_FragColor = vec4(texelColor.rgb * vLighting, texelColor.a);
|
|
70
|
-
}
|
|
71
|
-
`;
|
|
72
|
-
|
|
73
|
-
// Initialize a shader program; this is where all the lighting
|
|
74
|
-
// for the vertices and so forth is established.
|
|
75
|
-
const shaderProgram = initShaderProgram(gl, vsSource, fsSource);
|
|
76
|
-
|
|
77
|
-
// Collect all the info needed to use the shader program.
|
|
78
|
-
// Look up which attributes our shader program is using
|
|
79
|
-
// for aVertexPosition, aVertexNormal, aTextureCoord,
|
|
80
|
-
// and look up uniform locations.
|
|
81
|
-
const programInfo = {
|
|
82
|
-
program: shaderProgram,
|
|
83
|
-
attribLocations: {
|
|
84
|
-
vertexPosition: gl.getAttribLocation(shaderProgram, 'aVertexPosition'),
|
|
85
|
-
vertexNormal: gl.getAttribLocation(shaderProgram, 'aVertexNormal'),
|
|
86
|
-
textureCoord: gl.getAttribLocation(shaderProgram, 'aTextureCoord'),
|
|
87
|
-
},
|
|
88
|
-
uniformLocations: {
|
|
89
|
-
projectionMatrix: gl.getUniformLocation(shaderProgram, 'uProjectionMatrix'),
|
|
90
|
-
modelViewMatrix: gl.getUniformLocation(shaderProgram, 'uModelViewMatrix'),
|
|
91
|
-
normalMatrix: gl.getUniformLocation(shaderProgram, 'uNormalMatrix'),
|
|
92
|
-
uSampler: gl.getUniformLocation(shaderProgram, 'uSampler'),
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
// Here's where we call the routine that builds all the
|
|
97
|
-
// objects we'll be drawing.
|
|
98
|
-
const buffers = initBuffers(gl);
|
|
99
|
-
|
|
100
|
-
const texture = initTexture(gl);
|
|
101
|
-
|
|
102
|
-
const video = setupVideo('test.mp4');
|
|
103
|
-
|
|
104
|
-
var then = 0;
|
|
105
|
-
|
|
106
|
-
// Draw the scene repeatedly
|
|
107
|
-
function render(now) {
|
|
108
|
-
now *= 0.001; // convert to seconds
|
|
109
|
-
const deltaTime = now - then;
|
|
110
|
-
then = now;
|
|
111
|
-
|
|
112
|
-
if (copyVideo) {
|
|
113
|
-
updateTexture(gl, texture, video);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
drawScene(gl, programInfo, buffers, texture, deltaTime);
|
|
117
|
-
|
|
118
|
-
requestAnimationFrame(render);
|
|
119
|
-
}
|
|
120
|
-
requestAnimationFrame(render);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
function setupVideo(url) {
|
|
124
|
-
const video = document.createElement('video');
|
|
125
|
-
|
|
126
|
-
var playing = false;
|
|
127
|
-
var timeupdate = false;
|
|
128
|
-
|
|
129
|
-
video.autoplay = true;
|
|
130
|
-
video.muted = true;
|
|
131
|
-
video.loop = true;
|
|
132
|
-
|
|
133
|
-
// Waiting for these 2 events ensures
|
|
134
|
-
// there is data in the video
|
|
135
|
-
|
|
136
|
-
video.addEventListener('playing', function() {
|
|
137
|
-
playing = true;
|
|
138
|
-
checkReady();
|
|
139
|
-
}, true);
|
|
140
|
-
|
|
141
|
-
video.addEventListener('timeupdate', function() {
|
|
142
|
-
timeupdate = true;
|
|
143
|
-
checkReady();
|
|
144
|
-
}, true);
|
|
145
|
-
|
|
146
|
-
video.src = url;
|
|
147
|
-
video.play();
|
|
148
|
-
|
|
149
|
-
function checkReady() {
|
|
150
|
-
if (playing && timeupdate) {
|
|
151
|
-
copyVideo = true;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
return video;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
//
|
|
159
|
-
// initBuffers
|
|
160
|
-
//
|
|
161
|
-
// Initialize the buffers we'll need. For this demo, we just
|
|
162
|
-
// have one object -- a simple three-dimensional cube.
|
|
163
|
-
//
|
|
164
|
-
function initBuffers(gl) {
|
|
165
|
-
|
|
166
|
-
// Create a buffer for the cube's vertex positions.
|
|
167
|
-
|
|
168
|
-
const positionBuffer = gl.createBuffer();
|
|
169
|
-
|
|
170
|
-
// Select the positionBuffer as the one to apply buffer
|
|
171
|
-
// operations to from here out.
|
|
172
|
-
|
|
173
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
|
|
174
|
-
|
|
175
|
-
// Now create an array of positions for the cube.
|
|
176
|
-
|
|
177
|
-
const positions = [
|
|
178
|
-
// Front face
|
|
179
|
-
-1.0, -1.0, 1.0,
|
|
180
|
-
1.0, -1.0, 1.0,
|
|
181
|
-
1.0, 1.0, 1.0,
|
|
182
|
-
-1.0, 1.0, 1.0,
|
|
183
|
-
|
|
184
|
-
// Back face
|
|
185
|
-
-1.0, -1.0, -1.0,
|
|
186
|
-
-1.0, 1.0, -1.0,
|
|
187
|
-
1.0, 1.0, -1.0,
|
|
188
|
-
1.0, -1.0, -1.0,
|
|
189
|
-
|
|
190
|
-
// Top face
|
|
191
|
-
-1.0, 1.0, -1.0,
|
|
192
|
-
-1.0, 1.0, 1.0,
|
|
193
|
-
1.0, 1.0, 1.0,
|
|
194
|
-
1.0, 1.0, -1.0,
|
|
195
|
-
|
|
196
|
-
// Bottom face
|
|
197
|
-
-1.0, -1.0, -1.0,
|
|
198
|
-
1.0, -1.0, -1.0,
|
|
199
|
-
1.0, -1.0, 1.0,
|
|
200
|
-
-1.0, -1.0, 1.0,
|
|
201
|
-
|
|
202
|
-
// Right face
|
|
203
|
-
1.0, -1.0, -1.0,
|
|
204
|
-
1.0, 1.0, -1.0,
|
|
205
|
-
1.0, 1.0, 1.0,
|
|
206
|
-
1.0, -1.0, 1.0,
|
|
207
|
-
|
|
208
|
-
// Left face
|
|
209
|
-
-1.0, -1.0, -1.0,
|
|
210
|
-
-1.0, -1.0, 1.0,
|
|
211
|
-
-1.0, 1.0, 1.0,
|
|
212
|
-
-1.0, 1.0, -1.0,
|
|
213
|
-
];
|
|
214
|
-
|
|
215
|
-
// Now pass the list of positions into WebGL to build the
|
|
216
|
-
// shape. We do this by creating a Float32Array from the
|
|
217
|
-
// JavaScript array, then use it to fill the current buffer.
|
|
218
|
-
|
|
219
|
-
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(positions), gl.STATIC_DRAW);
|
|
220
|
-
|
|
221
|
-
// Set up the normals for the vertices, so that we can compute lighting.
|
|
222
|
-
|
|
223
|
-
const normalBuffer = gl.createBuffer();
|
|
224
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, normalBuffer);
|
|
225
|
-
|
|
226
|
-
const vertexNormals = [
|
|
227
|
-
// Front
|
|
228
|
-
0.0, 0.0, 1.0,
|
|
229
|
-
0.0, 0.0, 1.0,
|
|
230
|
-
0.0, 0.0, 1.0,
|
|
231
|
-
0.0, 0.0, 1.0,
|
|
232
|
-
|
|
233
|
-
// Back
|
|
234
|
-
0.0, 0.0, -1.0,
|
|
235
|
-
0.0, 0.0, -1.0,
|
|
236
|
-
0.0, 0.0, -1.0,
|
|
237
|
-
0.0, 0.0, -1.0,
|
|
238
|
-
|
|
239
|
-
// Top
|
|
240
|
-
0.0, 1.0, 0.0,
|
|
241
|
-
0.0, 1.0, 0.0,
|
|
242
|
-
0.0, 1.0, 0.0,
|
|
243
|
-
0.0, 1.0, 0.0,
|
|
244
|
-
|
|
245
|
-
// Bottom
|
|
246
|
-
0.0, -1.0, 0.0,
|
|
247
|
-
0.0, -1.0, 0.0,
|
|
248
|
-
0.0, -1.0, 0.0,
|
|
249
|
-
0.0, -1.0, 0.0,
|
|
250
|
-
|
|
251
|
-
// Right
|
|
252
|
-
1.0, 0.0, 0.0,
|
|
253
|
-
1.0, 0.0, 0.0,
|
|
254
|
-
1.0, 0.0, 0.0,
|
|
255
|
-
1.0, 0.0, 0.0,
|
|
256
|
-
|
|
257
|
-
// Left
|
|
258
|
-
-1.0, 0.0, 0.0,
|
|
259
|
-
-1.0, 0.0, 0.0,
|
|
260
|
-
-1.0, 0.0, 0.0,
|
|
261
|
-
-1.0, 0.0, 0.0,
|
|
262
|
-
];
|
|
263
|
-
|
|
264
|
-
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertexNormals),
|
|
265
|
-
gl.STATIC_DRAW);
|
|
266
|
-
|
|
267
|
-
// Now set up the texture coordinates for the faces.
|
|
268
|
-
|
|
269
|
-
const textureCoordBuffer = gl.createBuffer();
|
|
270
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, textureCoordBuffer);
|
|
271
|
-
|
|
272
|
-
const textureCoordinates = [
|
|
273
|
-
// Front
|
|
274
|
-
0.0, 0.0,
|
|
275
|
-
1.0, 0.0,
|
|
276
|
-
1.0, 1.0,
|
|
277
|
-
0.0, 1.0,
|
|
278
|
-
// Back
|
|
279
|
-
0.0, 0.0,
|
|
280
|
-
1.0, 0.0,
|
|
281
|
-
1.0, 1.0,
|
|
282
|
-
0.0, 1.0,
|
|
283
|
-
// Top
|
|
284
|
-
0.0, 0.0,
|
|
285
|
-
1.0, 0.0,
|
|
286
|
-
1.0, 1.0,
|
|
287
|
-
0.0, 1.0,
|
|
288
|
-
// Bottom
|
|
289
|
-
0.0, 0.0,
|
|
290
|
-
1.0, 0.0,
|
|
291
|
-
1.0, 1.0,
|
|
292
|
-
0.0, 1.0,
|
|
293
|
-
// Right
|
|
294
|
-
0.0, 0.0,
|
|
295
|
-
1.0, 0.0,
|
|
296
|
-
1.0, 1.0,
|
|
297
|
-
0.0, 1.0,
|
|
298
|
-
// Left
|
|
299
|
-
0.0, 0.0,
|
|
300
|
-
1.0, 0.0,
|
|
301
|
-
1.0, 1.0,
|
|
302
|
-
0.0, 1.0,
|
|
303
|
-
];
|
|
304
|
-
|
|
305
|
-
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(textureCoordinates),
|
|
306
|
-
gl.STATIC_DRAW);
|
|
307
|
-
|
|
308
|
-
// Build the element array buffer; this specifies the indices
|
|
309
|
-
// into the vertex arrays for each face's vertices.
|
|
310
|
-
|
|
311
|
-
const indexBuffer = gl.createBuffer();
|
|
312
|
-
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
|
|
313
|
-
|
|
314
|
-
// This array defines each face as two triangles, using the
|
|
315
|
-
// indices into the vertex array to specify each triangle's
|
|
316
|
-
// position.
|
|
317
|
-
|
|
318
|
-
const indices = [
|
|
319
|
-
0, 1, 2, 0, 2, 3, // front
|
|
320
|
-
4, 5, 6, 4, 6, 7, // back
|
|
321
|
-
8, 9, 10, 8, 10, 11, // top
|
|
322
|
-
12, 13, 14, 12, 14, 15, // bottom
|
|
323
|
-
16, 17, 18, 16, 18, 19, // right
|
|
324
|
-
20, 21, 22, 20, 22, 23, // left
|
|
325
|
-
];
|
|
326
|
-
|
|
327
|
-
// Now send the element array to GL
|
|
328
|
-
|
|
329
|
-
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,
|
|
330
|
-
new Uint16Array(indices), gl.STATIC_DRAW);
|
|
331
|
-
|
|
332
|
-
return {
|
|
333
|
-
position: positionBuffer,
|
|
334
|
-
normal: normalBuffer,
|
|
335
|
-
textureCoord: textureCoordBuffer,
|
|
336
|
-
indices: indexBuffer,
|
|
337
|
-
};
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
//
|
|
341
|
-
// Initialize a texture.
|
|
342
|
-
//
|
|
343
|
-
function initTexture(gl, url) {
|
|
344
|
-
const texture = gl.createTexture();
|
|
345
|
-
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
346
|
-
|
|
347
|
-
// Because video havs to be download over the internet
|
|
348
|
-
// they might take a moment until it's ready so
|
|
349
|
-
// put a single pixel in the texture so we can
|
|
350
|
-
// use it immediately.
|
|
351
|
-
const level = 0;
|
|
352
|
-
const internalFormat = gl.RGBA;
|
|
353
|
-
const width = 1;
|
|
354
|
-
const height = 1;
|
|
355
|
-
const border = 0;
|
|
356
|
-
const srcFormat = gl.RGBA;
|
|
357
|
-
const srcType = gl.UNSIGNED_BYTE;
|
|
358
|
-
const pixel = new Uint8Array([0, 0, 255, 255]); // opaque blue
|
|
359
|
-
gl.texImage2D(gl.TEXTURE_2D, level, internalFormat,
|
|
360
|
-
width, height, border, srcFormat, srcType,
|
|
361
|
-
pixel);
|
|
362
|
-
|
|
363
|
-
// Turn off mips and set wrapping to clamp to edge so it
|
|
364
|
-
// will work regardless of the dimensions of the video.
|
|
365
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
|
366
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
367
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
|
|
368
|
-
|
|
369
|
-
return texture;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
//
|
|
373
|
-
// copy the video texture
|
|
374
|
-
//
|
|
375
|
-
function updateTexture(gl, texture, video) {
|
|
376
|
-
const level = 0;
|
|
377
|
-
const internalFormat = gl.RGBA;
|
|
378
|
-
const srcFormat = gl.RGBA;
|
|
379
|
-
const srcType = gl.UNSIGNED_BYTE;
|
|
380
|
-
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
381
|
-
gl.texImage2D(gl.TEXTURE_2D, level, internalFormat,
|
|
382
|
-
srcFormat, srcType, video);
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
function isPowerOf2(value) {
|
|
386
|
-
return (value & (value - 1)) == 0;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
//
|
|
390
|
-
// Draw the scene.
|
|
391
|
-
//
|
|
392
|
-
function drawScene(gl, programInfo, buffers, texture, deltaTime) {
|
|
393
|
-
gl.clearColor(0.0, 0.0, 0.0, 1.0); // Clear to black, fully opaque
|
|
394
|
-
gl.clearDepth(1.0); // Clear everything
|
|
395
|
-
gl.enable(gl.DEPTH_TEST); // Enable depth testing
|
|
396
|
-
gl.depthFunc(gl.LEQUAL); // Near things obscure far things
|
|
397
|
-
|
|
398
|
-
// Clear the canvas before we start drawing on it.
|
|
399
|
-
|
|
400
|
-
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
|
|
401
|
-
|
|
402
|
-
// Create a perspective matrix, a special matrix that is
|
|
403
|
-
// used to simulate the distortion of perspective in a camera.
|
|
404
|
-
// Our field of view is 45 degrees, with a width/height
|
|
405
|
-
// ratio that matches the display size of the canvas
|
|
406
|
-
// and we only want to see objects between 0.1 units
|
|
407
|
-
// and 100 units away from the camera.
|
|
408
|
-
|
|
409
|
-
const fieldOfView = 45 * Math.PI / 180; // in radians
|
|
410
|
-
const aspect = gl.canvas.clientWidth / gl.canvas.clientHeight;
|
|
411
|
-
const zNear = 0.1;
|
|
412
|
-
const zFar = 100.0;
|
|
413
|
-
const projectionMatrix = mat4.create();
|
|
414
|
-
|
|
415
|
-
// note: glmatrix.js always has the first argument
|
|
416
|
-
// as the destination to receive the result.
|
|
417
|
-
mat4.perspective(projectionMatrix,
|
|
418
|
-
fieldOfView,
|
|
419
|
-
aspect,
|
|
420
|
-
zNear,
|
|
421
|
-
zFar);
|
|
422
|
-
|
|
423
|
-
// Set the drawing position to the "identity" point, which is
|
|
424
|
-
// the center of the scene.
|
|
425
|
-
const modelViewMatrix = mat4.create();
|
|
426
|
-
|
|
427
|
-
// Now move the drawing position a bit to where we want to
|
|
428
|
-
// start drawing the square.
|
|
429
|
-
|
|
430
|
-
mat4.translate(modelViewMatrix, // destination matrix
|
|
431
|
-
modelViewMatrix, // matrix to translate
|
|
432
|
-
[-0.0, 0.0, -6.0]); // amount to translate
|
|
433
|
-
mat4.rotate(modelViewMatrix, // destination matrix
|
|
434
|
-
modelViewMatrix, // matrix to rotate
|
|
435
|
-
cubeRotation, // amount to rotate in radians
|
|
436
|
-
[0, 0, 1]); // axis to rotate around (Z)
|
|
437
|
-
mat4.rotate(modelViewMatrix, // destination matrix
|
|
438
|
-
modelViewMatrix, // matrix to rotate
|
|
439
|
-
cubeRotation * .7,// amount to rotate in radians
|
|
440
|
-
[0, 1, 0]); // axis to rotate around (X)
|
|
441
|
-
|
|
442
|
-
const normalMatrix = mat4.create();
|
|
443
|
-
mat4.invert(normalMatrix, modelViewMatrix);
|
|
444
|
-
mat4.transpose(normalMatrix, normalMatrix);
|
|
445
|
-
|
|
446
|
-
// Tell WebGL how to pull out the positions from the position
|
|
447
|
-
// buffer into the vertexPosition attribute
|
|
448
|
-
{
|
|
449
|
-
const numComponents = 3;
|
|
450
|
-
const type = gl.FLOAT;
|
|
451
|
-
const normalize = false;
|
|
452
|
-
const stride = 0;
|
|
453
|
-
const offset = 0;
|
|
454
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.position);
|
|
455
|
-
gl.vertexAttribPointer(
|
|
456
|
-
programInfo.attribLocations.vertexPosition,
|
|
457
|
-
numComponents,
|
|
458
|
-
type,
|
|
459
|
-
normalize,
|
|
460
|
-
stride,
|
|
461
|
-
offset);
|
|
462
|
-
gl.enableVertexAttribArray(
|
|
463
|
-
programInfo.attribLocations.vertexPosition);
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
// Tell WebGL how to pull out the texture coordinates from
|
|
467
|
-
// the texture coordinate buffer into the textureCoord attribute.
|
|
468
|
-
{
|
|
469
|
-
const numComponents = 2;
|
|
470
|
-
const type = gl.FLOAT;
|
|
471
|
-
const normalize = false;
|
|
472
|
-
const stride = 0;
|
|
473
|
-
const offset = 0;
|
|
474
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.textureCoord);
|
|
475
|
-
gl.vertexAttribPointer(
|
|
476
|
-
programInfo.attribLocations.textureCoord,
|
|
477
|
-
numComponents,
|
|
478
|
-
type,
|
|
479
|
-
normalize,
|
|
480
|
-
stride,
|
|
481
|
-
offset);
|
|
482
|
-
gl.enableVertexAttribArray(
|
|
483
|
-
programInfo.attribLocations.textureCoord);
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
-
// Tell WebGL how to pull out the normals from
|
|
487
|
-
// the normal buffer into the vertexNormal attribute.
|
|
488
|
-
{
|
|
489
|
-
const numComponents = 3;
|
|
490
|
-
const type = gl.FLOAT;
|
|
491
|
-
const normalize = false;
|
|
492
|
-
const stride = 0;
|
|
493
|
-
const offset = 0;
|
|
494
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, buffers.normal);
|
|
495
|
-
gl.vertexAttribPointer(
|
|
496
|
-
programInfo.attribLocations.vertexNormal,
|
|
497
|
-
numComponents,
|
|
498
|
-
type,
|
|
499
|
-
normalize,
|
|
500
|
-
stride,
|
|
501
|
-
offset);
|
|
502
|
-
gl.enableVertexAttribArray(
|
|
503
|
-
programInfo.attribLocations.vertexNormal);
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
// Tell WebGL which indices to use to index the vertices
|
|
507
|
-
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffers.indices);
|
|
508
|
-
|
|
509
|
-
// Tell WebGL to use our program when drawing
|
|
510
|
-
|
|
511
|
-
gl.useProgram(programInfo.program);
|
|
512
|
-
|
|
513
|
-
// Set the shader uniforms
|
|
514
|
-
|
|
515
|
-
gl.uniformMatrix4fv(
|
|
516
|
-
programInfo.uniformLocations.projectionMatrix,
|
|
517
|
-
false,
|
|
518
|
-
projectionMatrix);
|
|
519
|
-
gl.uniformMatrix4fv(
|
|
520
|
-
programInfo.uniformLocations.modelViewMatrix,
|
|
521
|
-
false,
|
|
522
|
-
modelViewMatrix);
|
|
523
|
-
gl.uniformMatrix4fv(
|
|
524
|
-
programInfo.uniformLocations.normalMatrix,
|
|
525
|
-
false,
|
|
526
|
-
normalMatrix);
|
|
527
|
-
|
|
528
|
-
// Specify the texture to map onto the faces.
|
|
529
|
-
|
|
530
|
-
// Tell WebGL we want to affect texture unit 0
|
|
531
|
-
gl.activeTexture(gl.TEXTURE0);
|
|
532
|
-
|
|
533
|
-
// Bind the texture to texture unit 0
|
|
534
|
-
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
535
|
-
|
|
536
|
-
// Tell the shader we bound the texture to texture unit 0
|
|
537
|
-
gl.uniform1i(programInfo.uniformLocations.uSampler, 0);
|
|
538
|
-
|
|
539
|
-
{
|
|
540
|
-
const vertexCount = 36;
|
|
541
|
-
const type = gl.UNSIGNED_SHORT;
|
|
542
|
-
const offset = 0;
|
|
543
|
-
gl.drawElements(gl.TRIANGLES, vertexCount, type, offset);
|
|
544
|
-
}
|
|
545
|
-
|
|
546
|
-
// Update the rotation for the next draw
|
|
547
|
-
|
|
548
|
-
cubeRotation += deltaTime;
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
//
|
|
552
|
-
// Initialize a shader program, so WebGL knows how to draw our data
|
|
553
|
-
//
|
|
554
|
-
function initShaderProgram(gl, vsSource, fsSource) {
|
|
555
|
-
const vertexShader = loadShader(gl, gl.VERTEX_SHADER, vsSource);
|
|
556
|
-
const fragmentShader = loadShader(gl, gl.FRAGMENT_SHADER, fsSource);
|
|
557
|
-
|
|
558
|
-
// Create the shader program
|
|
559
|
-
|
|
560
|
-
const shaderProgram = gl.createProgram();
|
|
561
|
-
gl.attachShader(shaderProgram, vertexShader);
|
|
562
|
-
gl.attachShader(shaderProgram, fragmentShader);
|
|
563
|
-
gl.linkProgram(shaderProgram);
|
|
564
|
-
|
|
565
|
-
// If creating the shader program failed, alert
|
|
566
|
-
|
|
567
|
-
if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {
|
|
568
|
-
alert('Unable to initialize the shader program: ' + gl.getProgramInfoLog(shaderProgram));
|
|
569
|
-
return null;
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
return shaderProgram;
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
//
|
|
576
|
-
// creates a shader of the given type, uploads the source and
|
|
577
|
-
// compiles it.
|
|
578
|
-
//
|
|
579
|
-
function loadShader(gl, type, source) {
|
|
580
|
-
const shader = gl.createShader(type);
|
|
581
|
-
|
|
582
|
-
// Send the source to the shader object
|
|
583
|
-
|
|
584
|
-
gl.shaderSource(shader, source);
|
|
585
|
-
|
|
586
|
-
// Compile the shader program
|
|
587
|
-
|
|
588
|
-
gl.compileShader(shader);
|
|
589
|
-
|
|
590
|
-
// See if it compiled successfully
|
|
591
|
-
|
|
592
|
-
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
|
|
593
|
-
alert('An error occurred compiling the shaders: ' + gl.getShaderInfoLog(shader));
|
|
594
|
-
gl.deleteShader(shader);
|
|
595
|
-
return null;
|
|
596
|
-
}
|
|
597
|
-
|
|
598
|
-
return shader;
|
|
599
|
-
}
|
|
600
|
-
|
package/dist/webrtc.report.html
DELETED
|
@@ -1,506 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* @Author: Shirtiny
|
|
3
|
-
* @Date: 2021-12-15 09:59:59
|
|
4
|
-
* @LastEditTime: 2021-12-15 10:05:13
|
|
5
|
-
* @Description:
|
|
6
|
-
-->
|
|
7
|
-
<!DOCTYPE html>
|
|
8
|
-
<html lang="en">
|
|
9
|
-
<head>
|
|
10
|
-
<meta charset="UTF-8">
|
|
11
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
12
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
13
|
-
<title>Document</title>
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<h2>Report: certificate</h2>
|
|
17
|
-
<strong>ID:</strong> RTCCertificate_10:20:E9:A9:D9:D7:39:97:E5:BB:C4:82:98:D5:00:14:44:96:17:B3:FD:F7:C0:37:0A:A4:0E:43:D4:7E:F1:4D<br>
|
|
18
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
19
|
-
<strong>fingerprint:</strong> 10:20:E9:A9:D9:D7:39:97:E5:BB:C4:82:98:D5:00:14:44:96:17:B3:FD:F7:C0:37:0A:A4:0E:43:D4:7E:F1:4D<br>
|
|
20
|
-
<strong>fingerprintAlgorithm:</strong> sha-256<br>
|
|
21
|
-
<strong>base64Certificate:</strong> MIIBtjCCAVygAwIBAgIRAwwnU4zI7QZzipmdsZx4HNEwCgYIKoZIzj0EAwIwKzEpMCcGA1UEAxMgMTEyN2U2NDcxMmJmZmMxNWFjNWFiMzk4YjI0NGI3MmYwHhcNMjExMTMwMDc0MDA1WhcNMjExMjMwMDc0MDA1WjArMSkwJwYDVQQDEyAxMTI3ZTY0NzEyYmZmYzE1YWM1YWIzOThiMjQ0YjcyZjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBa33UnxpmCjk3iZikqnDfCvQuWEHXOZngRDBLwykhq9PIZbYAtDnFfZ99tY1xHMMhVhmKlG8xxxr+INEV/vy+mjYTBfMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUNQVTg0PcemhcgbisQPGuqzHM4fswCgYIKoZIzj0EAwIDSAAwRQIgWVa3QtLo3MkW8nqk6RYl5DPZmqWd2V64AHFlS60B7ekCIQDCIG6SB35gdC41zBLLGIe+U3kgCVKI9nckk1X5YUjQ0g==<br>
|
|
22
|
-
<h2>Report: certificate</h2>
|
|
23
|
-
<strong>ID:</strong> RTCCertificate_CF:4A:F1:C5:B5:83:0A:89:AF:2C:53:19:0D:29:39:22:76:0C:51:5D:90:AB:69:F1:BD:29:C2:AC:42:58:53:E3<br>
|
|
24
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
25
|
-
<strong>fingerprint:</strong> CF:4A:F1:C5:B5:83:0A:89:AF:2C:53:19:0D:29:39:22:76:0C:51:5D:90:AB:69:F1:BD:29:C2:AC:42:58:53:E3<br>
|
|
26
|
-
<strong>fingerprintAlgorithm:</strong> sha-256<br>
|
|
27
|
-
<strong>base64Certificate:</strong> MIIBFTCBvaADAgECAgkAg4SPRKDKvzMwCgYIKoZIzj0EAwIwETEPMA0GA1UEAwwGV2ViUlRDMB4XDTIxMTIxNDAyMDQ1OFoXDTIyMDExNDAyMDQ1OFowETEPMA0GA1UEAwwGV2ViUlRDMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEC8PnJ1YRp0F/opAzoJ82x9M61V+UMFy9IlgP1LoM+QuNg4vs8g7iz0BeDhcK8f77NXQd0EIXBZzcOuLuaUXfCjAKBggqhkjOPQQDAgNHADBEAiA3GQWLSSIHuX+eaywcmNtwWrRe0yqEKLZQEmudrgAxRQIgaiERaTzxs3olW+w9a3+5jy99yCCjJJBmnBc2hrNl22Y=<br>
|
|
28
|
-
<h2>Report: codec</h2>
|
|
29
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_0<br>
|
|
30
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
31
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
32
|
-
<strong>payloadType:</strong> 0<br>
|
|
33
|
-
<strong>mimeType:</strong> audio/PCMU<br>
|
|
34
|
-
<strong>clockRate:</strong> 8000<br>
|
|
35
|
-
<strong>channels:</strong> 1<br>
|
|
36
|
-
<h2>Report: codec</h2>
|
|
37
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_103<br>
|
|
38
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
39
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
40
|
-
<strong>payloadType:</strong> 103<br>
|
|
41
|
-
<strong>mimeType:</strong> audio/ISAC<br>
|
|
42
|
-
<strong>clockRate:</strong> 16000<br>
|
|
43
|
-
<strong>channels:</strong> 1<br>
|
|
44
|
-
<h2>Report: codec</h2>
|
|
45
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_104<br>
|
|
46
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
47
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
48
|
-
<strong>payloadType:</strong> 104<br>
|
|
49
|
-
<strong>mimeType:</strong> audio/ISAC<br>
|
|
50
|
-
<strong>clockRate:</strong> 32000<br>
|
|
51
|
-
<strong>channels:</strong> 1<br>
|
|
52
|
-
<h2>Report: codec</h2>
|
|
53
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_105<br>
|
|
54
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
55
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
56
|
-
<strong>payloadType:</strong> 105<br>
|
|
57
|
-
<strong>mimeType:</strong> audio/CN<br>
|
|
58
|
-
<strong>clockRate:</strong> 16000<br>
|
|
59
|
-
<strong>channels:</strong> 1<br>
|
|
60
|
-
<h2>Report: codec</h2>
|
|
61
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_106<br>
|
|
62
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
63
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
64
|
-
<strong>payloadType:</strong> 106<br>
|
|
65
|
-
<strong>mimeType:</strong> audio/CN<br>
|
|
66
|
-
<strong>clockRate:</strong> 32000<br>
|
|
67
|
-
<strong>channels:</strong> 1<br>
|
|
68
|
-
<h2>Report: codec</h2>
|
|
69
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_110<br>
|
|
70
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
71
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
72
|
-
<strong>payloadType:</strong> 110<br>
|
|
73
|
-
<strong>mimeType:</strong> audio/telephone-event<br>
|
|
74
|
-
<strong>clockRate:</strong> 48000<br>
|
|
75
|
-
<strong>channels:</strong> 1<br>
|
|
76
|
-
<h2>Report: codec</h2>
|
|
77
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_111<br>
|
|
78
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
79
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
80
|
-
<strong>payloadType:</strong> 111<br>
|
|
81
|
-
<strong>mimeType:</strong> audio/opus<br>
|
|
82
|
-
<strong>clockRate:</strong> 48000<br>
|
|
83
|
-
<strong>channels:</strong> 2<br>
|
|
84
|
-
<strong>sdpFmtpLine:</strong> minptime=10;useinbandfec=1<br>
|
|
85
|
-
<h2>Report: codec</h2>
|
|
86
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_112<br>
|
|
87
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
88
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
89
|
-
<strong>payloadType:</strong> 112<br>
|
|
90
|
-
<strong>mimeType:</strong> audio/telephone-event<br>
|
|
91
|
-
<strong>clockRate:</strong> 32000<br>
|
|
92
|
-
<strong>channels:</strong> 1<br>
|
|
93
|
-
<h2>Report: codec</h2>
|
|
94
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_113<br>
|
|
95
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
96
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
97
|
-
<strong>payloadType:</strong> 113<br>
|
|
98
|
-
<strong>mimeType:</strong> audio/telephone-event<br>
|
|
99
|
-
<strong>clockRate:</strong> 16000<br>
|
|
100
|
-
<strong>channels:</strong> 1<br>
|
|
101
|
-
<h2>Report: codec</h2>
|
|
102
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_126<br>
|
|
103
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
104
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
105
|
-
<strong>payloadType:</strong> 126<br>
|
|
106
|
-
<strong>mimeType:</strong> audio/telephone-event<br>
|
|
107
|
-
<strong>clockRate:</strong> 8000<br>
|
|
108
|
-
<strong>channels:</strong> 1<br>
|
|
109
|
-
<h2>Report: codec</h2>
|
|
110
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_13<br>
|
|
111
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
112
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
113
|
-
<strong>payloadType:</strong> 13<br>
|
|
114
|
-
<strong>mimeType:</strong> audio/CN<br>
|
|
115
|
-
<strong>clockRate:</strong> 8000<br>
|
|
116
|
-
<strong>channels:</strong> 1<br>
|
|
117
|
-
<h2>Report: codec</h2>
|
|
118
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_63<br>
|
|
119
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
120
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
121
|
-
<strong>payloadType:</strong> 63<br>
|
|
122
|
-
<strong>mimeType:</strong> audio/red<br>
|
|
123
|
-
<strong>clockRate:</strong> 48000<br>
|
|
124
|
-
<strong>channels:</strong> 2<br>
|
|
125
|
-
<strong>sdpFmtpLine:</strong> 111/111<br>
|
|
126
|
-
<h2>Report: codec</h2>
|
|
127
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_8<br>
|
|
128
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
129
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
130
|
-
<strong>payloadType:</strong> 8<br>
|
|
131
|
-
<strong>mimeType:</strong> audio/PCMA<br>
|
|
132
|
-
<strong>clockRate:</strong> 8000<br>
|
|
133
|
-
<strong>channels:</strong> 1<br>
|
|
134
|
-
<h2>Report: codec</h2>
|
|
135
|
-
<strong>ID:</strong> RTCCodec_0_Inbound_9<br>
|
|
136
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
137
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
138
|
-
<strong>payloadType:</strong> 9<br>
|
|
139
|
-
<strong>mimeType:</strong> audio/G722<br>
|
|
140
|
-
<strong>clockRate:</strong> 8000<br>
|
|
141
|
-
<strong>channels:</strong> 1<br>
|
|
142
|
-
<h2>Report: codec</h2>
|
|
143
|
-
<strong>ID:</strong> RTCCodec_0_Outbound_8<br>
|
|
144
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
145
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
146
|
-
<strong>payloadType:</strong> 8<br>
|
|
147
|
-
<strong>mimeType:</strong> audio/PCMA<br>
|
|
148
|
-
<strong>clockRate:</strong> 8000<br>
|
|
149
|
-
<strong>channels:</strong> 1<br>
|
|
150
|
-
<h2>Report: codec</h2>
|
|
151
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_100<br>
|
|
152
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
153
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
154
|
-
<strong>payloadType:</strong> 100<br>
|
|
155
|
-
<strong>mimeType:</strong> video/VP9<br>
|
|
156
|
-
<strong>clockRate:</strong> 90000<br>
|
|
157
|
-
<strong>sdpFmtpLine:</strong> profile-id=2<br>
|
|
158
|
-
<h2>Report: codec</h2>
|
|
159
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_101<br>
|
|
160
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
161
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
162
|
-
<strong>payloadType:</strong> 101<br>
|
|
163
|
-
<strong>mimeType:</strong> video/rtx<br>
|
|
164
|
-
<strong>clockRate:</strong> 90000<br>
|
|
165
|
-
<strong>sdpFmtpLine:</strong> apt=100<br>
|
|
166
|
-
<h2>Report: codec</h2>
|
|
167
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_102<br>
|
|
168
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
169
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
170
|
-
<strong>payloadType:</strong> 102<br>
|
|
171
|
-
<strong>mimeType:</strong> video/H264<br>
|
|
172
|
-
<strong>clockRate:</strong> 90000<br>
|
|
173
|
-
<strong>sdpFmtpLine:</strong> level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f<br>
|
|
174
|
-
<h2>Report: codec</h2>
|
|
175
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_107<br>
|
|
176
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
177
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
178
|
-
<strong>payloadType:</strong> 107<br>
|
|
179
|
-
<strong>mimeType:</strong> video/rtx<br>
|
|
180
|
-
<strong>clockRate:</strong> 90000<br>
|
|
181
|
-
<strong>sdpFmtpLine:</strong> apt=125<br>
|
|
182
|
-
<h2>Report: codec</h2>
|
|
183
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_108<br>
|
|
184
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
185
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
186
|
-
<strong>payloadType:</strong> 108<br>
|
|
187
|
-
<strong>mimeType:</strong> video/H264<br>
|
|
188
|
-
<strong>clockRate:</strong> 90000<br>
|
|
189
|
-
<strong>sdpFmtpLine:</strong> level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f<br>
|
|
190
|
-
<h2>Report: codec</h2>
|
|
191
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_109<br>
|
|
192
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
193
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
194
|
-
<strong>payloadType:</strong> 109<br>
|
|
195
|
-
<strong>mimeType:</strong> video/rtx<br>
|
|
196
|
-
<strong>clockRate:</strong> 90000<br>
|
|
197
|
-
<strong>sdpFmtpLine:</strong> apt=108<br>
|
|
198
|
-
<h2>Report: codec</h2>
|
|
199
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_114<br>
|
|
200
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
201
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
202
|
-
<strong>payloadType:</strong> 114<br>
|
|
203
|
-
<strong>mimeType:</strong> video/red<br>
|
|
204
|
-
<strong>clockRate:</strong> 90000<br>
|
|
205
|
-
<h2>Report: codec</h2>
|
|
206
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_115<br>
|
|
207
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
208
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
209
|
-
<strong>payloadType:</strong> 115<br>
|
|
210
|
-
<strong>mimeType:</strong> video/rtx<br>
|
|
211
|
-
<strong>clockRate:</strong> 90000<br>
|
|
212
|
-
<strong>sdpFmtpLine:</strong> apt=114<br>
|
|
213
|
-
<h2>Report: codec</h2>
|
|
214
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_116<br>
|
|
215
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
216
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
217
|
-
<strong>payloadType:</strong> 116<br>
|
|
218
|
-
<strong>mimeType:</strong> video/ulpfec<br>
|
|
219
|
-
<strong>clockRate:</strong> 90000<br>
|
|
220
|
-
<h2>Report: codec</h2>
|
|
221
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_118<br>
|
|
222
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
223
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
224
|
-
<strong>payloadType:</strong> 118<br>
|
|
225
|
-
<strong>mimeType:</strong> video/rtx<br>
|
|
226
|
-
<strong>clockRate:</strong> 90000<br>
|
|
227
|
-
<strong>sdpFmtpLine:</strong> apt=123<br>
|
|
228
|
-
<h2>Report: codec</h2>
|
|
229
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_119<br>
|
|
230
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
231
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
232
|
-
<strong>payloadType:</strong> 119<br>
|
|
233
|
-
<strong>mimeType:</strong> video/rtx<br>
|
|
234
|
-
<strong>clockRate:</strong> 90000<br>
|
|
235
|
-
<strong>sdpFmtpLine:</strong> apt=124<br>
|
|
236
|
-
<h2>Report: codec</h2>
|
|
237
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_120<br>
|
|
238
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
239
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
240
|
-
<strong>payloadType:</strong> 120<br>
|
|
241
|
-
<strong>mimeType:</strong> video/rtx<br>
|
|
242
|
-
<strong>clockRate:</strong> 90000<br>
|
|
243
|
-
<strong>sdpFmtpLine:</strong> apt=127<br>
|
|
244
|
-
<h2>Report: codec</h2>
|
|
245
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_121<br>
|
|
246
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
247
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
248
|
-
<strong>payloadType:</strong> 121<br>
|
|
249
|
-
<strong>mimeType:</strong> video/rtx<br>
|
|
250
|
-
<strong>clockRate:</strong> 90000<br>
|
|
251
|
-
<strong>sdpFmtpLine:</strong> apt=102<br>
|
|
252
|
-
<h2>Report: codec</h2>
|
|
253
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_122<br>
|
|
254
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
255
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
256
|
-
<strong>payloadType:</strong> 122<br>
|
|
257
|
-
<strong>mimeType:</strong> video/VP9<br>
|
|
258
|
-
<strong>clockRate:</strong> 90000<br>
|
|
259
|
-
<strong>sdpFmtpLine:</strong> profile-id=1<br>
|
|
260
|
-
<h2>Report: codec</h2>
|
|
261
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_123<br>
|
|
262
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
263
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
264
|
-
<strong>payloadType:</strong> 123<br>
|
|
265
|
-
<strong>mimeType:</strong> video/H264<br>
|
|
266
|
-
<strong>clockRate:</strong> 90000<br>
|
|
267
|
-
<strong>sdpFmtpLine:</strong> level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f<br>
|
|
268
|
-
<h2>Report: codec</h2>
|
|
269
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_124<br>
|
|
270
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
271
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
272
|
-
<strong>payloadType:</strong> 124<br>
|
|
273
|
-
<strong>mimeType:</strong> video/H264<br>
|
|
274
|
-
<strong>clockRate:</strong> 90000<br>
|
|
275
|
-
<strong>sdpFmtpLine:</strong> level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f<br>
|
|
276
|
-
<h2>Report: codec</h2>
|
|
277
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_125<br>
|
|
278
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
279
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
280
|
-
<strong>payloadType:</strong> 125<br>
|
|
281
|
-
<strong>mimeType:</strong> video/H264<br>
|
|
282
|
-
<strong>clockRate:</strong> 90000<br>
|
|
283
|
-
<strong>sdpFmtpLine:</strong> level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f<br>
|
|
284
|
-
<h2>Report: codec</h2>
|
|
285
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_127<br>
|
|
286
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
287
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
288
|
-
<strong>payloadType:</strong> 127<br>
|
|
289
|
-
<strong>mimeType:</strong> video/H264<br>
|
|
290
|
-
<strong>clockRate:</strong> 90000<br>
|
|
291
|
-
<strong>sdpFmtpLine:</strong> level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f<br>
|
|
292
|
-
<h2>Report: codec</h2>
|
|
293
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_35<br>
|
|
294
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
295
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
296
|
-
<strong>payloadType:</strong> 35<br>
|
|
297
|
-
<strong>mimeType:</strong> video/flexfec-03<br>
|
|
298
|
-
<strong>clockRate:</strong> 90000<br>
|
|
299
|
-
<strong>sdpFmtpLine:</strong> repair-window=10000000<br>
|
|
300
|
-
<h2>Report: codec</h2>
|
|
301
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_96<br>
|
|
302
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
303
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
304
|
-
<strong>payloadType:</strong> 96<br>
|
|
305
|
-
<strong>mimeType:</strong> video/VP8<br>
|
|
306
|
-
<strong>clockRate:</strong> 90000<br>
|
|
307
|
-
<h2>Report: codec</h2>
|
|
308
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_97<br>
|
|
309
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
310
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
311
|
-
<strong>payloadType:</strong> 97<br>
|
|
312
|
-
<strong>mimeType:</strong> video/rtx<br>
|
|
313
|
-
<strong>clockRate:</strong> 90000<br>
|
|
314
|
-
<strong>sdpFmtpLine:</strong> apt=96<br>
|
|
315
|
-
<h2>Report: codec</h2>
|
|
316
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_98<br>
|
|
317
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
318
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
319
|
-
<strong>payloadType:</strong> 98<br>
|
|
320
|
-
<strong>mimeType:</strong> video/VP9<br>
|
|
321
|
-
<strong>clockRate:</strong> 90000<br>
|
|
322
|
-
<strong>sdpFmtpLine:</strong> profile-id=0<br>
|
|
323
|
-
<h2>Report: codec</h2>
|
|
324
|
-
<strong>ID:</strong> RTCCodec_1_Inbound_99<br>
|
|
325
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
326
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
327
|
-
<strong>payloadType:</strong> 99<br>
|
|
328
|
-
<strong>mimeType:</strong> video/rtx<br>
|
|
329
|
-
<strong>clockRate:</strong> 90000<br>
|
|
330
|
-
<strong>sdpFmtpLine:</strong> apt=98<br>
|
|
331
|
-
<h2>Report: codec</h2>
|
|
332
|
-
<strong>ID:</strong> RTCCodec_1_Outbound_102<br>
|
|
333
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
334
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
335
|
-
<strong>payloadType:</strong> 102<br>
|
|
336
|
-
<strong>mimeType:</strong> video/H264<br>
|
|
337
|
-
<strong>clockRate:</strong> 90000<br>
|
|
338
|
-
<strong>sdpFmtpLine:</strong> sprop-parameter-sets=Z0KAKNoB4AifllIKBAQNoUJq,aM4G8g==<br>
|
|
339
|
-
<h2>Report: candidate-pair</h2>
|
|
340
|
-
<strong>ID:</strong> RTCIceCandidatePair_CaXxjXAc_bDJ9G6HY<br>
|
|
341
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
342
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
343
|
-
<strong>localCandidateId:</strong> RTCIceCandidate_CaXxjXAc<br>
|
|
344
|
-
<strong>remoteCandidateId:</strong> RTCIceCandidate_bDJ9G6HY<br>
|
|
345
|
-
<strong>state:</strong> succeeded<br>
|
|
346
|
-
<strong>priority:</strong> 7962116751007154000<br>
|
|
347
|
-
<strong>nominated:</strong> true<br>
|
|
348
|
-
<strong>writable:</strong> true<br>
|
|
349
|
-
<strong>packetsSent:</strong> 8<br>
|
|
350
|
-
<strong>packetsReceived:</strong> 1063<br>
|
|
351
|
-
<strong>bytesSent:</strong> 1070<br>
|
|
352
|
-
<strong>bytesReceived:</strong> 979874<br>
|
|
353
|
-
<strong>totalRoundTripTime:</strong> 0.439<br>
|
|
354
|
-
<strong>currentRoundTripTime:</strong> 0.003<br>
|
|
355
|
-
<strong>availableOutgoingBitrate:</strong> 300000<br>
|
|
356
|
-
<strong>requestsReceived:</strong> 0<br>
|
|
357
|
-
<strong>requestsSent:</strong> 4<br>
|
|
358
|
-
<strong>responsesReceived:</strong> 5<br>
|
|
359
|
-
<strong>responsesSent:</strong> 0<br>
|
|
360
|
-
<strong>consentRequestsSent:</strong> 1<br>
|
|
361
|
-
<strong>packetsDiscardedOnSend:</strong> 0<br>
|
|
362
|
-
<strong>bytesDiscardedOnSend:</strong> 0<br>
|
|
363
|
-
<h2>Report: local-candidate</h2>
|
|
364
|
-
<strong>ID:</strong> RTCIceCandidate_CaXxjXAc<br>
|
|
365
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
366
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
367
|
-
<strong>isRemote:</strong> false<br>
|
|
368
|
-
<strong>networkType:</strong> ethernet<br>
|
|
369
|
-
<strong>ip:</strong> 192.168.6.250<br>
|
|
370
|
-
<strong>address:</strong> 192.168.6.250<br>
|
|
371
|
-
<strong>port:</strong> 63228<br>
|
|
372
|
-
<strong>protocol:</strong> udp<br>
|
|
373
|
-
<strong>candidateType:</strong> prflx<br>
|
|
374
|
-
<strong>priority:</strong> 1853824767<br>
|
|
375
|
-
<h2>Report: remote-candidate</h2>
|
|
376
|
-
<strong>ID:</strong> RTCIceCandidate_bDJ9G6HY<br>
|
|
377
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
378
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
379
|
-
<strong>isRemote:</strong> true<br>
|
|
380
|
-
<strong>ip:</strong> 192.168.88.11<br>
|
|
381
|
-
<strong>address:</strong> 192.168.88.11<br>
|
|
382
|
-
<strong>port:</strong> 9703<br>
|
|
383
|
-
<strong>protocol:</strong> udp<br>
|
|
384
|
-
<strong>candidateType:</strong> host<br>
|
|
385
|
-
<strong>priority:</strong> 2113667327<br>
|
|
386
|
-
<h2>Report: inbound-rtp</h2>
|
|
387
|
-
<strong>ID:</strong> RTCInboundRTPAudioStream_36094<br>
|
|
388
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
389
|
-
<strong>ssrc:</strong> 36094<br>
|
|
390
|
-
<strong>kind:</strong> audio<br>
|
|
391
|
-
<strong>trackId:</strong> RTCMediaStreamTrack_receiver_9<br>
|
|
392
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
393
|
-
<strong>codecId:</strong> RTCCodec_0_Inbound_8<br>
|
|
394
|
-
<strong>mediaType:</strong> audio<br>
|
|
395
|
-
<strong>jitter:</strong> 0.052<br>
|
|
396
|
-
<strong>packetsLost:</strong> 0<br>
|
|
397
|
-
<strong>packetsDiscarded:</strong> 4<br>
|
|
398
|
-
<strong>packetsReceived:</strong> 49<br>
|
|
399
|
-
<strong>fecPacketsReceived:</strong> 0<br>
|
|
400
|
-
<strong>fecPacketsDiscarded:</strong> 0<br>
|
|
401
|
-
<strong>bytesReceived:</strong> 15680<br>
|
|
402
|
-
<strong>headerBytesReceived:</strong> 588<br>
|
|
403
|
-
<strong>lastPacketReceivedTimestamp:</strong> 1639533903395<br>
|
|
404
|
-
<strong>jitterBufferDelay:</strong> 2364.8<br>
|
|
405
|
-
<strong>jitterBufferEmittedCount:</strong> 11200<br>
|
|
406
|
-
<strong>totalSamplesReceived:</strong> 20240<br>
|
|
407
|
-
<strong>concealedSamples:</strong> 7688<br>
|
|
408
|
-
<strong>silentConcealedSamples:</strong> 3424<br>
|
|
409
|
-
<strong>concealmentEvents:</strong> 11<br>
|
|
410
|
-
<strong>insertedSamplesForDeceleration:</strong> 1510<br>
|
|
411
|
-
<strong>removedSamplesForAcceleration:</strong> 152<br>
|
|
412
|
-
<strong>audioLevel:</strong> 0.010010071108127079<br>
|
|
413
|
-
<strong>totalAudioEnergy:</strong> 0.00013926383727749428<br>
|
|
414
|
-
<strong>totalSamplesDuration:</strong> 2.289999999999995<br>
|
|
415
|
-
<h2>Report: inbound-rtp</h2>
|
|
416
|
-
<strong>ID:</strong> RTCInboundRTPVideoStream_36095<br>
|
|
417
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
418
|
-
<strong>ssrc:</strong> 36095<br>
|
|
419
|
-
<strong>kind:</strong> video<br>
|
|
420
|
-
<strong>trackId:</strong> RTCMediaStreamTrack_receiver_10<br>
|
|
421
|
-
<strong>transportId:</strong> RTCTransport_0_1<br>
|
|
422
|
-
<strong>codecId:</strong> RTCCodec_1_Inbound_102<br>
|
|
423
|
-
<strong>mediaType:</strong> video<br>
|
|
424
|
-
<strong>jitter:</strong> 0.042<br>
|
|
425
|
-
<strong>packetsLost:</strong> 0<br>
|
|
426
|
-
<strong>packetsReceived:</strong> 1001<br>
|
|
427
|
-
<strong>bytesReceived:</strong> 939769<br>
|
|
428
|
-
<strong>headerBytesReceived:</strong> 12012<br>
|
|
429
|
-
<strong>lastPacketReceivedTimestamp:</strong> 1639533903397<br>
|
|
430
|
-
<strong>jitterBufferDelay:</strong> 3.764<br>
|
|
431
|
-
<strong>jitterBufferEmittedCount:</strong> 38<br>
|
|
432
|
-
<strong>framesReceived:</strong> 51<br>
|
|
433
|
-
<strong>frameWidth:</strong> 1920<br>
|
|
434
|
-
<strong>frameHeight:</strong> 1080<br>
|
|
435
|
-
<strong>framesPerSecond:</strong> 20<br>
|
|
436
|
-
<strong>framesDecoded:</strong> 40<br>
|
|
437
|
-
<strong>keyFramesDecoded:</strong> 2<br>
|
|
438
|
-
<strong>framesDropped:</strong> 5<br>
|
|
439
|
-
<strong>totalDecodeTime:</strong> 0.506<br>
|
|
440
|
-
<strong>totalInterFrameDelay:</strong> 1.771<br>
|
|
441
|
-
<strong>totalSquaredInterFrameDelay:</strong> 0.2622270000000001<br>
|
|
442
|
-
<strong>decoderImplementation:</strong> ExternalDecoder<br>
|
|
443
|
-
<strong>firCount:</strong> 0<br>
|
|
444
|
-
<strong>pliCount:</strong> 2<br>
|
|
445
|
-
<strong>nackCount:</strong> 0<br>
|
|
446
|
-
<h2>Report: track</h2>
|
|
447
|
-
<strong>ID:</strong> RTCMediaStreamTrack_receiver_10<br>
|
|
448
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
449
|
-
<strong>trackIdentifier:</strong> 04d718e5-f6b3-4a99-9da5-8391b6c72e40<br>
|
|
450
|
-
<strong>remoteSource:</strong> true<br>
|
|
451
|
-
<strong>ended:</strong> false<br>
|
|
452
|
-
<strong>detached:</strong> false<br>
|
|
453
|
-
<strong>kind:</strong> video<br>
|
|
454
|
-
<strong>jitterBufferDelay:</strong> 3.764<br>
|
|
455
|
-
<strong>jitterBufferEmittedCount:</strong> 38<br>
|
|
456
|
-
<strong>frameWidth:</strong> 1920<br>
|
|
457
|
-
<strong>frameHeight:</strong> 1080<br>
|
|
458
|
-
<strong>framesReceived:</strong> 51<br>
|
|
459
|
-
<strong>framesDecoded:</strong> 40<br>
|
|
460
|
-
<strong>framesDropped:</strong> 5<br>
|
|
461
|
-
<h2>Report: track</h2>
|
|
462
|
-
<strong>ID:</strong> RTCMediaStreamTrack_receiver_9<br>
|
|
463
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
464
|
-
<strong>trackIdentifier:</strong> 7f28f6f0-d79e-468b-a651-c7532431da49<br>
|
|
465
|
-
<strong>remoteSource:</strong> true<br>
|
|
466
|
-
<strong>ended:</strong> false<br>
|
|
467
|
-
<strong>detached:</strong> false<br>
|
|
468
|
-
<strong>kind:</strong> audio<br>
|
|
469
|
-
<strong>jitterBufferDelay:</strong> 2364.8<br>
|
|
470
|
-
<strong>jitterBufferEmittedCount:</strong> 11200<br>
|
|
471
|
-
<strong>audioLevel:</strong> 0.010010071108127079<br>
|
|
472
|
-
<strong>totalAudioEnergy:</strong> 0.00013926383727749428<br>
|
|
473
|
-
<strong>totalSamplesReceived:</strong> 20240<br>
|
|
474
|
-
<strong>totalSamplesDuration:</strong> 2.289999999999995<br>
|
|
475
|
-
<strong>concealedSamples:</strong> 7688<br>
|
|
476
|
-
<strong>silentConcealedSamples:</strong> 3424<br>
|
|
477
|
-
<strong>concealmentEvents:</strong> 11<br>
|
|
478
|
-
<strong>insertedSamplesForDeceleration:</strong> 1510<br>
|
|
479
|
-
<strong>removedSamplesForAcceleration:</strong> 152<br>
|
|
480
|
-
<h2>Report: stream</h2>
|
|
481
|
-
<strong>ID:</strong> RTCMediaStream_smarteye<br>
|
|
482
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
483
|
-
<strong>streamIdentifier:</strong> smarteye<br>
|
|
484
|
-
<strong>trackIds:</strong> RTCMediaStreamTrack_receiver_9,RTCMediaStreamTrack_receiver_10<br>
|
|
485
|
-
<h2>Report: peer-connection</h2>
|
|
486
|
-
<strong>ID:</strong> RTCPeerConnection<br>
|
|
487
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
488
|
-
<strong>dataChannelsOpened:</strong> 0<br>
|
|
489
|
-
<strong>dataChannelsClosed:</strong> 0<br>
|
|
490
|
-
<h2>Report: transport</h2>
|
|
491
|
-
<strong>ID:</strong> RTCTransport_0_1<br>
|
|
492
|
-
<strong>Timestamp:</strong> 1639533903510<br>
|
|
493
|
-
<strong>bytesSent:</strong> 1070<br>
|
|
494
|
-
<strong>packetsSent:</strong> 8<br>
|
|
495
|
-
<strong>bytesReceived:</strong> 979874<br>
|
|
496
|
-
<strong>packetsReceived:</strong> 1063<br>
|
|
497
|
-
<strong>dtlsState:</strong> connected<br>
|
|
498
|
-
<strong>selectedCandidatePairId:</strong> RTCIceCandidatePair_CaXxjXAc_bDJ9G6HY<br>
|
|
499
|
-
<strong>localCertificateId:</strong> RTCCertificate_CF:4A:F1:C5:B5:83:0A:89:AF:2C:53:19:0D:29:39:22:76:0C:51:5D:90:AB:69:F1:BD:29:C2:AC:42:58:53:E3<br>
|
|
500
|
-
<strong>remoteCertificateId:</strong> RTCCertificate_10:20:E9:A9:D9:D7:39:97:E5:BB:C4:82:98:D5:00:14:44:96:17:B3:FD:F7:C0:37:0A:A4:0E:43:D4:7E:F1:4D<br>
|
|
501
|
-
<strong>tlsVersion:</strong> FEFD<br>
|
|
502
|
-
<strong>dtlsCipher:</strong> TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256<br>
|
|
503
|
-
<strong>srtpCipher:</strong> AES_CM_128_HMAC_SHA1_80<br>
|
|
504
|
-
<strong>selectedCandidatePairChanges:</strong> 1<br>
|
|
505
|
-
</body>
|
|
506
|
-
</html>
|