Video Streaming 동작 원리

피터·2024년 8월 26일
0

안녕하세요, 피터입니다 😃

이번 포스트부터 HLS (HTTP Live Streaming)에 대해 심도 있게 다뤄보려 합니다. 최근 회사 프로젝트에서 HLS를 직접 구현하게 되면서, 이 기술의 원리를 깊이 이해하고 싶다는 생각이 들었습니다. 그래서 이 기회를 통해 HLS에 대해 하나씩 파헤쳐 보려 합니다. 이 글은 그 시리즈의 첫 번째 포스트로, 비디오 스트리밍의 기본 개념을 정리하는 것에서 시작하겠습니다.

HLS는 Apple에서 개발한 스트리밍 프로토콜로, 비디오 스트리밍의 복잡한 환경에서도 안정적인 재생을 보장하기 위해 만들어졌습니다. 앞으로 다가올 글에서는 HLS의 구조, 동작 원리, 다양한 구현 방법 등을 차근차근 살펴볼 예정입니다. 이번 글에서 다룬 기본 개념들이 이후 내용을 이해하는 데 중요한 기초가 될 것입니다.

이번 글에서는 Video Streaming의 동작 원리에 대해 알아보겠습니다.

1. Resolution: 해상도

해상도는 비디오의 한 프레임이 얼마나 많은 픽셀로 구성되어 있는지를 나타냅니다. 쉽게 말해, 해상도는 가로와 세로 방향의 픽셀 수로 표현되며, 비디오의 선명도를 결정짓는 중요한 요소입니다. 해상도가 높을수록 화면에 더 많은 정보가 담기게 되어, 더욱 선명한 영상을 볼 수 있습니다.

일반적인 해상도의 종류는 다음과 같습니다:

  • SD (Standard Definition): 720x480 (NTSC), 720x576 (PAL)
  • HD (High Definition): 1280x720 (720p)
  • Full HD: 1920x1080 (1080p)
  • 4K UHD: 3840x2160
  • 8K UHD: 7680x4320

2. Frame Rate: 프레임 레이트

프레임 레이트는 비디오에서 초당 몇 개의 프레임이 표시되는지를 나타내며, FPS(Frames Per Second)라는 단위를 사용합니다. 프레임 레이트가 높을수록 동작이 부드럽게 표현되며, 반대로 낮을수록 끊어지는 느낌을 줄 수 있습니다.

3. Codec: 코덱

코덱은 비디오나 오디오 데이터를 압축 및 압축 해제하는 알고리즘 또는 소프트웨어를 의미합니다. 코덱은 파일 크기를 줄이면서도 품질을 유지하는 데 중요한 역할을 합니다. 이는 자주 컨테이너와 혼동될 수 있지만, 코덱은 실제로 데이터의 압축 방식을 정의하는 데 반해, 컨테이너는 파일 구조를 정의합니다.

대표적인 비디오 코덱은 다음과 같습니다:

  • H.264 (AVC)
  • H.265 (HEVC)
  • VP9
  • AV1

4. Container: 컨테이너

컨테이너는 비디오, 오디오, 자막, 그리고 기타 메타데이터를 하나의 파일로 묶는 형식입니다. 컨테이너는 코덱과 달리, 데이터의 압축 방식이 아닌 파일의 전체적인 구조를 정의합니다.

대표적인 컨테이너 형식은 다음과 같습니다:

  • MP4
  • MKV
  • AVI
  • MOV

5. Bitrate: 비트레이트

비트레이트는 초당 전송되는 비트 수를 나타내며, 이는 비디오와 오디오의 품질에 직접적인 영향을 미칩니다. 비트레이트가 높을수록 더 많은 데이터가 전송되며, 결과적으로 더 높은 품질의 영상을 제공할 수 있습니다. 그러나 비트레이트가 높아지면 파일 크기도 커지기 때문에, 스트리밍 서비스에서는 적절한 균형을 맞추는 것이 중요합니다.

비디오 비트레이트의 예시는 다음과 같습니다:

  • 저화질 스트리밍: 1500 kbps 이상
  • 고화질 스트리밍: 4000 kbps 이상
  • 4K UHD 스트리밍: 15000 kbps 이상

차근차근 알아가보겠습니다! 😄

profile
iOS 개발자입니다.

0개의 댓글