이두잉의 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에 대해 인코딩/트랜스코딩이 가능하다.

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

도큐먼트를 뒤져도 로그에 대한 설명은 없음. 이제 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: 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 설정


*output option 추가(HLS기준)

확인 중... 학습해야 할 설정 값이 너무 많다. (카톡 머리 잡는 이모티콘 추가)


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

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

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