Streaming-systemer i realtid (WebRTC og live-data) · Lektion

Adaptiv bitrate og congestion control

Lær, hvordan WebRTC tilpasser mediekvaliteten i realtid ved hjælp af algoritmer til congestion control og simulcast, så opkald forbliver stabile på skiftende netværk.

Lektion 4 af 413 trin

Adaptiv bitrate og congestion control er en gratis Streaming-systemer i realtid (WebRTC og live-data)-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Streaming-systemer i realtid (WebRTC og live-data), og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Streaming-systemer i realtid (WebRTC og live-data)-kurset indeholder 4 lektioner i alt.

Netværk er aldrig stabile

Medier i realtid kører over netværk, der konstant svinger: Wi-Fi-forbindelsen bliver dårligere, mobilforbindelser skifter, og båndbredden deles. En fast bithastighed vil enten spilde kapacitet eller overbelaste et svagt forbindelsesled.

Adaptiv bithastighed lader afsenderen tilpasse sit output til de aktuelle forhold.

Tegn på overbelastning

WebRTC udleder overbelastning fra tilbagemeldinger:

  • Tab af pakker rapporteret via RTCP.
  • Stigende forsinkelse (jitter og stigende envejsforsinkelse).
  • Modtagerens estimater af tilgængelig båndbredde.

Googles overbelastningsstyring

Den centrale algoritme i WebRTC er GCC (Google Congestion Control). Den kombinerer en tabbaseret styring og en forsinkelsesbaseret styring for at estimere den sikre sendehastighed.

Forsinkelsesbaseret estimering

Den forsinkelsesbaserede del holder øje med, hvordan ankomsttidspunkterne for pakker forskyder sig. Hvis pakker begynder at samle sig i kø, signalerer den voksende forsinkelse overbelastning, før der overhovedet opstår tab, så afsenderen tidligt kan sænke hastigheden.

Tabbaseret estimering

Den tabbaserede styring reagerer på RTCP-rapporter om tab. Over en tærskel sænker den hastigheden; ved få tab sonderer den langsomt opad for at genvinde båndbredde.

Byt opløsning for billedhastighed

Når båndbredden falder, skal koderen reducere antallet af bit. Den kan sænke opløsningen (et mere utydeligt billede) eller billedhastigheden (mere hakkende bevægelser). WebRTC vælger ud fra indholdet: videoopkald prioriterer jævn bevægelse, mens skærmdeling prioriterer skarphed.

Simulcast redder situationen

Med simulcast koder en afsender den samme video i flere kvaliteter på én gang. SFU'en videresender det lag, hver modtager kan håndtere, så én svag seer ikke forringer oplevelsen for alle.

const sender = pc.addTransceiver(track, {
  sendEncodings: [
    { rid: 'low',  scaleResolutionDownBy: 4 },
    { rid: 'mid',  scaleResolutionDownBy: 2 },
    { rid: 'high', scaleResolutionDownBy: 1 }
  ]
});

Læs båndbredden fra statistikker

Du kan se estimatet via getStats() ved at holde øje med den tilgængelige udgående bithastighed og den aktuelle sendehastighed for at vise advarsler i brugergrænsefladen.

const stats = await pc.getStats();
stats.forEach(r => {
  if (r.type === 'outbound-rtp') {
    console.log('bitrate', r.targetBitrate);
  }
});

Indstil grænser for bithastigheden

Du kan begrænse koderen, så den aldrig overskrider et loft. Det er nyttigt til omkostningsstyring eller til at sikre, at anden trafik får båndbredde.

const params = sender.getParameters();
params.encodings[0].maxBitrate = 500000;
await sender.setParameters(params);

FEC og genudsendelse

For at modstå tab uden at sænke kvaliteten bruger WebRTC FEC (fremadrettet fejlkorrektion) og selektiv genudsendelse (NACK/RTX). Det giver ekstra belastning, men beskytter mod forbindelser med pakketab.

Tilpas til dit anvendelsesområde

  • Konferencer: prioritér lav forsinkelse og jævn bevægelse.
  • Udsendelser: tillad en større buffer for stabilitet.
  • Skærmdeling: beskyt opløsningen frem for billedhastigheden.

Hurtig kontrol

Test din forståelse af adaptiv bithastighed.

Opsummering

WebRTC tilpasser bithastigheden ved hjælp af GCC's forsinkelses- og tabbaserede estimater, bytter om nødvendigt opløsning for billedhastighed og bruger simulcast samt FEC/genudsendelse for at holde opkald jævne på ustabile netværk.

Gratis at komme i gang

Lær Streaming-systemer i realtid (WebRTC og live-data) med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Adaptiv bitrate og congestion control” gratis?

Ja — hele teksten til “Adaptiv bitrate og congestion control” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Streaming-systemer i realtid (WebRTC og live-data)-kurset, skal du opgradere til CoddyKit PRO. Streaming-systemer i realtid (WebRTC og live-data)-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Adaptiv bitrate og congestion control”?

Lær, hvordan WebRTC tilpasser mediekvaliteten i realtid ved hjælp af algoritmer til congestion control og simulcast, så opkald forbliver stabile på skiftende netværk. Du øver dig i Streaming-systemer i realtid (WebRTC og live-data) med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Streaming-systemer i realtid (WebRTC og live-data)?

Der kræves ingen tidligere erfaring. Streaming-systemer i realtid (WebRTC og live-data) på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Adaptiv bitrate og congestion control”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Streaming-systemer i realtid (WebRTC og live-data)-lektion?

Ja. Alle Streaming-systemer i realtid (WebRTC og live-data)-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Bedste praksis for WebRTC-sikkerhed
  2. Optimering af mediekvalitet
  3. Teknikker til båndbreddehåndtering
  4. Adaptiv bitrate og congestion control
← Tilbage til Streaming-systemer i realtid (WebRTC og live-data)