RTCRtpStreamStats
=================

The `RTCRtpStreamStats` dictionary is returned by the `RTCPeerConnection.getStats()`, `RTCRtpSender.getStats()`, and `RTCRtpReceiver.getStats()` methods to provide detailed statistics about WebRTC connectivity.

While the dictionary has a base set of properties that are present in each of these cases, there are also additional properties added depending on which interface the method is called on.

`RTCRtpStreamStats` is the base class for all RTP-related statistics reports.

**Note:** This interface was called `RTCRTPStreamStats` until a specification update in the spring of 2017.
 Check the Browser compatibility table to know if and when the name change was implemented in specific browsers.


Instance properties
-------------------

### Standard fields included for all media types

`codecId`

A string which uniquely identifies the object which was inspected to produce the `RTCCodecStats` object associated with this RTP stream.

`kind`

A string whose value is `"audio"` if the associated `MediaStreamTrack` is audio-only or `"video"` if the track contains video. This value will match that of the media type indicated by `RTCCodecStats.codec`, as well as the track's `kind` property. Previously called `mediaType`.

`ssrc`

The 32-bit integer which identifies the source of the RTP packets this `RTCRtpStreamStats` object covers. This value is generated per the RFC 3550 specification.

`trackId`

A string which uniquely identifies the `RTCMediaStreamTrackStats` object representing the associated `MediaStreamTrack`. This is *not* the same as the value of `MediaStreamTrack.id`.

`transportId`

A string uniquely identifying the object which was inspected to produce the `RTCTransportStats` object associated with this RTP stream.

### Common instance properties

The following properties are common to all WebRTC statistics objects.

`id

A string that uniquely identifies the object that is being monitored to produce this set of statistics.

`timestamp`

A `DOMHighResTimeStamp` object indicating the time at which the sample was taken for this statistics object.

`type`

A string that indicates the type of statistics that the object contains.

### Local-only measurements

These properties are computed locally, and are only available to the device receiving the media stream. Their primary purpose is to examine the error resiliency of the connection, as they provide information about lost packets, lost frames, and how heavily compressed the data is.

`firCount`

A count of the total number of Full Intra Request (FIR) packets received by the sender. This statistic is only available to the device which is receiving the stream and is only available for video tracks. A FIR packet is sent by the receiving end of the stream when it falls behind or has lost packets and is unable to continue decoding the stream; the sending end of the stream receives the FIR packet and responds by sending a full frame instead of a delta frame, thereby letting the receiver "catch up." The higher this number is, the more often a problem of this nature arose, which can be a sign of network congestion or an overburdened receiving device.

`nackCount`

The number of times the receiver notified the sender that one or more RTP packets has been lost by sending a Negative ACKnowledgement (NACK, also called "Generic NACK") packet to the sender. This value is only available to the receiver.

`pliCount`

The number of times the receiving end of the stream sent a Picture Loss Indication (PLI) packet to the sender, indicating that it has lost some amount of encoded video data for one or more frames. Only the receiver has this value, and it's only valid for video tracks.

`qpSum`

The sum of the Quantization Parameter (QP) values associated with every frame received to date on the video track described by this `RTCRtpStreamStats` object. In general, the higher this number is, the more heavily compressed the video track was. Combined with `RTCReceivedRtpStreamStats.framesDecoded` or `RTCSentRtpStreamStats.framesEncoded`, you can approximate the average QP over those frames, keeping in mind that codecs often vary the quantizer values even within frames. Also keep in mind that the values of QP can vary from codec to codec, so this value is only potentially useful when compared against the same codec.

Specifications
--------------

#### No specification found

No specification data found for `api.RTCRtpStreamStats`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.