0Pricing
Real-Time Streaming Systems (WebRTC + Live Data) · 강의

적응형 비트레이트와 혼잡 제어

WebRTC가 혼잡 제어 알고리즘과 동시 방송을 사용해 실시간으로 미디어 품질을 조정하고 변화하는 네트워크에서도 통화를 원활하게 유지하는 방법을 배웁니다.

적응형 비트레이트와 혼잡 제어은(는) CoddyKit의 무료 Real-Time Streaming Systems (WebRTC + Live Data) 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Real-Time Streaming Systems (WebRTC + Live Data) 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Real-Time Streaming Systems (WebRTC + Live Data) 강의에는 총 4개의 강의가 포함되어 있습니다.

이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.

Networks Are Never Stable

Real-time media runs over networks that fluctuate constantly: Wi-Fi dips, cellular handoffs, shared bandwidth. A fixed bitrate will either waste capacity or overwhelm a weak link.

Adaptive bitrate lets the sender match its output to current conditions.

Signals of Congestion

WebRTC infers congestion from feedback:

  • Packet loss reported via RTCP.
  • Increasing delay (jitter and one-way delay growth).
  • Receiver estimates of available bandwidth.

Google Congestion Control

The core algorithm in WebRTC is GCC (Google Congestion Control). It combines a loss-based controller and a delay-based controller to estimate the safe sending rate.

Delay-Based Estimation

The delay-based part watches how packet arrival times drift. If packets start queuing up, that growing delay signals congestion before loss even happens, so the sender can back off early.

Loss-Based Estimation

The loss-based controller reacts to RTCP loss reports. Above a threshold it lowers the rate; with little loss it slowly probes upward to reclaim bandwidth.

Trading Resolution for Frame Rate

When bandwidth drops, the encoder must shed bits. It can lower resolution (softer image) or frame rate (choppier motion). WebRTC chooses based on content: video calls favor smoothness, screen shares favor sharpness.

Simulcast to the Rescue

With simulcast, a sender encodes the same video at several qualities at once. The SFU forwards the layer each receiver can handle, so one weak viewer does not degrade everyone.

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

Reading Bandwidth from Stats

You can observe the estimate via getStats(), watching available outgoing bitrate and current send rate to drive UI warnings.

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

Setting Bitrate Caps

You can bound the encoder so it never exceeds a ceiling, useful for cost control or guaranteeing other traffic gets bandwidth.

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

FEC and Retransmission

To survive loss without dropping quality, WebRTC uses FEC (forward error correction) and selective retransmission (NACK/RTX). These add overhead but protect against lossy links.

Tuning for Your Use Case

  • Conferencing: prioritize low latency and smoothness.
  • Broadcast: allow a larger buffer for stability.
  • Screen share: protect resolution over frame rate.

Quick Check

Test your understanding of adaptive bitrate.

Recap

WebRTC adapts bitrate using GCC's delay- and loss-based estimates, trades resolution for frame rate as needed, and uses simulcast plus FEC/retransmission to keep calls smooth across unstable networks.

자주 묻는 질문

“적응형 비트레이트와 혼잡 제어” 강의는 무료인가요?

네 — “적응형 비트레이트와 혼잡 제어” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Real-Time Streaming Systems (WebRTC + Live Data) 강의 전체를 잠금 해제할 수 있습니다. Real-Time Streaming Systems (WebRTC + Live Data) 강의에는 총 4개의 강의가 포함되어 있습니다.

“적응형 비트레이트와 혼잡 제어”에서 뭘 배우나요?

WebRTC가 혼잡 제어 알고리즘과 동시 방송을 사용해 실시간으로 미디어 품질을 조정하고 변화하는 네트워크에서도 통화를 원활하게 유지하는 방법을 배웁니다. 브라우저에서 직접 실행하는 실습 코드로 Real-Time Streaming Systems (WebRTC + Live Data)을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Real-Time Streaming Systems (WebRTC + Live Data)을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Real-Time Streaming Systems (WebRTC + Live Data)은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“적응형 비트레이트와 혼잡 제어” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Real-Time Streaming Systems (WebRTC + Live Data) 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Real-Time Streaming Systems (WebRTC + Live Data) 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. WebRTC 보안 모범 사례
  2. 미디어 품질 최적화
  3. 대역폭 관리 기법
  4. 적응형 비트레이트와 혼잡 제어
← Real-Time Streaming Systems (WebRTC + Live Data)(으)로 돌아가기