이두잉의 AWS 세상

AWS Elemental MediaLive

2017.12.01 18:18 - leedoing leedoing

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


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

기존 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

기준

Input: 1080p HD, HEVC, 20Mbps

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


Elemental MediaLive: $546(https://aws.amazon.com/ko/medialive/pricing/)


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 로그를 어디서 확인해야 할지 모르겠다. 

도큐먼트를 뒤져도 로그에 대한 설명은 없음.


5) 테스트

Input: RTMP(PULL)

Encoder: AWS Elemental MediaLive 

Output: S3(HLS) - destination의 경우 http(s), s3(ssl) 형태로 입력

(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가 잘 된다.




CloudFront와 연동하면 좀 더 나은 성능으로 볼 수 있을 듯 하다. RTMP Stream Source가 국내임에도 불구하고 버지니아에서 테스트 결과가 나쁘지 않았다. 


다만 국내 리전에 없어서 실제 서비스로 사용하기에는 무리가 있으나, Live Stream의 VOD 저장 용도는 고려할만하다.

다른 서비스와도 접목하여 테스트를 해봐야겠다. 


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


추가 정보

Document: https://docs.aws.amazon.com/medialive/latest/ug/medialive-ug.pdf

AWS Korea Blog: https://aws.amazon.com/ko/blogs/korea/aws-media-services-process-store-and-monetize-cloud-based-video/



*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 설정

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

AWS Elemental MediaLive  (1) 2017.12.01
  • 주니 2018.03.22 12:01 신고

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