들어가기 전
Adaptive Streaming 은 적응형 스트리밍으로 사용자의 네트워크 상태에 적응해서 스트리밍을 해주는 기술이다.
동영상 콘텐츠를 다양한 해상도로 인코딩해서 저장하고 이를 잘게 잘게쪼개어 저장을 해놨다가 사용자의 네트워크 상황에 따라서 최적의 동영상 콘텐츠 조각을 가져와 스트리밍 해주는 방식입니다.
대표적으로 Youtube가 이러한 방식이다.
통신 상황에 따라서 자동으로 해상도가 좋아졌다 나빠졌다하는걸경험해보셨을 것이다.
이를 이용하면 서비스를 제공하는 서버의 트래픽을 관리할 수 있을 뿐 아니라 사용자는 끊기지 않고 동영상 시청이 가능하게 된다.
MPEG-DASH 란
MPEG-DASH는 국제 표준화된 최초의 적응 비트레이트 HTTP 기반 스트리밍 솔루션이다.
이전에는 동영상을 통째로 받아왔던 시절과 달리 지금은 데이터를 여러 조각으로 나누어 단말기(스마트폰, 태블릿 등등)으로 보는데 이때
회사마다 Streaming Package 가 달라 불편함을 겪었고 2010년시작하여 2011년 초안 국제 표준이 되었다.
이외에 회사마다 프로토콜들이 있는데 다음과 같다.
- Adobe - HTTP Dynamic Streaming
- Apple - HTTP Live Streaming
- Microsoft - Smooth Streaming
현재 YouTube가 1080p 이상 화질의 동영상은 MPEG-DASH의 형태로 비디오와, 오디오 스트림을 따로 제공하고 있다.
DASH의 기본동작은 아래와 같다.
MPEG-DASH는 전송 프로토콜과 혼동해서는 안 되는데, MPEG-DASH가 사용하는 전송 프로토콜은 TCP이다.
DASH는 내용을 일련의 작은 크기의 HTTP 기반 파일 세그먼트들로 분리시킴으로써 동작하며, 각 세그먼트는 영화나 스포츠 이벤트 생방송 등 잠재적으로 수시간에 걸친 내용물의 재생 시간의 짧은 간격(interval)을 포함하고 있다. 이 콘텐츠는 다양한 비트레이트로 이용이 가능하다. 콘텐츠가 MPEG-DASH 클라이언트에 의해 재생되면 클라이언트는 비트레이트 적응(ABR) 알고리즘을 사용하여 네트워크의 가용 대역폭을 계산하고 그 결과를 토대로 다음 비디오 세그먼트의 비트 rate를 결정한다. 그렇기에 재생 시 멈춤이나 재버퍼링을 일으키지 않고 다운로드할 수 있도록 가능한 최고 비트레이트의 세그먼트를 자동으로 선별한다.
현재의 MPEG-DASH 참조 클라이언트 dash.js는 버퍼 기반(BOLA)과 하이브리드(DYNAMIC) 비트레이트 적응 알고리즘을 모두 제공한다. 그러므로 MPEG-DASH 클라이언트는 변화하는 네트워크 상황에 순응하고 멈춤이나 재버퍼링을 거의 일으키지 않으면서 고품질의 재생을 제공할 수 있게 된다.
DASH는 두가지의 요소가 있다.
- MP(Media Presentation)
- 오디오/비디오는 하나의 파일로 묶을 수 있다. (Apple의 HTTP Live Streaming 방식)
- 각각의 파일로 분리될 수 도 있다. (Microsoft의 Smooth Streaming 방식)
- MPD(Media Presentation Description)
- 스트림의 정보를 나타내는 XML이다.
참고
'Android > 오디오 및 비디오' 카테고리의 다른 글
미디어 용어 사전2 - Android (0) | 2023.11.14 |
---|---|
미디어 용어 사전1 - Basic (0) | 2023.11.12 |
ExoPlayer / Player (0) | 2023.11.06 |
DroidKnights - Jetpack Media3로 좋은 콘텐츠 소비 경험 구현하기 (0) | 2023.11.02 |
MedioPlayer에서 ExoPlayer로 전환하는 이유(1) (2) | 2023.08.11 |