Adaptiv bithastighet og overbelastningskontroll
Lær hvordan WebRTC tilpasser mediekvaliteten i sanntid ved hjelp av algoritmer for overbelastningskontroll og simulcast, slik at samtaler forblir jevne i skiftende nettverk.
Adaptiv bithastighet og overbelastningskontroll er en gratis leksjon i Sanntidsstrømmesystemer (WebRTC + sanntidsdata) på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Sanntidsstrømmesystemer (WebRTC + sanntidsdata), og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Sanntidsstrømmesystemer (WebRTC + sanntidsdata) inneholder totalt 4 leksjoner.
Nettverk er aldri stabile
Medier i sanntid overføres via nettverk som stadig varierer: Wi-Fi-signalet kan svekkes, mobilforbindelser kan skifte, og båndbredden kan være delt. En fast bitrate vil enten sløse med kapasiteten eller overbelaste en svak forbindelse.
Adaptiv bitrate gjør at senderen kan tilpasse datamengden til de aktuelle forholdene.
Signaler på overbelastning
WebRTC anslår overbelastning ut fra tilbakemeldinger:
- Tapte pakker rapportert via RTCP.
- Økende forsinkelse (økende jitter og enveisforsinkelse).
- Mottakerens estimater av tilgjengelig båndbredde.
Googles overbelastningskontroll
Kjernealgoritmen i WebRTC er GCC (Google Congestion Control). Den kombinerer en tapsbasert kontroller og en forsinkelsesbasert kontroller for å anslå en trygg sendehastighet.
Forsinkelsesbasert estimering
Den forsinkelsesbaserte delen følger med på hvordan ankomsttidspunktene for pakkene forskyves. Hvis pakkene begynner å hope seg opp, signaliserer den økende forsinkelsen overbelastning før det oppstår pakketap, slik at senderen kan redusere hastigheten tidlig.
Tapsbasert estimering
Den tapsbaserte kontrolleren reagerer på RTCP-rapporter om pakketap. Over en terskel reduserer den hastigheten, mens den ved lite pakketap gradvis prøver seg oppover for å ta tilbake båndbredde.
Bytte oppløsning mot bildefrekvens
Når båndbredden synker, må koderen redusere datamengden. Den kan senke oppløsningen (et mindre skarpt bilde) eller bildefrekvensen (mer hakkete bevegelser). WebRTC velger ut fra innholdet: videosamtaler prioriterer jevne bevegelser, mens skjermdeling prioriterer skarphet.
Simulcast til unnsetning
Med simulcast koder en sender den samme videoen i flere kvaliteter samtidig. SFU-en videresender laget hver mottaker kan håndtere, slik at én mottaker med svak forbindelse ikke forringer kvaliteten for alle.
const sender = pc.addTransceiver(track, {
sendEncodings: [
{ rid: 'low', scaleResolutionDownBy: 4 },
{ rid: 'mid', scaleResolutionDownBy: 2 },
{ rid: 'high', scaleResolutionDownBy: 1 }
]
});Lese båndbredde fra statistikk
De kan observere estimatet via getStats() ved å følge med på tilgjengelig utgående bitrate og aktuell sendehastighet for å vise varsler i brukergrensesnittet.
const stats = await pc.getStats();
stats.forEach(r => {
if (r.type === 'outbound-rtp') {
console.log('bitrate', r.targetBitrate);
}
});Angi bitrategrenser
De kan begrense koderen slik at den aldri overskrider en øvre grense. Dette er nyttig for kostnadskontroll eller for å sikre at annen trafikk får båndbredde.
const params = sender.getParameters();
params.encodings[0].maxBitrate = 500000;
await sender.setParameters(params);FEC og retransmisjon
For å tåle pakketap uten å redusere kvaliteten bruker WebRTC FEC (forward error correction) og selektiv retransmisjon (NACK/RTX). Dette gir ekstra overhead, men beskytter mot forbindelser med pakketap.
Tilpass etter bruksområdet
- Konferanser: prioriter lav forsinkelse og jevne bevegelser.
- Kringkasting: tillat en større buffer for bedre stabilitet.
- Skjermdeling: prioriter oppløsning fremfor bildefrekvens.
Hurtigsjekk
Test forståelsen Deres av adaptiv bitrate.
Oppsummering
WebRTC tilpasser bitraten ved hjelp av GCCs forsinkelses- og tapsbaserte estimater, bytter mellom oppløsning og bildefrekvens etter behov og bruker simulcast samt FEC/retransmisjon for å holde samtaler jevne over ustabile nettverk.
Lær deg Sanntidsstrømmesystemer (WebRTC + sanntidsdata) med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Adaptiv bithastighet og overbelastningskontroll» gratis?
Ja – hele teksten i «Adaptiv bithastighet og overbelastningskontroll» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Sanntidsstrømmesystemer (WebRTC + sanntidsdata)-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Sanntidsstrømmesystemer (WebRTC + sanntidsdata) inneholder totalt 4 leksjoner.
Hva lærer jeg i «Adaptiv bithastighet og overbelastningskontroll»?
Lær hvordan WebRTC tilpasser mediekvaliteten i sanntid ved hjelp av algoritmer for overbelastningskontroll og simulcast, slik at samtaler forblir jevne i skiftende nettverk. Du øver på Sanntidsstrømmesystemer (WebRTC + sanntidsdata) med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Sanntidsstrømmesystemer (WebRTC + sanntidsdata)?
Ingen tidligere erfaring er nødvendig. Sanntidsstrømmesystemer (WebRTC + sanntidsdata) på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Adaptiv bithastighet og overbelastningskontroll»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Sanntidsstrømmesystemer (WebRTC + sanntidsdata)-leksjonen?
Ja. Alle Sanntidsstrømmesystemer (WebRTC + sanntidsdata)-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Anbefalte sikkerhetsmetoder for WebRTC
- Optimalisere mediekvalitet
- Teknikker for båndbreddehåndtering
- Adaptiv bithastighet og overbelastningskontroll