This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2019.
* Some parts of this feature may have varying levels of support.
The getContributingSources() method of the RTCRtpReceiver interface returns an array of objects, each corresponding to one CSRC (contributing source) identifier received by the current RTCRtpReceiver in the last ten seconds.
getContributingSources()
None.
An array of objects, each describing one of the contributing sources that provided data to the incoming stream in the past ten seconds. These objects contain the following properties:
audioLevel OptionalA floating-point value between 0.0 and 1.0 specifying the audio level contained in the last RTP packet played from the contributing source.
The value is on a linear scale and is defined in units of dBov, or decibels (overload). This is the amplitude relative to the point at which clipping of the audio begins to occur. A value of 1.0 represents 0 dBov (maximum volume), a value of 0.0 represents silence, and a value of 0.5 represents approximately 6 dB SPL (decibels of sound pressure level) change in the sound pressure level from 0 dBov.
If this property is not present then no volume level was provided by the source.
rtpTimestamp OptionalThe RTP timestamp (an integer DOMHighResTimeStamp) of the media. This source-generated timestamp indicates the time at which the media in this packet, scheduled for play out at the time indicated by timestamp, was initially sampled or generated. It may be useful for sequencing and synchronization purposes.
source OptionalA positive integer value specifying the CSRC identifier of the contributing source. This uniquely identifies the source of the particular stream RTP packets.
timestamp OptionalA DOMHighResTimeStamp indicating the most recent time at which a frame originating from this source was delivered to the receiver's MediaStreamTrack
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-rtcrtpreceiver-getcontributingsources> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
getContributingSources |
59 | 12 | 59 | 46 | 12.1 | 59 | 59 | 43 | 12.2 | 7.0 | 59 | 12.2 |
audioLevel |
73 | 79 | 59 | 60 | 12.1 | 73 | 59 | 52 | 12.2 | 11.0 | 73 | 12.2 |
audio_tracks_supported |
59 | 12 | 59 | 46 | 12.1 | 59 | 59 | 43 | 12.2 | 7.0 | 59 | 12.2 |
rtpTimestamp |
76 | 79 | 72 | 63 | No | 76 | 79 | 54 | No | 12.0 | 76 | No |
source |
59 | 79 | 59 | 46 | 12.1 | 59 | 59 | 43 | 12.2 | 7.0 | 59 | 12.2 |
timestamp |
59 | 79 | 59Starting in version 60, thetimestamp is correctly computed based on the window's Performance time, rather than Date.getTime(). |
46 | 12.1 | 59 | 59Starting in version 60, thetimestamp is correctly computed based on the window's Performance time, rather than Date.getTime(). |
43 | 12.2 | 7.0 | 59 | 12.2 |
video_tracks_supported |
73 | 79 | 68 | 60 | 12.1 | 73 | 68 | 52 | 12.2 | 11.0 | 73 | 12.2 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpReceiver/getContributingSources