본문 바로가기

Media Services/MediaLive

AWS Elemental MediaLive

AWS에서 Live Encoder가 출시되었다.

 

기존 Elastic Transcoder의 경우 S3 내의 VOD 파일을 단순히 Transcoding 해준 서비스였다면, 이번 AWS Elemental MediaLive는 여러 input Live stream에 대해 인코딩/트랜스코딩이 가능하다.

기존 Elastic Transcoder와 대비되는 서비스는 MediaConvert

 

AWS Elemental MediaLive

- AWS의 Encoder 서비스로 Live 비디오 스트림을 실시간으로 인코딩하고 배포하는 서비스

 

1) 주요 특징

- 두 개의 가용 영역에 리소스 분산

- 스트림에 따라 리소스를 자동적으로 관리하여 고가용성을 제공

- Input Stream은 RTP, RTMP(push), RTMP(pull), HLS Protocol 그리고 두 개의 Input Stream을 지원

- Ouput Stream은 HLS, Microsoft Smooth, UDP, to S3를 지원

- Codec은 현재까지 H.264만 지원

 

2) 사용 방법

2-1. Input Stream에 대한 정의(RTP, RTMP pull/push, HLS)

2-2. Input security groups 정의 후 inputs에 Attach

2-3. Channels 생성 후 미리 정의된 Channel template 중 선택하고, Output에 대한 Destnation url과 옵션을 지정

(Output의 경우 그룹핑이 가능)

그 외 *input(HLS)/ouput optional한 설정이 매우 많음!!!!!

 

3) 비용 비교

Wowza VS AWS Elemental MediaLive

(사실 Wowza와 MediaLive는 비교 대상군이 아니긴하다. Wowza는 부분적으로 인코딩/트랜스코딩이 가능한 미디어 서버고, MediaLive는 전문 인코더)

 

기준

Input: 1080p HD, HEVC, 20Mbps

Output: 1080p HD / 720p HD / 480 SD

 

Elemental MediaLive: $546

 

MediaLive 요금

예 1: 온디맨드, 표준 채널 미국 동부(버지니아 북부) 지역에서 고급 오디오 출력 5개를 생성하고 HD 입력 2개(입력 전환 사용)로 구성된 라이브 표준 채널을 실행할 경우 시간당 비용은 3.942 USD입니다. 입력 1080p HD, HEVC, 20Mbps = 시간당 0.588 USD 1080p HD, HEVC, 20Mbps = 시간당 0.588 USD AVC 출력 1080p HD, 5Mbps, 30fps = 시간당 0.702 USD 720p HD,

aws.amazon.com

 

Wowza 미디어 플랫폼(CPU: 16/Mem: 30GiB): $1000 이상(Wowza License 온디맨드 라이센스 금액 포함)

 

Wowza 이중화 구성의 경우 운영/비용적으로 MediaLive가 더 우위에 있으며, 라이센스를 보유하더라도 Elemental MediaLive가 더 저렴할 것으로 예상

(Input Live HD Stream -> Output 5개의 채널 기준으로 EC2 Type의 경우 개인적 경험에 의한 기준임으로 더 절약될 수도 있음, Wowza 기준)

 

4) 아쉬운 점

로그가 현재 CloudWatch Logs와 Integration이 되어 있지 않음. Stream 로그를 어디서 확인해야 할지 모르겠다. 

도큐먼트를 뒤져도 로그에 대한 설명은 없음. 이제 CloudWatch Logs와 Integration 되었음!!

 

5) 테스트(Archive)

Input: RTMP(PULL)

Encoder: AWS Elemental MediaLive 

Output: S3(HLS) - destination의 경우 http(s), s3(ssl) 형태로 입력(S3는 아카이빙용! 실제 서비스는 Mediastore와 연동 필요)

(CDN Settings Hls basic put의 경우 s3(ssl), http(s) 사용 가능)

 

ex)s3(ssl)://'bucketname'/경로/파일명(하위 경로에 파일명.m3u8 형태로 저장)

ex)http(s)://경로(s3를 http(s) 경로로 사용할 경우 role 적용이 안 되기 때문에 s3는 s3(ssl) 경로 사용 권장)

 

HLS 청크의 주요 옵션(Output Group Manifest and Segments): Segment Length, Num Segments

Archive의 경우: Rollover Interva 옵션 이용

 

Name Modifier에 $dt$, $rv 등 옵션 값을 통해 파일명에 메타 정보 입력 가능

 

S3로 미디어 hls chunk들이 저장

 

 

일단은 Play가 된다.

 

Archive 용도로 Live의 VOD 서비스로는 사용할만하다. CloudFront와 연동하면 좀 더 나은 성능으로 볼 수 있을 듯 하다.

 

다만 국내 리전에 없어서 실제 서비스로 사용하기에는 무리가 있다. (해외 송출 Stream 끊김 현상이 발생될 수 있으므로)

 

Media 카테고리까지 접수....어서 빨리 한국 리전에도 런칭되기를

 

추가 정보

Document

불러오는 중입니다...

AWS Korea Blog

 

AWS Media Services – 클라우드 기반 비디오 처리, 저장 및 수익 창출 서비스 출시 | Amazon Web Services

초기에 웹 비디오가 어떤 것이었는지 기억하십니까? 독립 실행형 플레이어, 우표보다 크지 않은 비디오, 느리고 불안정한 연결, 오버로드된 서버 및 상존하는 버퍼링 메시지는 20년 전의 기준이었습니다. 오늘날 기술 진보와 광범위한 표준으로 인해 상황이 매우 개선되었습니다. 이제 비디오 소비자가 제어합니다. 소비자는 모든 모양, 크기 및 빈티지의 디바이스를 사용하여 방송, 스트리밍 또는 OTT(over-the-top)로 전송된 실시간 및 기록된 콘텐츠를 […]

aws.amazon.com

 

 

*Input option 추가

 

Channel and input details

General info

Channel name: 채널 이름

IAM role: role 권한 부여

Create role from template를 통해 MediaLive에서 사용할 Role을 생성할 수 있음

(S3 GET/PUT 등 and SSM ReadOnlyAccess 권한)

Remember role 선택 시 추가로 채널을 생성할 경우 기존 Role을 사용

 

Channel input

Create input 선택

Input details

Input details

Input name - required: Input 이름

Input type - required

RTP, RTMP(push), RTMP(pull), HLS 중 선택

Input security Group

Use existing: 기존 생성한 Security Group 사용

(VPC S.G와 별개, MediaLive의 경우 Public 서비스)

Create: Security Group 생성

 

Input codec

MPEG2, AVC, HEVC 중 선택

Input resolution

SD, HD, UHD 중 선택

Maximum input bitrate

10, 20, 50 Mbps 중 선택

 

Channel template

이미 구성된 template 혹은 Custom template(매우 다양한...옵션을 통해, 서비스별 설정 가능) 생성

 

 

General channel settings

Blanking 및 AD 관련 등 설정으로 중계 서버가 필요

 

input settings

Disable

Network Input Settings: HLS(HTTP) 사용할 때 필요한 설정(보통 INPUT은 RTMP로...)

Server Validation

CHECK_CRYPTOGRAPHY_AND_VALIDATE_NAME: HTTPS 통신 시 인증서 확인 옵션

(wildcard 사용 시 subdomain과 인증은 에러가 발생될 수 있음)

CHECK_CRYPTOGRAPHY_ONLY: SSL 인증서만 확인하는 옵션인가?

HLS Input Settings

DIsable

HLS Input Settings

Bandwidth: m3u8 bandwidth 옵션에서 가장 근접한 input을 받음

   (입력 안 하면 가장 큰 bandwidth input을 받음)

Retries: input 실패에 대한 재시도

Retry Interval: Retries 옵션 주기

Buffer Segments: segment 버퍼 갯수(입력 안 하면 바로 Ingest)

Input Filter: MPEG-2 input deblocking filter가 default

AUTO: input에 따라 deblokcing 필터 적용

DISABLED: 적용하지 않음

FORCED: input type에 관계없이 적용

Filter Strength: 필터 크기

Deblock Filter: Deblock Filter 사용 유무

Denosise Filter: Denoise Filter 사용 유무

Source End Behavior: File의 경우 Loop 선택(default continue)

Video Selector: map 옵션

Selector Settings: 스트림이 멀티 채널의 경우 Program id 또는 pid를 기준으로 Input 제어

Video selector program program id

Video selector pid

Color Space

FOLLOW

REC_601

REC_709

Color Space Usage: Color Space가 FOLLOW가 아닐 때 적용

FALLBACK: input color space가 없을 경우 space에 정의한 옵션 적용

FORCE: input color space 관계 없이 space에 정의한 옵션 적용

 

Audio Selectors: demuxing audio 설정

Caption Selectors: demuxing caption 설정

 

*output option 추가(HLS기준)

확인 중... 학습해야 할 설정 값이 너무 많음.

 

참고로 모니터링은 아래를 참고, 모든 AWS Media의 Resource들을 가시적으로 볼 수 있음. 열일하는 Elemental Team.

 

awslabs/aws-media-services-application-mapper

Media Services Application Mapper is a browser-based tool that allows operators to visualize the structure and logical connections among AWS Media Services and supporting services in the cloud. The...

github.com

 

프로파일 구성은 유튜브를 그냥 참고해서 해도 무난한 서비스는 가능할 듯?

 

라이브 인코더 설정, 비트 전송률, 해상도 선택 - YouTube 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

 

QVBR의 경우 해상도별 권장 프로파일

 

 

 

'Media Services > MediaLive' 카테고리의 다른 글

AWS Elemental MediaLive  (1) 2017.12.01

태그

  • 주니 2018.03.22 12:01

    혹시 JAVA SDK 연동도 해보셧나요? 다른언어들과 달리 json 파라미터로 한번에 던지는게 없는거같아서 질문드려요~