General Concepts of Streaming
기기 |
프로그레시브 다운로드 |
RTMP/RTSP 스트리밍 |
적응적 HTTP 스트리밍 |
아도브 플래시 플레이어 |
MP4, FLV |
RTMP |
HLS, Zeri, Smooth |
HTML5(사파리 & IE9) |
MP4 |
- |
- |
HTML5(파이어폭스 & 크롬) |
WebM |
- |
- |
iOS(아이패드/아이폰) |
MP4 |
- |
HLS |
안드로이드 기기 |
MP4, WebM |
RTSP |
HLS(3.0) |
CDN(예: CloudFront) |
MP4, FLV, WebM |
RTMP |
HLS |
웹서버(예: S3) |
MP4, FLV, WebM |
- |
HLS |
1. Progressive Download
Progressive Download는 처음부터 모든 비디오 파일을 다운로드 받는다.
장점
- 구현하기가 간단하다. 단순히 웹 서버에 비디오를 올리고 플레이어에게 URL을 알려주기만 하면 된다.
단점
- 파일 전부가 수신이 되기전까지 다운로드를 계속한다
- 그러므로 대역폭 소모가 심하다(만약 유저가 10분 영상 중 1분만 봐도 10분 영상 모두를 다운로드 받게 된다)
- 중간에 비디오 품질을 바꿀 수 없다
- 만약 중간에 통신환경이 바뀌게되도 품질이 변경이 안된다
- 예를들어 G3로 영상을 시청하다 와이파이로 변경을 해도 영상의 품질을 낮계 유지된다
- 만약 중간에 통신환경이 바뀌게되도 품질이 변경이 안된다
- 라이브 서비스가 불가하다
2. RTSP/RTMP Streaming
사용자가 시청하고 있는 비디오 프레임만을 전송하며 플레이어는 사용자가 이미 시청한 프레임은 버린다
장점
- 대역폭 낭비가 없다
- 중간에 비디오 품질을 바꿀수 있다
단점
- 전문 웹서버가 필요하다 그러므로 구축하는데 비용이 많이든다
- 비디오를 일시 중지 할 수 없다.
- 부드러운 재생을 위해 충분히 다운로드를 받아놓을 수 없다.
- 2020년 12월 31일자로 정식 지원이 중단된다(AWS도 해당일 전에 지원을 중단할 예정이라고 한다)
3. Adaptive HTTP Streaming (HLS, DASH)
서버에 작은 조각단위(보통 10초로 설정하지만 리소스의 상태를 고려해 다르게 설정하기도 한다)의 비디오를 가지고 스트리밍을 하며 플레이어는 이 비디오 조각을 연속된 스트림으로 연결시킨다.
HLS (출처 : www.ncloud24.com/data/bbsData/1326071455&&CDN_Streming_HLS_UserManual.pdf)
- m3u8파일은 HLS에 필요한 메타데이터를 담고 있다.
- ts는 비디오의 Segment이다.
- SMIL파일은 비디오 스트리밍에서 Wrapper의 역활을 해낸다고 보면된다(Subtitle, Bitrate별 전송할 비디오 등)
- 인증토큰 : 인증토큰을 사용해 서비스를 제공할지 제공하지 않을것인지 결정한다.
- file : 스트리밍할 파일명
- token : 인증토큰으로 23자리로 이루어 진다
- expr : 인증토큰의 만료시간으로 unix timestamp의 hex값이다
- expr-rel : 인증 토큰 유효 시간 지정(단위: 초)
- secret : 서비스 생성 과정에서 설정한 인증암호
- filename : 파일명
- current : 현재 UNIX TIMESTAMP
- expr : 인증 토큰 유효 시간
- message : 인증 토큰 생성에 필요한 문자열 생성
- token : MD5 Hash를 이용 인증 토큰 생성
DASH
Adaptive Streaming은 각 회사마다 표준이다르므로 MPEG에서 표준화한 Streaming 종류이다.
- MPD는 HLS의 m3u8과 마찬가지로 XML형태로 메타데이터 정보를 가지고 있다.
- m4s 확장자를 가지고 있는 Segment를 가지고 있다.
왜 Live Streaming을 CDN에서 사용하는가?
- HTTP기반 Streaming은 청크 단위로 쪼개져서 전송되기 때문에 CDN 네트워크의 모든 서버에서 청크를 가져올 수 있다.
- DNS를 이용해 로드발란싱 기능을 제공한다 그러므로 확장성이 아주 뛰어나다.
세계 모든 유저를 모두 만족할 수 있는 단일 CDN서비스는 없으므로 다수의 CDN을 사용하는 고객이 있다.
'Cloud > AWS' 카테고리의 다른 글
AWS 인터뷰 정리 (0) | 2020.09.06 |
---|---|
Simple Email Service - SES (0) | 2020.09.05 |
S3 Glacier (0) | 2020.09.04 |
CloudFront (0) | 2020.09.03 |
ELB - Elastic Load Balancer (0) | 2020.09.02 |