Network

ABR (Adaptive bitrate streaming)

gepp 2023. 3. 10. 14:53

적응형 비트전송률 스트리밍 (ABR) 은 HTTP로 스트리밍하는 것을 향상시키는 방법이다.

동영상을 인코딩하고 길이가 몇 초 인 더 작은 파일로 분할하여 세그먼트로 전송되도록 하고 (분할 프로세스)

엔드 유저의 연결이 버퍼링없이 스트리밍할정도로 빠르게 해당 영상을 다운로드 할 수 없으면 유저의 비디오 플레이어가 세그먼트 완료 후 더 작은 파일로 전환한다. (조정 프로세스)

처음 시작시에는 비디오 플레이어가 가능한 작은 비트 전송률 파일을 요청해서 시작하고 더 높은 비트 전송률 파일이 처리 가능해지면 클라이언트가 처리가능한 선에서 가장 높은 비트전송률 파일을 선택하고, 이상적으로 선정되면 해당 비트 전송률로 계속 세그먼트를 요청한다.

해당 방법으로 비디오 재생 품질이 향상될 수 있는 이점이 있다. (비디오 품질 수준 다이나믹하게 변경)

 

ABR을 지원하는 프로토콜은 HLS, DASH, HDS 가 있다.

  • HLS (HTTP Live Streaming): HLS는 주문형 및 라이브 스트리밍 용으로 작동하며H.264 또는 H.265 인코딩 형식이 필요하다 . 일부 프로토콜과 달리 HLS는 특수 서버를 사용할 필요가 없다. 원래 HLS는 Apple 장치와만 호환되었지만 이제는 장치에 구애받지 않고있다. 그러나 Apple 장치는 HLS 형식만 허용한다.
  • DASH (Dynamic Adaptive Streaming over HTTP): DASH는 특정 인코딩 표준을 요구하지 않는다.(HLS는 특정 인코딩 형식이 필요한 반면 DASH는 대부분의 인코딩 표준 사용 다 가능. MPEG-DASH는 국제 표준) 또한 모든 원본 서버는 HTTP를 통해 실행되기 때문에 DASH 스트림을 제공하도록 설정할 수 있다.(항상 서버의 방화벽에서 오픈하는 80, 443 같은 포트 이용되서 차단 위험이 낮아짐) HLS 이외의 다른 모든 형식과 마찬가지로 DASH 형식은 Apple 장치에서 작동하지 않는다. 즉 HLS는 애플 장치에서 지원해서 이용가능하지만 MPEG-DASH는 아니어서 해당 방식으로 전송되는 비디오를 애플제품은 재생할 수 없다.
  • HDS (HTTP Dynamic Streaming): 원래 Adobe Flash(단종됨)와 함께 작동하도록 설계된 이 형식은 주문형 또는 라이브 스트리밍에 사용할 수 있으며 HTTP 연결을 통해 작동한다. HDS 형식은 비디오를 MP4에서 F4F(조각화된 MP4)로 변환 해야 하며 H.264 인코딩 표준. Apple 장치는 HDS 프로토콜과 호환되지 않는 유일한 장치다.

HLS와 DASH는 모두 HTTP를 통해 실행되고 전송 프로토콜로 TCP를 쓰고 세그먼트로 비디오를 구분하며 ABR을 제공하는 유사점이 있으나 위 특징으로인해 차이점이 존재한다.

 

AWS Cloudfront는 현재 HLS와 MPEG-DASH를 지원하고 있다.

HLS를 통해 사용자의 bandwidth에 따라 다이나믹하게 비디오 품질을 향상시킬 수 있고

MPEG-DASH를 통해 실시간으로 고퀄리티의 비디오 스트리밍을 서비스 할 수 있다.

여기에 SSL 인증서, 람다엣지 등을 결합하여 커스터마이징하여 사용할 수 있다.

 

ABR with AWS Cloudfront: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ABRStreaming.html

Using Cloudfront for Video Streaming: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/TypesOfStreaming.html

Creating a basic ABR streaming distribution: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-rtmp-creating-basic.html