Sanntidsstrømmesystemer (WebRTC + sanntidsdata) · leksjon

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.

Leksjon 4 av 413 trinn

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.

Gratis å komme i gang

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

  1. Anbefalte sikkerhetsmetoder for WebRTC
  2. Optimalisere mediekvalitet
  3. Teknikker for båndbreddehåndtering
  4. Adaptiv bithastighet og overbelastningskontroll
← Tilbake til Sanntidsstrømmesystemer (WebRTC + sanntidsdata)