적응 비트레이트 스트리밍

적응 비트레이트 스트리밍(Adaptive bitrate streaming)은 컴퓨터 네트워크를 경유하여 멀티미디어를 스트리밍하기 위해 사용되는 기술이다. 과거 대부분의 동영상, 오디오 스트리밍 기술들은 RTSP+RTP 등의 스트리밍 프로토콜을 이용하였으나 오늘날 적응 스트리밍 기술들은 거의 전적으로 HTTP에 기반을 두며 인터넷 등 대형 분산 HTTP 네트워크 상에서 효율적으로 동작하도록 설계되었다. 사용자의 대역폭과 CPU 사용률을 실시간으로 감지하고 이에 따라 미디어 스트림의 품질을 조정함으로써 동작한다. 여러 비트레이트로 단일 소스 미디어(동영상 또는 소리)를 인코딩할 수 있는 인코더의 사용이 필요하다. 플레이어 클라이언트는 이용 가능한 자원에 따라 각기 다른 인코딩을 스트리밍한다. 이로써 나타나는 결과로, 매우 적은 버퍼링, 빠른 시작 시간, 고속 연결과 저속 연결 모두에 양호한 경험을 제공한다.

더 구체적으로 말해 적응 비트레이트 스트리밍은 소스 콘텐츠가 여러 비트레이트로 인코딩되는, HTTP 경유 비디오 스트리밍 방식의 하나이다. 각기 다른 비트레이트 스트림은 개개가 초 단위의 여러 자그마한 부분으로 나뉜다. 세그먼트 크기는 특정 구현체에 따라 다양할 수 있으나 2초에서 10초 사이인 것이 일반적이다. 먼저, 클라이언트는 이용 가능한 스트림 세그먼트와 각각의 비트레이트를 기술해놓은 매니페스트 파일을 다운로드한다. 스트림 시작 중에 클라이언트는 보통 가장 낮은 비트레이트 스트림의 세그먼트를 요청한다. 네트워크 스루풋이 다운로드되는 세그먼트의 비트레이트보다 더 높다는 것을 클라이언트가 알아내면 더 높은 비트레이트 세그먼트를 요청한다. 나중에 클라이언트가 네트워크 스루풋의 약화를 인지하면 더 낮은 비트레이트 세그먼트를 요청한다. 클라이언트의 ABR 알고리즘은 네트워크의 현재 상태를 기반으로 어느 비트레이트 세그먼트를 다운로드할지를 결정하는 주된 기능을 수행한다. 여러 유형의 ABR 알고리즘들이 상용화되어 있다. 스루풋 기반 알고리즘들은 의사 결정을 위해 이전의 최근 다운로드에서 수행된 스루풋을 사용한다.(예: dash.js의 스루풋 규칙) 버퍼 기반 알고리즘은 클라이언트의 현재 버퍼 수준만을 사용한다. (예: dash.js의 BOLA) 하이브리드 알고리즘은 두 종류의 정보를 결합한다. (예: dash.js의 DYNAMIC)

구현체 
 MPEG-DASH(HTTP 동적 적응 스트리밍)
 어도비 HTTP 동적 스트리밍
 애플 HTTP 라이브 스트리밍
 마이크로소프트 스무스 스트리밍
 QuavStreams Adaptive Streaming over HTTP
 upLynk
 자기 학습 클라이언트

각주

추가 문헌 
 The Next Big Thing in Video: Adaptive Bitrate Streaming

인터넷 방송