brunch

You can make anything
by writing

C.S.Lewis

by Master Seo May 26. 2021

 12탄-AWS를 활용한 저지연 라이브

라이브 방송이 대세이다.


<1> 동영상 서비스?

<2> 지연 이슈?

<3>  프로토콜?

<4>  MPGE LL-DASH와 Apple LL-HLS 

<5>  CMAF?  시맵

<6> 용어 정의

<7> 라이브 서비스 패키징과 지연

<8> 패키징 -> 플레이어에 전달되는 과정?

<9> AWS에서 구현법

<10> 지연 비율?

<11> GS네오텍 라이브 설루션 

<12> 개인 정리




<1> 동영상 서비스?


비디오는 H.264

오디오는 AAC 코덱 사용


컨테이너는 mp4 , TS 등이 있다.  압축된 데이터를 저장하는 박스이다.

MP4 ( 비디어 H.264 + Audio AAC)



<2> 지연 이슈?


Apple의   HLS는 30초의 지연 발생 (초기 스펙 제약사항)

지연을 줄여 제공하고 있다.



<3>  프로토콜?


RTSP, RTMP --3초 -  시장에서 없어지고 있음

HLS - 8초 - 현재 가장 보편적임. 

WebRTC - 2초 - 최근 사용. 클럽하우스 사용.  화상 회의, 영상, 브라우저 연결, 디바이스 간 연결

SRT - 3초 - 하이비전, 와우자, 오픈소스, 인코더로 부터 송출되는 것 처리 위주

WebSocket - 2초 - 활용이 제한적

CMAF - 3초 - 시장에서 주목받는 중, 캐시 이용.



WebRTC?

가장 짧은 레이턴시, 피 어투 피어 연결 , UDP 사용

대규모 트래픽 처리 능력에  문제점이 있음.

Cache 사용할 수 없음.


CMAF?

HTTP 기반, 캐시 가능. 대규모 트래픽 처리 가능.



<4>  MPGE LL-DASH와 Apple LL-HLS 


1

MPGE LL-DASH

청크 기반


2

Apple LL-HLS 

파트 기반의 독자노선 발표.



<5>  CMAF?  시맵


CMAF 은 동영상 박스이다. 컨테이너이다.

MS와 Apple 이 새로운 표준 미디어 포맷에 대해 표준화함.


효율성, NLS대비 파일 저장 절감 

동영상에 있어 불필요한 변환이 줄어듦


CMAF 자체는 라이브 레이턴시를 줄이진 못한다.

CMAF은  컨테이너이다.

표준 포맷이다.

미디어 컨테이너를 청크라고 하는 작게 분할을 할 수 있어, 저지연 모드를 지원한다.



<6> 용어 정의


1

RTMP -> HLS로 변환하는 작업을 패키징이라 한다.


인코더로부터 RTMP를 송출

RTMP = 스트림

HLS는  Mainfest 인   M3 u8과  세그먼트 (TS 컨테이너 , 동영상을 가지고 있다)


2

저지연 라이브?

저자 연 라이브는  Mainfest인  MPD  + 세스 먼트 (CMFA container)로 구성된다.




<7> 라이브 서비스 패키징과 지연


구성?

Encoder --- 패키징 ------ 플레이어


패키징과 플레이어에서 지연이 발생한다.




<8> 패키징 -> 플레이어에 전달되는 과정?


1

10초짜리 세그먼트 만들어짐, 2번째 , 3번째 만들어짐

3개의 세그먼트 TS 만들어짐 


2

플래이 리스트인  m3 u8.


3

플레이어에 전달 


4

첫 번째 파일이 플레이된다.



5

기존 전송 단위의 최소 단위는 TS 파일이었다.

이젠, 세그먼트를 청크로 나눈다.

모든 카드를 전달하는 것보다, 각각의 개별 카드를 보내면 빠르다.

청크드 트랜스퍼는 전송하는 크기를 모를 때 http의 청크드 트랜스퍼를 사용해야 한다.

CDN은 이런 동작을 지원해야 한다.


6

재생?

Chunked Play 사용한다.



<9> AWS에서 구현법


1

AWS Elemental Live?

2020년  2.19.0부터 Chunk 전송 지원한다.


Elemental  MediaStore?

2019년 4월부터  Chunk 전송 지원



Work Flow?


온프라미스 미디어 소스 -----> Elemeal Live(청크드 인코딩)-----> Elemental  MediaStore -- Cloud Front (http로 )----  플레이어


자료 링크



<10>   지연 비율?


1

플레이어의 버퍼가  50% 지연

인코딩 29%

캡처 8%


2

플레이어 버퍼를 클라이언트 설정 버퍼로 유도하는 것도 방법이다. 플레이어 메뉴 구성으로 개선.


3

세그먼트와 전송은 청크드로 개선 가능하다.



<11> GS네오텍 라이브 설루션 


1

라이브 중간 광고 및 대체 방송 편성 제공


2

라이브 중간 광고 케이스?

티빙 , 네이버 스포츠 중계에 네이버 자체 광고 삽입




<12> 개인 정리


Apple의   HLS는 30초의 지연 발생 (초기 스펙 제약사항)

WebRTC - 2초 - 최근 사용. 클럽하우스 사용.  화상 회의, 영상, 브라우저 연결, 디바이스 간 연결

CMAF - 3초 - 시장에서 주목받는 중, 캐시 이용.

AWS Elemental Live , Elemental  MediaStore  사용

GS네오텍 라이브 솔루션 




<13> 같이 보면 좋을 자료 


https://brunch.co.kr/@topasvga/1617


https://brunch.co.kr/@topasvga/1618


https://brunch.co.kr/@topasvga/1619


https://brunch.co.kr/@topasvga/1620/


https://brunch.co.kr/@topasvga/1621


감사합니다.


매거진의 이전글 12탄- 2021년, 위기를기회로 만든미디어. AWS
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari