You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `MediaStatsCallFeature` object has the following API structure:
24
-
25
-
- The `OnSampleReportedListener` event listens for periodic reports of the media statistics.
26
-
-`setSampleIntervalInSeconds(int value)` sets the interval, in seconds, of the media statistics report generation. If it's not specified, the SDK uses defaults.
27
-
- A `MediaStatsReport` object contains the definition of the outgoing and incoming media statistics, categorized by audio, video, and screen share.
28
-
-`getOutgoingMediaStats()`: The list of media statistics for outgoing media.
29
-
-`getAudio()`: The list of media statistics for outgoing audio.
30
-
-`getVideo()`: The list of media statistics for outgoing video.
31
-
-`getScreenShare()`: The list of media statistics for outgoing screen share.
32
-
-`getIncomingStats()`: The list of media statistics for incoming media.
33
-
-`getAudio()`: The list of media statistics for incoming audio.
34
-
-`getVideo()`: The list of media statistics for the incoming video.
35
-
-`getScreenShare()`: The list of media statistics for incoming screen share.
36
-
-`getGeneratedAt()`: The date when the report was generated.
37
-
-`getIncomingMediaStatsFromParticipant`: Gets the `IncomingMediaStats` value for `RemoteParticipant`.
38
-
39
-
Then, subscribe to the `addOnSampleReportedListener` event to get regular updates about the current media quality statistics:
23
+
The `MediaStatisticsCallFeature` object has the following API structure:
24
+
25
+
- The `OnReportReceivedListener` event listens for periodic reports of the media statistics.
26
+
-`getReportIntervalInSeconds` gets the interval, in seconds, of the media statistics report generation. The SDK uses `10` second as default.
27
+
-`updateReportIntervalInSeconds()` updates the interval, in seconds, of the media statistics report generation. The SDK uses `10` second as default.
28
+
- A `MediaStatisticsReport` contains the definition of the outgoing and incoming media statistics, categorized by audio, video, and screen share.
29
+
-`getOutgoingStatistics()`: The list of media statistics for outgoing media.
30
+
-`getAudioStatistics()`: The list of media statistics for outgoing audio.
31
+
-`getVideoStatistics()`: The list of media statistics for outgoing video.
32
+
-`getScreenShareStatistics()`: The list of media statistics for outgoing screen share.
33
+
-`getDataChannelStatistics()`: The list of media statistics for data channel.
34
+
-`getIncomingStatistics()`: The list of media statistics for incoming media.
35
+
-`getAudioStatistics()`: The list of media statistics for incoming audio.
36
+
-`getVideoStatistics()`: The list of media statistics for the incoming video.
37
+
-`getScreenShareStatistics()`: The list of media statistics for incoming screen share.
38
+
-`getDataChannelStatistics()`: The list of media statistics for data channel.
39
+
-`getLastUpdatedAt()`: The date when the report was generated.
40
+
41
+
Then, subscribe to the `addOnReportReceivedListener` event to get regular updates about the current media quality statistics:
The `mediaStatsCallFeature` object has the following API structure:
23
+
The `mediaStatisticsCallFeature` object has the following API structure:
24
24
25
-
- The `didReceiveSample` delegate method listens for periodic reports of the media statistics.
26
-
-`sampleIntervalInSeconds` gets and sets the interval, in seconds, of the media statistics report generation. If it's not specified, the SDK uses defaults.
27
-
- A `MediaStatsReport` object contains the definition of the outgoing and incoming media statistics, categorized by audio, video, and screen share.
28
-
-`OutgoingMediaStats`: The list of media statistics for outgoing media.
25
+
- The `didReceiveReport` delegate method listens for periodic reports of the media statistics.
26
+
-`reportIntervalInSeconds` gets the interval, in seconds, of the media statistics report generation. The SDK uses `10` second as default.
27
+
-`updateReportInterval(inSeconds)` updates the interval, in seconds, of the media statistics report generation. The SDK uses `10` second as default.
28
+
- A `MediaStatisticsReport` object contains the definition of the outgoing and incoming media statistics, categorized by audio, video, and screen share.
29
+
-`outgoingMediaStatistics`: The list of media statistics for outgoing media.
29
30
-`audio`: The list of media statistics for the outgoing audio.
30
31
-`video`: The list of media statistics for the outgoing video.
31
32
-`screenShare`: The list of media statistics for the outgoing screen share.
32
-
-`OncomingStats`: The list of media statistics for incoming media.
33
+
-`dataChannel`: The list of media statistics for the outgoing data channel.
34
+
-`incomingMediaStatistics`: The list of media statistics for incoming media.
33
35
-`audio`: The list of media statistics for the incoming audio.
34
36
-`video`: The list of media statistics for the incoming video.
35
37
-`screenShare`: The list of media statistics for the incoming screen share.
36
-
-`generatedAt`: The date when the report was generated.
37
-
-`incomingMediaStats`: Gets the `IncomingMediaStats` value for `RemoteParticipant`.
38
+
-`dataChannel`: The list of media statistics for the incoming data channel.
39
+
-`lastUpdated`: The date when the report was generated.
38
40
39
-
Then, subscribe to the `SampleReported` event to get regular updates about the current media quality statistics:
41
+
Then, implement the `didReceiveReport` delegate to get regular updates about the current media quality statistics:
40
42
41
43
```swift
42
44
// Optionally, set the interval for media statistics report generation
Copy file name to clipboardExpand all lines: articles/communication-services/concepts/voice-video-calling/includes/media-stats/media-stats-native-metrics.md
+31-26Lines changed: 31 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,64 +14,69 @@ ms.subservice: calling
14
14
15
15
## Best practices
16
16
17
-
If you want to collect the data for offline inspection, we recommend that you collect the data and send it to your pipeline ingestion after your call ends. If you transmit the data during a call, it could use internet bandwidth that's needed to continue an Azure Communication Services call (especially when available bandwidth is low).
17
+
If you want to collect the data for offline inspection, we recommend that you collect the data and send it to your pipeline ingestion after your call ends. If you transmit the data during a call, it could use internet bandwidth needed to continue an Azure Communication Services call (especially when available bandwidth is low).
18
18
19
19
### Outgoing audio metrics
20
20
21
21
| Metric name | Description | Comments |
22
22
| ----------- | ----------- | -------- |
23
23
|`CodecName`| Codec name ||
24
-
|`Bitrate`| Audio send bitrate (bits per second) | General values are in the 24-Kbps range (36-128 Kbps is typical). |
24
+
|`BitrateInBps`| Audio send bitrate (bits per second) | General values are in the 24-Kbps range (36-128 Kbps is typical). |
25
25
|`JitterInMs`| Packet jitter (milliseconds) | Lower is better. |
26
-
|`PacketsPerSecond`| Packet rate (packets per second) ||
27
-
|`RoundTripTimeInMs`| Round-trip time (milliseconds) | Lower is better. It's calculated from the RTCP receiver report. We recommend a round-trip time of 200 ms or less. |
28
-
|`AvailableBitrate`| Bandwidth estimation (bits per second) ||
26
+
|`PacketCount`| The total number of packets sent. ||
29
27
30
28
### Incoming audio metrics
31
29
32
30
| Metric name | Description | Comments |
33
31
| ----------- | ----------- | -------- |
34
32
|`CodecName`| Codec name ||
35
33
|`JitterInMs`| Packet jitter (milliseconds) | Lower is better. |
36
-
|`PacketsPerSecond`|Packet rate (packets per second)||
34
+
|`PacketCount`|The total number of packets sent.||
37
35
|`PacketsLostPerSecond`| Packet loss rate (packets per second) | Lower is better. |
38
36
39
37
### Outgoing video metrics
40
38
41
39
| Metric name | Description | Comments |
42
40
| ----------- | ----------- | -------- |
43
41
|`CodecName`| Codec name ||
44
-
|`Bitrate`| Video send bitrate (bits per second) ||
45
-
|`PacketsPerSecond`| Packet rate (packets per second) ||
46
-
|`PacketsLostPerSecond`| Packet loss rate (packets per second) | Lower is better. |
47
-
|`RoundTripTimeInMs`| Round-trip time (milliseconds) | Lower is better. It's calculated from the RTCP receiver report. We recommend a round-trip time of 200 ms or less. |
48
-
|`AvailableBitrate`| Bandwidth estimation (bits per second) | We recommend 1.5 Mbps or higher for high-quality video for upload/download. |
49
-
|`FrameRateInput`| Frame rate that originates from the video source (frames per second) ||
50
-
|`FrameWidthInput`| Frame width of the last frame that originates from the video source (pixels) ||
51
-
|`FrameHeightInput`| Frame height of the last frame that originates from the video source (pixels) ||
52
-
|`FrameRateSent`| Frame rate sent on the RTP stream (frames per second) ||
53
-
|`FrameWidthSent`| Frame width of the encoded frame (pixels) ||
54
-
|`FrameHeightSent`| Frame height of the encoded frame (pixels) ||
42
+
|`BitrateInBps`| Video send bitrate (bits per second) ||
43
+
|`PacketCount`| The total number of packets sent. ||
44
+
|`FrameRate`| Frame rate sent on the RTP stream (frames per second) ||
45
+
|`FrameWidth`| Frame width of the encoded frame (pixels) ||
46
+
|`FrameHeight`| Frame height of the encoded frame (pixels) ||
55
47
56
48
### Incoming video metrics
57
49
58
50
| Metric name | Description | Comments |
59
51
| ----------- | ----------- | -------- |
60
52
|`CodecName`| Codec name ||
61
-
|`Bitrate`| Video receive bitrate (bits per second) ||
53
+
|`BitrateInBps`| Video receive bitrate (bits per second) ||
62
54
|`JitterInMs`| Packet jitter (milliseconds) | Lower is better. |
63
-
|`PacketsPerSecond`|Packet rate (packets per second)||
55
+
|`PacketCount`|The total number of packets sent.||
64
56
|`PacketsLostPerSecond`| Packet loss rate (packets per second) | Lower is better. |
65
57
|`StreamId`| Stream ID | The `streamId` value corresponds to the ID of the video of the remote participant. It can be used to match the sender. |
66
-
|`FrameRateReceived`| Frame rate received on the RTP stream (frames per second) ||
67
-
|`FrameWidthReceived`| Frame width of the decoded frame (pixels) ||
68
-
|`FrameHeightReceived`| Frame height of the decoded frame (pixels) ||
58
+
|`FrameRate`| Frame rate received on the RTP stream (frames per second) ||
59
+
|`FrameWidth`| Frame width of the decoded frame (pixels) ||
60
+
|`FrameHeight`| Frame height of the decoded frame (pixels) ||
69
61
|`TotalFreezeDurationInMs`| Total freeze duration (milliseconds) ||
70
62
71
-
### Screen-share send metrics
63
+
### Outgoing screen share metrics
64
+
65
+
Currently, statistics fields are the same as *Outgoing video metrics*.
66
+
67
+
### Incoming screen share metrics
68
+
69
+
Currently, statistics fields are the same as *Incoming video metrics*.
70
+
71
+
### Outgoing data channel metrics
72
72
73
-
Currently, statistics fields are the same as *video send metrics*.
73
+
| Metric name | Description | Comments |
74
+
| ----------- | ----------- | -------- |
75
+
|`PacketCount`| The total number of packets sent. ||
74
76
75
-
### Screen-share receive metrics
77
+
### Incoming data channel metrics
76
78
77
-
Currently, statistics fields are the same as *video receive metrics*.
79
+
| Metric name | Description | Comments |
80
+
| ----------- | ----------- | -------- |
81
+
|`JitterInMs`| Packet jitter (milliseconds) | Lower is better. |
82
+
|`PacketCount`| The total number of packets sent. ||
0 commit comments