Live streaming platforms like YouTube, Twitch, and TikTok deliver content in near real-time with low latency ("glass-to-glass" latency around 20 seconds). Real-time video processing and internet transmission present significant technical challenges.
유튜브 트위치 틱톡과 같은 플랫폼은 화면간 지연 시간을 약 20초로 유지하며 실시간으로 콘텐츠를 전달한다.
이런 실시간 비디오 처리와 인터넷 전송은 기술적으로 매우 까다로운 작업이다.
Streamers use encoders(e.g., OBS software) to package video streams for transmission.
Common transport protocols RTMP/RTMPS (based on TCP) and SRT (based on UDP) for lower lantency. However, SRT is not widely supported
스트리머들은 OBS등 인코더 소프트웨어를 사용해 비디오 스트림을 패키징 하고 전송한다. 일반적인 전송 프로토콜은 RTMP/RTMPS(TCP 기반)과 SRT(UDP 기반)이며, SRT는 낮은 지연과 더 나은 네트워크 내구성을 제공한다. 그러나 대부분의 플랫폼에서는 아직 SRT를 지원하지 않는다.
Streamers connect to the neares point of presence(PoP) server using DNS latency routing or anycast networks to ensure efficient upload and minimize delays
스트리머는 DNS 기반 라우팅 또는 애니 캐스트 네트워크를 통해 가장 가까운 엣지 서버에 자동으로 연결하여 업로드 지연을 최소화한다.
Platforms transcode incoming streams into multiple resolutions and bitrates to accommodate various viewer internet speeds. Adaptive bitrate streaming allows automatic quality adjustments based on network conditions.
플랫폼은 스트림을 다양한 해상도와 비트레이트로 변환해 시청자의 인터넷 속도에 맞게 자동으로 품질을 조정한다.
적응형 비트레이트 스트리밍은 네트워크 상태에 따라 실시간으로 스트리밍 품질을 조정한다.
Streams are transcoded into smaller video segments of a few seconds in length (segmentation).
Transcoding is compute-intensive, requring significant resources to generate multiple quality levels.
트랜스 코딩은 고성능 컴퓨팅 자원이 필요하며, 여러 품질 수준을 생성하기 위해 병렬 처리된다.
HLS(HTTP Live Streaming) is the most common format, consisting of a manifest file and short video chunks.
HLS(HTTP Live Streaming)는 매니페스트 파일과 짧은 비디오 청크로 구성된 가장 일반적인 스트리밍 포맷이다.
DASH 도 사용되지만 애플기기에서는 지원되지 않는다.
Video chunks are cached by CDNs to reduce last-mile latency for viewers. Normal glass to glass latency is around 20 secondsm but some tuning can reduce this at the cost of video quality
CDN을 통해 비디오 청크가 캐시되며, 이를 통해 마지막 전송 단계를 줄인다. 평균적으로 20초 정도의 지연이 일반적이지만, 화질 일부를 희생하면 지연시간을 줄일 수 있다.
Streamers can optimize their setup to reduce latency by adjusting encoder settings and internet connection.
Some platforms offer interactivity settings for easier latency vs. quality adjustments
스트리머는 인코더 설정 및 네트워크 연결을 최적화해 지연 시간을 줄일 수 있다.
일부 플랫폼은 간단한 상호작용 레벨 설정을 제공해 지연 시간과 화질간 균형을 조절할 수 있게 한다.
비디오 스트리밍의 전송 흐름은 다음과 같다.
1. 비디오 및 오디오 소스 입력(camera/ mic Input)
카메라, 마이크 등으로부터 비디오와 오디오 데이터를 수집한다.
2. 인코딩(Encoding)
OBS, Streamlabs 같은 소프트웨어 인코더가 데이터를 효율적인 포맷으로 압축한다.
인코딩 과정에서 해상도, 프레임 레이트 등을 설정한다.
3. 패키징 및 전송 프로토콜 설정
인코더는 데이터를 전송가능한 패킷으로 변환하여 RTMP/RTMPS 또는 SRT 같은 프로토콜을 사용해 스트림을 전송한다.
4. 엣지 서버로 연결
가장 가까운 PoP 서버에 연결해 최적의 업로드 경로를 선택한다.
5. 플랫폼의 메인 서버로 전송한다.
메인서버는 트랜스 코딩, 세그먼테이션, 스트리밍 포맷변환 등을 수행한다.
6. CDN 캐싱
CDN은 비디오 청크를 캐시하여 전세계 시청자가 빠르게 콘텐츠를 불러오도락 한다.
이를 통해 라스트 마일 전송 속도를 향상시킨다.
7. 뷰어 디바이스로 전송
마지막으로 시청자의 플레이어는 HLS DASH 청크를 받아 영상을 재생한다.
네트워크 상태에 따라 자동으로 최적의 해상도로 조정되며 실시간 스트리밍을 제공한다.
'라이브 스트리밍' 카테고리의 다른 글
웹 소켓은 어떻게 작동하는가? (1) | 2025.01.15 |
---|---|
WebRTC 란 무엇인가 ? (0) | 2025.01.15 |
ffmpeg에 대하여 (0) | 2025.01.14 |
댓글