diff --git a/trunk/doc/CHANGELOG.md b/trunk/doc/CHANGELOG.md index 033f4d39f0..f0485522bb 100644 --- a/trunk/doc/CHANGELOG.md +++ b/trunk/doc/CHANGELOG.md @@ -7,6 +7,7 @@ The changelog for SRS. ## SRS 7.0 Changelog +* v7.0, 2025-06-04, Merge [#4310](https://github.com/ossrs/srs/pull/4310): Player: Get codec by webrtc api: pc.getStats. v7.0.42 (#4310) * v7.0, 2025-06-04, Merge [#4325](https://github.com/ossrs/srs/pull/4325): fix bug: loop transcoding #3516. v7.0.41 (#4325) * v7.0, 2025-06-04, Merge [#4341](https://github.com/ossrs/srs/pull/4341): Update the release in the README for consistent. v7.0.40 (#4341) * v7.0, 2025-06-04, Merge [#4368](https://github.com/ossrs/srs/pull/4368): Update the codename for version 7.0 to "Kai". v7.0.39 (#4368) diff --git a/trunk/research/players/js/srs.sdk.js b/trunk/research/players/js/srs.sdk.js index e86e468131..7d49ddc796 100644 --- a/trunk/research/players/js/srs.sdk.js +++ b/trunk/research/players/js/srs.sdk.js @@ -686,33 +686,29 @@ function SrsRtcWhipWhepAsync() { return self; } -// Format the codec of RTCRtpSender, kind(audio/video) is optional filter. -// https://developer.mozilla.org/en-US/docs/Web/Media/Formats/WebRTC_codecs#getting_the_supported_codecs -function SrsRtcFormatSenders(senders, kind) { +// https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport +function SrsRtcFormatStats(stats, kind) { var codecs = []; - senders.forEach(function (sender) { - var params = sender.getParameters(); - params && params.codecs && params.codecs.forEach(function(c) { - if (kind && sender.track.kind !== kind) { - return; - } - - if (c.mimeType.indexOf('/red') > 0 || c.mimeType.indexOf('/rtx') > 0 || c.mimeType.indexOf('/fec') > 0) { - return; - } - + stats.forEach((report) => { + if (report.type === 'codec' && report.mimeType?.toLowerCase().startsWith(kind)) { var s = ''; - s += c.mimeType.replace('audio/', '').replace('video/', ''); - s += ', ' + c.clockRate + 'HZ'; - if (sender.track.kind === "audio") { - s += ', channels: ' + c.channels; + s += report.mimeType.split('/')[1] || report.mimeType; + + if (report.clockRate) { + s += ', ' + report.clockRate + 'HZ'; } - s += ', pt: ' + c.payloadType; + if (kind === 'audio' && report.channels) { + s += ', channels: ' + report.channels; + } + + if (report.payloadType) { + s += ', pt: ' + report.payloadType; + } + codecs.push(s); - }); + } }); return codecs.join(", "); -} - +} \ No newline at end of file diff --git a/trunk/research/players/whep.html b/trunk/research/players/whep.html index a1939e86a9..b4a5b24da3 100644 --- a/trunk/research/players/whep.html +++ b/trunk/research/players/whep.html @@ -71,6 +71,10 @@ SessionID: +

+ Audio:
+ Video: +

Simulator: Drop @@ -82,9 +86,14 @@