Contents

AWS Media Convert 파해치기

들어가며

효과적인 영상 압축을 위해 AWS Media Convert 서비스를 사용해 보았습니다. 막상 사용하려고 보니 온통 처음 보는 용어가 가득했습니다. 이런 용어들을 이해해야 제대로 기능을 활용할 수 있을 것 같았습니다. 본문에는 기본적인 AWS Media Convert 서비스에 대한 소개와 더불어 각종 영상 압축 관련 용어들을 조금은 두서없이 정리해 보았습니다.

(* 본 글은 2019년 작성된 글로, 그 사이 비용 등 많은 부분이 변경되었을 수 있습니다.)

비용(Pricing)

  • Basic Plan / AVC 코덱 / 아시아 태평양(서울) 리전 / On-Demand 요금 기준
fps<=30 30<fps<=60 60<fps<=120
SD 0.0085 USD 0.0106 USD 0.0127 USD
HD 0.0170 USD 0.0212 USD 0.0255 USD
UHD 0.0340 USD 0.0425 USD 0.0510 USD
  • RTS(ReservedTranscodeSlots) 요금 12개월 약정: 500 USD

  • 추가 요금

    • Dolby Audio 분당 0.0050 USD
    • 오디오 정규화 분당 0.0020 USD
  • 베이직 티어와 프로페셔널 티어의 해상도는 아래와 같이 정의됩니다.

    • SD: 수직해상도가 720 미만인 출력
      • 480p: 720x480 60fps
    • HD: 수직해상도가 720 이상이면서 1080 이하 출력
      • 720p: 1280x720 60fps
      • 1080i: 1920x1080 30fps(비월주사(인터레이즈.i))
      • FHD(1080p): 1920x1080 60fps
    • UHD: 수직해상도가 1080보다 크면서 최대 2160인 출력
      • 4K: 4096x2160 60 fps
  • 비용 절감 방안

    • RDS를 활용합시다.
    • 온 디멘드 요금 기준 393 시간 사용시 약 $500의 비용이 듦니다.
      • 720p(0.0212 USD/분) x 23,585분(393시간) -> 약 500 USD
    • 월 393시간 미만의 영상을 인코딩 한다면 온 디멘드 요금제를 사용하고 그 이상 사용한다면 RTS를 두고 사용하면 비용 측면에서 유리합니다.
  • Reference


Output Groups

Apple HLS Group Setting

Segment

  • Segment control
    • Segmented files: 기본
    • Single File: 하나의 Segment만 생성합니다.
      • segment를 나눈 것과 성능상의 큰 차이는 없습니다.
      • master manifest 파일에는 ts 정보가 아닌 byte 정보가 담깁니다.
  • Segment length(sec)
    • live는 보통 2초로 세팅하면 됩니다.
    • Segment가 길수록 파일 사이즈가 커지고, 최초 ts 다운로드 시 오래 걸리게 됩니다.
    • VOD는 굳이 자를 필요는 없습니다. (추천: 4초 이상 안 쓰는 게 좋습니다.)
  • Codec specification

Output Settings(H.264)

Preset

  • Name modifier 세팅. 생성되는 파일의 post_fix

Add I-Frame only manifest


Encoding Settings

AFD(Active Format Description)

SEI(Supplemental Enhancement Information)

Framerate

  • 기본적으로 소스를 따르게 설정 합니다.

Video Mode

  • Rate control mode
    • CBR: 비트레이트가 일정
    • VBR: 정해진 값에서 비트레이트가 오르락 내리락
    • QVBR: 쉬운영상이 나오면 낮은 비트레이트 어려운 영상이 나오면 높은 비트레이트
  • Quality tuning Level / Max bitrate(bits/s) / QVBR Quality level
  • 참고자료: [AWS Document] QVBR 속도 제어 모드 사용
해상도 너비 높이 QVBR 품질수준 최대 비트레이트
1,080p 1,920 1,080 9 6,000,000
720p 1,280 720 8 4,000,000
720p 1,280 720 7 2,000,000
480p 640 480 7 1,000,000
360p 480 360 7 700,000
240p 352 240 7 350,000

GOP(Group of Pictures)

  • I frame의 간격을 말합니다.

  • B frame 2개일 경우: IBBPBBPBBPBBPBBPBBPBBP…I

  • I: Key frame / B: 예측 frame / P: 참조 frame

  • I frame이 용량이 제일 크고 B프레임이 용량이 제일 작습니다.

  • 쉬운 영상(역동적이지 않은)일수록 B frame을 많이 쓰는 것이 유리합니다.

  • 낮은 대역폭에 대해서는 B frame을 많이 쓰는 것이 유리합니다.

  • 애니메이션은 Easy한 소스여서 bitrate를 낮춰도 크게 영상에 문제가 생기거나 하지 않습니다.

  • 720p라면 일반적으로 2Mbps를 쓰지만 1.5Mbps로도 충분하고, QVBR Target 7 쓰면 CDN비용 40%이상 Save 할것으로 예상합니다.

  • GOP size는 60, B frames between reference frames는 2~3 정도 쓰는것이 좋습니다.

  • 참고자료: [위키피디아]IPB Frame - Video compression picture types

Scene Change Detection

  • I프레임을 중간에 삽입해줍니다.

Profile

  • BaseLine(CBP/BP)
    • 저비용 어플리케이션(영상회의/모바일 어플리케이션 등)에 사용합니다.
    • 영상손실, 인코더 기능을 특정 Basic한 것만으로 제한하는 방식입니다.
    • 양방향 예측(B-Frame)은 지원하지 않습니다.
  • Main(MP)
    • 디지털 TV 방송 표준
    • 양방향 예측(B-Frame)을 지원합니다.
  • High(HiP)
    • 고해상도 TV어플리케이션 Bluray Disc, DVB HDTV 방송 서비스에 사용합니다.
    • 양방향 예측(B-Frame)을 지원합니다.
  • Reference

Level

  • 비트율, 프레임율, 화면해상도
  • 서비스하려는 단말기 중에서 가장 낮은 레벨이 무엇인지 확인해야 합니다.

Entropy Encoding

  • 비디오 재생시에 CAVLC과 CABAC의 성능 차이는 거의 없는 반면에 화면의 질은 CABAC이 낫습니다.
  • CABAC: 상황 적응 이진 산술 코딩. 기본 확률 모델에 대한 고효율 자동 조정을 제공합니다. 산술코더, 가장 높은 압축 효율 비율. CAVLC보다 많은 하드웨어 리소스가 필요합니다.
  • CAVLC: 상황 적응 가변 길이 코딩. 호프만과 같은 압축 알고리즘 사용합니다. 적절한 품질. 빠른 데이터 압축
  • Reference: http://www.rumpus.co.kr/04.Technology/TransCoderTab04.asp

Slices

  • 화면을 독립적으로 분할하여 인코딩 가능합니다.
  • 여러 CPU를 동시에 사용할 수 있습니다.
  • 각 슬라이스 간의 중복되는 부분을 알 수 없습니다
  • 인코딩 품질이 떨어질 수 있습니다.

Audio encoding settings

profile

  • HE-AAC: 디지털 오디오에서 쓰이는 손실 데이터 압축 방식
    • LC: 복잡성이 낮고, 스트리밍 오디오와 같은 낮은 비트레이트 애플리케이션에 최적화됩니다.
    • HEV1: 스펙트럼 대역 복제(Spectral band replication, SBR)를 사용하여 주파수 영역(frequency domain)에서 압축 효율이 향상됩니다.
    • HEV2: 스펙트럼 대역 복제와 파라메트릭 스테레오(PS)가 한 쌍을 이루어 스테레오 신호의 압축 효율이 향상됩니다. 박수와 같은 압축하기 어렵다고 알려진 음원에서는 음질의 열화가 발생한다고 알려져 있습니다.
  • 참고자료: Reference: [위키피디아]HE-AAC

Bitrate control mode

  • CBR(Constant Bit Rate): 고정 비트레이트 전송
  • VBR(Variable Bit Rate): 가변 비트레이트 전송

Media 서비스 제공 Origin

  • MediaStore: 심플하게 라이브 스트리밍을 구성할 경우 사용합니다.
  • MediaPackage: 보다 복잡한 구성시 사용합니다.
  • S3: VOD 용, MetaData 업데이트가 안되서 Live용으로는 사용 불가능 합니다.

CDN

  • Data Size가 비용과 연결됩니다.
  • Profile Ordering
    • 프로파일 제공 순서입니다.
    • 대부분 낮은 것부터 올라가도록 세팅합니다.
    • 다만, 충분히 네트워크 속도가 빠른 상태에서는 굳이 내려받지 않아도 되는 해상도의 세그먼트까지 다운받게 되어, 비용 낭비가 생깁니다.
    • 추천사항은 720p > 480p > 1080p와 같이 적당히 중간 것부터 제공하도록 세팅하는 것입니다.

배경지식

OTT(Over The Top)

  • 인터넷을 통해서 미디어 서비스를 받을 수 있는 모든 Device를 말합니다.

HLS

  • 전세게적으로 90% 정도 사용 합니다.
  • 애플에서 만든 Adaptive Bitrate Streaming
  • Master Manifest(index.m3u8) -> 사용자별로 다르게 구성할 수 있습니다.
    • Child Manifest(index_720p.m3u8)
    • Child Manifest(index_480p.m3u8)
    • Child Manifest(index_360p.m3u8)
  • Live 용 HLS 컨버팅시 파일 생성순서 TS -> Child manifest -> Master Manifest
  • 참고자료: [Tistory]개똥이야기-H.264소개

끝.