Skip to end of metadata
Go to start of metadata

Современные версии браузеров могут оценивать пропускную способность канала, вычисляя максимально доступный битрейт видео при публикации потока с определенным разрешением, битрейтом и частотой кадров. Значение максимального доступного битрейта availableOutgoingBitrate можно получить из WebRTC статистики в браузерах на основе Chromium и в Safari. Mozilla Firefox не выводит параметр оценки канала в статистику.

Параметр availableOutgoingBitrate вместе со статистикой WebRTC можно получить при помощи метода Stream.getStat() :

                stream.getStats((stats) => {
                    if (stats) {
                        if (stats.outboundStream && stats.outboundStream.video) {
                            let vBitrate = (stats.outboundStream.video.bytesSent - bytesSent) * 8;
                            setBitrate(vBitrate);
                            bytesSent = stats.outboundStream.video.bytesSent;
                        }
                        if (stats.otherStats && stats.otherStats.availableOutgoingBitrate !== undefined) {
                            setAvailableBitrate(stats.otherStats.availableOutgoingBitrate);
                        }
                    }
                });

На скриншоте ниже для потока с камеры и потока скриншаринга отображаются текущий битрейт публикации и масимально доступный битрейт

Таким образом, видно, что поток с камеры (320x240, 30 fps) может быть опубликован с максимальным битрейтом 1.2 Мбит/с, а поток скриншаринга (1280x720, 5 fps) может быть опубликован с битрейтом до 4 Мбит/с. В обоих случаях, максимально доступный битрейт значительно превышает текущий битрейт публикации. Это означает, что качество канала публикации хорошее и есть запас, даже если канал ухудшится.

Если же максимально доступный битрейт близок к текущему битрейту, то запаса нет, и при дальнейшем ухудшении канала (например, при появлении помех), у зрителей начнутся фризы и ухудшение качества картинки.

  • No labels