비디오: Containers, Codecs, and Protocols — 동작이 스트리밍 가능해지는 방법
Source: Dev.to

비디오 압축이 현대 스트리밍을 가능하게 하는 이유
비디오 압축은 현대 컴퓨팅에서 가장 인상적인 성과 중 하나입니다. 고급 수학, 컴퓨터 과학, 그리고 특수 하드웨어가 결합되어 우리가 영화를 감상하고, 콘텐츠를 스트리밍하며, 인터넷을 통해 영상을 즉시 공유할 수 있게 합니다.
압축이 없었다면, 디지털 비디오를 저장하거나 전송하는 것은 방대한 원시 데이터 양 때문에 거의 불가능했을 것입니다. 이 필수 기술이 어떻게 작동하는지, 그리고 일상 디지털 생활에서 왜 이렇게 중요한지 살펴보겠습니다.
비디오 압축은 어떻게 작동하나요?
비디오의 핵심은 단순히 빠른 이미지 연속—보통 초당 24 frames per second 정도로 표시됩니다. 압축이 없으면 짧은 비디오조차도 엄청난 저장소와 대역폭을 차지합니다.
비디오 압축 알고리즘은 시간에 걸친 패턴과 중복성을 식별함으로써 이를 해결합니다.
누군가 달리는 비디오를 생각해 보세요:
- 배경은 대부분 정적이다.
- 사람만이 프레임마다 위치가 바뀐다.
전체 이미지를 반복해서 저장하는 대신, 코덱은 정적 영역을 감지하고 이를 three‑dimensional blocks 로 표현하여 장면이 크게 변할 때까지 변하지 않게 합니다.
이 접근 방식은 시각적 품질을 유지하면서 파일 크기를 크게 줄이지만, 복잡한 수학 연산과 상당한 처리 능력이 필요합니다.
디지털 비디오 파일의 구조
현대 디지털 비디오는 단일 스트림이 아니라 여러 요소로 구성된 구조화된 패키지입니다:
- Container – 모든 것을 하나로 묶는 파일 형식(
.mp4,.mkv,.avi,.mov등) - Video tracks – 특정 비디오 코덱으로 압축된 시각 데이터
- Audio tracks – 오디오 코덱으로 압축된 사운드
- Subtitles – 특정 시점에 표시되는 시간 동기화 텍스트
하나의 컨테이너에는 여러 오디오 언어, 자막 트랙, 혹은 다른 카메라 앵글까지 포함될 수 있으며, 모두 같은 파일 안에 들어갑니다.
코덱: 압축의 핵심
코덱은 시청각 데이터를 압축하고 복원하는 전문 알고리즘입니다. 일반적으로:
비디오가 압축될수록 실시간 디코딩에 필요한 연산량이 증가합니다.
일반적인 비디오 코덱
- H.264 (AVC) – MPEG‑LA 컨소시엄이 관리하는 가장 널리 사용되는 표준
- H.265 (HEVC) – 더 효율적인 후속 버전으로, Apple 기기에서 널리 채택됨
- VP9 – Google이 개발한 오픈 대안
- AV1 – 스트리밍 미래를 위해 설계된 최신 고효율 코덱
⚠️ 라이선스 참고: H.264는 독점 기술이며 라이선스 비용이 필요합니다. 이에 대응해 Google은 ON2를 인수하고 VP9를 개발했으며, 오픈소스 커뮤니티는 H.264 알고리즘의 무료 구현인 x264를 만들었습니다.
오디오 압축 및 그 진화
오디오 압축은 JPG와 같은 이미지 압축 포맷과 유사한 원리를 따릅니다—인간의 귀가 감지하지 못하는 소리를 제거합니다.
일반적인 오디오 코덱
- AAC – MP4 컨테이너에서 H.264와 일반적으로 함께 사용됩니다
- MP3 – 보편적으로 호환되며 여전히 널리 사용됩니다
- Opus – 스트리밍 및 실시간 통신에 최적화된 현대적이고 효율적인 코덱
오디오 애호가들은 미세한 차이를 감지할 수 있지만, 대부분의 청취자에게 현대의 고품질 오디오 코덱은 거의 동일하게 들립니다.
인터넷을 통한 비디오 스트리밍: 특수 프로토콜
스트리밍 비디오는 고유한 과제를 안겨줍니다—특히 사용자가 비디오의 임의 지점으로 이동할 때(예: YouTube에서 5분 지점으로 건너뛰기). 이를 해결하기 위해 특수 스트리밍 프로토콜이 사용됩니다:
- HLS (HTTP Live Streaming) – 현재 가장 널리 사용되는 프로토콜
- MPEG‑DASH – 표준화된 대안
- RTMP – 플래시 시대의 레거시 프로토콜
이러한 프로토콜은 비디오를 작은 세그먼트로 나누고 각각에 헤더를 부여하여 전체 파일을 다운로드하지 않고도 어느 지점에서든 원활하게 재생할 수 있게 합니다.
품질 적응 및 비트레이트
현대 스트리밍 플랫폼은 사용 가능한 대역폭을 지속적으로 모니터링하고 버퍼링을 방지하기 위해 동적으로 영상 품질을 조정합니다.
다음 차이를 이해하는 것이 중요합니다:
- 해상도 – 픽셀 수 (예: 1080p, 720p)
- 비트레이트 – 초당 전송되는 데이터 양
일반적인 가정과 달리, 해상도와 비트레이트는 동일하지 않습니다. 1080p 영상도 다양한 비트레이트로 인코딩될 수 있어 시각적 품질이 달라집니다.
Netflix와 Twitch와 같은 플랫폼은 실시간으로 영상 스트림을 재압축하여 각 시청자의 네트워크 상황에 맞게 품질을 조정합니다.
최대 호환성을 위한 권장 내보내기 설정
가장 넓은 장치 및 플랫폼 지원을 원한다면 다음을 사용하십시오:
- Container: MP4
- Video codec: H.264
- Audio codec: AAC
자막
가장 일반적인 자막 형식은 다음과 같습니다:
- SRT
- VTT
이들은 각 자막 라인이 표시되어야 하는 시점을 나타내는 타임스탬프가 포함된 간단한 텍스트 파일입니다.
최종 생각
비디오 압축은 끊임없이 진화하는 분야로, 디지털 콘텐츠를 소비하는 방식을 바꾸어 놓았습니다. 이는 우리의 인터넷 연결이 동일하게 유지되더라도 스트리밍 품질이 계속 향상되는 이유입니다.