이두잉의 AWS 세상

AWS Elemental MediaConevert

2018.05.14 18:29 - leedoing leedoing

1. 개요

VOD 컨텐츠에 대한 AWS의 Media 트랜스코더(Live는 MediaLive)


2. 기능

브로드캐스트

- 오버레이, 콘텐츠 보호(DRM), 다국어 오디오, 자막, 광고(SCTE-35) 등 여러 옵션 존재

입출력

- MPEG-2/HEVC 코덱 지원, 색상 샘플링(Color Space), Adaptive packaging(HLS, DASH ISO), 4K Resoultion, HDR

자동화

- API를 통해 자동화가 가능하며, Managed Service(확장/축소, 장애처리, 최적화, 모니터링 등)

안정성

- AZ를 통해 이중화 되어있음


3. Elastic Transcoder(ETS)와 차이점

- Elastic Transcoder는 Video, Audio에 대한 스트림 Preset / Water mark를 제공

- MediaConver는 ETS 기능에 없는 오버레이, DRM, 다국어 오디오, 자막, 광고(SCTE-35) 등 추가적인 옵션 및 HEVC 지원

- ETS와 MediaConvert 모두 출력 영상 길이에 따라 비용이 발생

- MediaConvert는 베이직 티어와 고급 옵션을 지원하는 프로페셔널 티어가 있음

- 베이직 티어는 ETS 정도의 기능을 제공하며 비용은 ETS보다 저렴, 프로페셔널 티어는 ETS보다 약 두 배 이상 비쌈

  (ETS HD 기준 분당 $0.030, MediaConvert HD 기준(Frame 30 ~ 60) 분당 베이직 $0.0212, 프로페셔널 $0.068)

ETS 비용 참고: https://aws.amazon.com/ko/elastictranscoder/pricing/

MediaConvert 비용 참고: https://aws.amazon.com/ko/mediaconvert/pricing/)

- 따라서 VOD에 대한 트랜스코딩이라면 먼저 MediaConvert를 고려하고, WebM 비디오/MP3 오디오/GIF 파일 생성/KMS(암호화) 기능이 필요하다면 Elastic Transcoder 사용을 권장. 그러나 AWS에서는 MediaConvert를 계속 업데이트 할 것으로 보임


4. 테스트

아래와 같은 원본 4K의 고화질의 영상을 트랜스코딩 해보자(인터넷에 떠도는 LG UHD(HDR) 4K 데모 영상)

먼저 간단하게 원본을 SD, HD(AVC) 형태로 트랜스코딩 및 패킷타이징(HLS) 해보자


4-1. 영상을 S3에 업로드

4-2. IAM Role 생성

AWS Console -> IAM -> Role -> Create Role -> MediaConvert 선택 -> Next -> Next(자동적으로 필요한 Policy가 생성) -> Role 이름 입력

4-3. AWS Console -> MediaConvert -> Get started

4-4. Job

4-4-1. Inputs Add

Input 1: Input S3 버킷명 및 Path, File 명 입력(ex. s3://lee-etc/test.mp4)

Video: Color Space 등 비디오 트랜스코딩 관련 설정

Audio: Audio 관련 옵션

4-4-2. Ouput groups Add

Apple HLS group settings -> Destination(ex. s3://lee-etc/HLS/) -> Segmented files(4, 2)

(Minimum Segment Length 설정은 필요에 따라 Segment에 키프레임을 추가시켜주는 옵션이라는데 정확한 내용은 설명되어 있지 않음....)

(https://docs.aws.amazon.com/ko_kr/mediaconvert/latest/apireference/jobtemplates-name.html)

Add output -> HD, SD(AVC)

Elastic Transcoder와 같이 Preset을 Custom하게 설정 가능


준비된 Preset을 통해 HD/SD를 구성


Ouput 1 -> Preset -> 1080p / Output 2 -> Preset -> 720p

4-4-3. Settings -> IAM role -> 기존에 생성한 MediaConvert Role 등록



4-5. 결과

4-5-1. 소요시간 2분 12초(영상 4K, 약 1분)

4-5.2. 기존 미디어 파일 정보(448MB, 1분 13초 영상)


4-5.3. HD, SD 청크 파일 정보(6MB, 6초 영상 / 3.8MB, 6초 영상)


Output S3 경로에는 아래와 같이 playlist 및 청크 파일이 저장(Segement length는 설정한 4초, 2초 합산된 6초)

(Minimum Segment Length 옵션은 그냥 0으로 사용해도 될 듯)



간단한 테스트를 통해 MediaConvert를 확인해봤으며, 자동화는 Lambda API 호출로 EST와 같이 사용 가능하다.

오버레이, DRM, 자막, HEVC, HDR 등 고오급 옵션은 추후 테스트가 더 필요하다.


AWS SDK를 사용할 경우 End-point를 환경 변수로 넣어줘야 한다.

(https://docs.aws.amazon.com/ko_kr/mediaconvert/latest/apireference/custom-endpoints.html)


Lambda를 통한 자동화 참고: https://github.com/aws-samples/aws-media-services-simple-vod-workflow/tree/master/7-MediaConvertJobLambda


DRM의 경우, 이미 잉카 사의 Pallycon 멀티 DRM 솔루션(Widevine, FiairPlay 등) 연동이 가능하다고 한다.

참고: https://www.pallycon.com/?lang=ko

참고: https://docs.pallycon.com/ko/

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

AWS Elemental MediaConevert  (0) 2018.05.14