ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CMAF Chunked for low latency
    Media_Dev 2020. 2. 17. 19:06
    반응형

    CMAF package는 다음과 같은 이점을 제공한다. 

     

    1. Storage에 대한 절감 FileFormat 통일

    2. HTTP 전송 방식에 대한 다양성 제공, 

    3. Chunked Transfer

    대부분의 고화질 VOD의 처음 프레임 시작은 굉장히 중요하다. 이 부분을 좀 더 잘게 쪼개서 보낸다는 것은 (=넷플릭스에서 콘텐츠를 틀 때 엄청 빨리 볼 수 있다는 것) 

     

     

    CMAF 현재 각각의 Segment를 Chunk 단위로 Splitting 할 수 있다. Chunk 각각은 500ms 혹은 Encoding 방식에 따라 그 이하도 가능하다. 

    CMAF Chunks for low latency

     

    moof와 mdata atom으로 구성된 단위를 chunk라 정의할 수 있다. mdat 안에는 IDR(instantaneous Decouder Refresh) frame 이 있는데 "segment"의 시작이라 생각하면 되며, Fragemnts , Fragment는 하나 이상의 chunk들의 모음(collection)이라고 생각하면 된다. 

     

    기본적으로 Encoder 의 영역이 delivery까지 연결되어 있다고 가정했을 때, 그 media packager? 는 각각의 chunk를 즉시 전송할 수 있는 능력을 보유하고 있어야 하겠다. 

     

    Trade-Offs 

    CMAF Chunked 방식은 매우 적은 buffering를 해야 한다. 즉 계속적으로 Latency를 보장해야 한다는 말이다. 

    Player가 Network나 Encoder 문제로 인해 예상치 못한 Interrruption를 만나게 된다면.. (frame dropped, frame burts) 다음 packet이 올 때까지 묵음이나 노이즈가 발생할 수 있다. 자연스러운 진행을 위해 현장에서는 최소 1초 정도 Buffering를 주는 것을 권장한다 

     

     

     

     

    새로운 Server는 아래와 같은 Freature들이 요구된다. 

     

    Pakcetizer,origin,delivery layer :

    가능한 빠른 시간에 live stream를 Cloud Storage에 넣어 줘야 한다. 플레이어의 요구하는 chunk 횟수는 기존과 다르게 상상을 초월할 것이다. 단, 긴 Segment 단위로 업로드해주고 player 가 chunk 단위로 요청을 해서 받아가면 되긴 한다. 이런 ingest방식은 upload storage 구간의 writing 횟수를 줄여 주므로 이 부분의 가격을 낮추는 효과가 있다. (.. orign(Media Store) <---> CF 간은 무료라는 이야기가 있다.)

     

    결국 Server가 Packetizing를 해야 한다. 

     

     

    CDN: 

    Http 계열이면 신경 쓸 필요 없다.단 Chunked 단위의 Request가 허용되는 CDN를 써야겠다. Akamai, AWS 이 부분에 문제는 없다. (Http2 기반의 특정 기술 지원은 client의 범용성 부분에서 좀 더 고려해야 함.)

     

    LastMile: 

    단방향 방송은 사용자의 Wifi , 무선망등에 전반적인 영향을 받는다. 언제 CDN과 접속을 끊어야 하는지 등, 관련 몇 가지 이슈들이 자체 개발하는 player의 과제로 남을 것 같다. 이 부분들은 지속적으로 테스트를 거쳐서 검증해야 할 것이다. 몇 업체가 관련 analyzer상품을 package로 제공하고 있는 걸 보면 low-latency와 buffering에 대한 기준을 잡는 거는 중요한 요소인 건 확실하다. 

     

    Playback:

    Player 는 play start부분과 buffering과 playback reate 사이에 optimize가 필요하다. 너무 buffering 짧게 잡으면 drop이 났을 경우 플레이어가 예측을 못해 플레이가 다시 시작하거나 영상/음성이 멈춤 현상이 일어날것이다. 

     

     

    웹상에 레포트되고 있는 전반적인 chunked CMAF에 적용 결과는 2초대를 나타내고 있다. 기존에 단반향 방송의 latency 통상 6 ~ 15 정도이므로 본 기술을 적용 시 더 짧은 latency로 CDN에 데이터를 보낼 수 있어 보인다. 

     

    아래는 현재 player를 제공하고 있는 업체의 Feature List: 

     

    BitMovin , ThoPlayer

    - Multi-DRM이 모든 기종에 적용이 되는가가 이들의 주요 구매 요소임. 

    - WebPlayer 기본적으로 제공해 줌. 

    - 가격이 ....

     

     

     

    Apple - QuickTime 

    - Opus codec supported (higher than ISO11) 

    -  2016 9월부터 HLS streaming type CMAF packetization를 추가했음. 

    "The HLS specification defined support for fragmented MPEG-4 Segments (ISO_BMFF) in September 2016. Clients based on earlier revisions will likely not be able to handle CMAF content. Apple hardware running iOS 10.0, macOS 10.12, and tvOS 10.0 or later OS versions should support CMAF content."

    - 기존의 fmp4에 아래와 같은 형태로 CMAF Addressable Media Object Track를 추가하면 IOS는 플레이 가능함. 

     

    Google - Shaka Player Embedded (for native iOS)

    기존의 Shaka Player와 동일한 구성 현재는 iOS만 제공됨. 

     

     

    Google - Exo Player 

    ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet.

    FMP4/CMAF , Adaptive Streaming Type : HLS  Supported.

     

    - Release Note 

    [2.11.0 (2019-12-11)]

    - Opus extension: Update to use NDK r20.
    - Fix the start of audio getting truncated when transitioning to a new item in a playlist of Opus streams.

    2.9.2 (2018-11-28)

    - MP4: Support Opus and FLAC in the MP4 container, and in DASH. 

     

     

     

     

     

    Helpful articles

    https://websites.fraunhofer.de/video-dev/dash-js-low-latency-streaming-with-cmaf/

     

    dash.js - Low Latency Streaming with CMAF - Video-Dev

    CMAF low latency streaming with dash.js.

    websites.fraunhofer.de

     

    괜찮은 책이 있나보니 꽤 관심이 가는 책이 보인다. 미디어관련 비즈니스를 한다면 한번은 이런 종합적인 내용을 미리 보기를 추천한다. 

    The Streaming Media Guide: How to Successfully Integrate Streaming Media Into Your Communications St... Hardcover

    The Streaming Media Guide: How to Successfully Integrate Streaming Media Into Your Communications St... Hardcover, Routledge, English, 9781138367517

    반응형

    댓글

Designed by Tistory.