HLSEncodingStorage

적응형 비트레이트 래더 설명: 360p부터 4K까지, 디스크 비용

적응형 비트레이트 스트리밍이 화질을 고르는 방식, UFOLOAD 컨버터의 실제 단계와 비트레이트, 단계별 시간당 디스크 사용량을 설명합니다.

적응형 비트레이트 래더는 스트리밍 플레이어가 고를 수 있는 동영상 버전의 집합입니다. 각 단계에는 해상도와 비트레이트가 있으며, 플레이어는 한 단계에서 시작해 세그먼트가 얼마나 빨리 내려받아지는지 살피고 연결 상태가 바뀌면 단계를 올리거나 내립니다. 래더를 잘 구성하면 기차 안의 시청자와 4K TV 앞의 시청자 모두 하나의 업로드로 끊김 없이 재생할 수 있습니다. 잘못 구성하면 아무도 쓰지 않는 단계에 디스크와 대역폭을 낭비하거나, 느린 연결의 시청자에게 로딩 표시만 남기게 됩니다.

이 글에서는 래더의 동작 원리를 설명한 뒤, UFOLOAD 컨버터가 실제로 만드는 래더를 컨버터에서 가져온 비트레이트와 함께 보여 주고, 각 단계가 동영상 1시간당 디스크 공간을 얼마나 차지하는지 알려 드립니다.

플레이어가 단계를 고르는 방식

HLS 스트림의 마스터 재생 목록에는 모든 단계가 중요한 세 가지 속성 BANDWIDTH, RESOLUTION, CODECS와 함께 나열됩니다. 플레이어는 최근 몇 개 세그먼트의 다운로드 속도를 측정하고, BANDWIDTH가 그 속도보다 여유 있게 낮은 단계 중 가장 높은 단계를 고릅니다. 알아 둘 만한 세부 사항이 두 가지 있습니다.

첫째, BANDWIDTH는 평균이 아니라 최댓값입니다. 재생 목록이 이 값을 낮게 적으면 플레이어는 연결이 감당하지 못하는 단계를 고르고 재생이 멈춥니다. 그래서 저희 컨버터는 최댓값을 기록하며 절대 0을 쓰지 않습니다. 둘째, 전환은 세그먼트 경계에서 일어납니다. 저희 세그먼트는 4초 길이이고 인코더가 각 세그먼트 시작에 키프레임을 배치하므로, 플레이어는 끊김 없이 렌디션 사이를 오갈 수 있습니다. 세그먼트가 짧을수록 더 빨리 반응하지만 요청 수가 늘어나며, 4초는 흔히 쓰이는 절충점입니다.

이런 스트림을 내 페이지에 넣고 싶다면 HLS 동영상을 임베드하는 방법에서 iframe과 hls.js 방식을 확인하세요.

UFOLOAD의 래더

컨버터에는 2160p(4K), 1080p, 720p, 360p의 네 단계가 있습니다. 업스케일링은 디테일을 더하지 못하면서 용량과 인코딩 시간만 늘리므로, 원본 높이가 해당 단계 이상일 때만 그 단계가 만들어집니다. 720p 원본은 720p와 360p를 만들고, 360p보다 작은 원본은 모든 파일에 재생 가능한 버전이 최소 하나는 있도록 원본 크기 그대로 렌디션 하나를 만듭니다. 너비는 원본의 화면 비율을 따르고 짝수로 반올림되는데, 4:2:0 크로마의 H.264는 홀수 크기를 인코딩할 수 없기 때문입니다. 아래 너비는 16:9 기준입니다.

UFOLOAD 컨버터의 단계 (H.264 High 프로파일, AAC 스테레오)
단계16:9 프레임동영상 상한화질 목표(CRF)오디오시간당 최대 용량
2160p3840x216016 Mbit/s20192 kbit/s6.79 GiB
1080p1920x10805 Mbit/s22160 kbit/s2.16 GiB
720p1280x7202.8 Mbit/s23128 kbit/s1.23 GiB
360p640x3600.8 Mbit/s2664 kbit/s0.36 GiB

기본 프리셋은 medium이며, 단계별 비트레이트는 일반적인 H.264 콘텐츠를 기준으로 정했습니다. 1080p 단계의 상한은 5 Mbit/s로, 깨끗한 화면에 충분하며 그 이상은 눈에 보이는 이득 없이 파일만 커집니다. 4K는 1080p보다 픽셀이 4배 많으므로, 복잡한 장면에서 블록이 보이지 않도록 상한을 3배 이상 높은 16 Mbit/s로 잡았습니다.

컨버터는 480p나 240p를 만들지 않습니다. 단계가 적을수록 디스크 사용량이 줄고 인코딩이 짧아지며, 360p와 720p 사이에도 플레이어는 느린 모바일 연결을 위한 적절한 단계를 갖습니다. 실제로 받는 단계는 요금제에 따라서도 달라집니다. 360p와 720p가 기본이고 최고 단계는 요금제 페이지에 나온 요금제 상한으로 제한됩니다. Free 요금제에서는 동영상이 단일 화질로 제공됩니다.

CRF와 비트레이트 상한: 파일 크기가 최댓값인 이유

인코더는 고정 비트레이트를 목표로 하지 않습니다. CRF(constant rate factor)로 표현되는 일정한 화질을 목표로 하며, 숫자가 낮을수록 화면이 좋아지고 파일이 커집니다. 정적인 인물 대화 영상은 목표에 도달하는 데 데이터가 아주 적게 들고, 액션 장면은 많이 듭니다. 한 장면이 느린 연결을 넘치게 하지 않도록 각 단계에는 표의 비트레이트와 같은 maxrate와 그 두 배 크기의 버퍼도 설정되어 있습니다. 그 결과 스트림은 보통 상한보다 낮고, 상한을 넘더라도 오래가지 않습니다.

그래서 이 글의 용량은 최대 용량입니다. 강의나 화면 녹화는 보통 이보다 훨씬 작습니다. 대화 위주의 콘텐츠는 상한의 일부에 그치고, 움직임이 많은 스포츠나 노이즈가 많은 영상은 상한에 가까워집니다. 라이브러리 규모를 잡을 때는 안전한 예산에는 최댓값을, 현실적인 예산에는 직접 측정한 평균값을 쓰세요.

Encoding studio의 화질 프로필이 이 균형을 바꿉니다. fast 프로필은 더 빠른 x264 프리셋을 써서 파일이 약간 커지는 대신 동영상이 더 빨리 준비되고, quality 프로필은 더 느린 프리셋과 더 낮은 CRF로 더 깨끗한 화면을 만들며 유료 요금제에서 사용할 수 있습니다. 기본값인 balanced는 그 중간입니다.

래더가 차지하는 디스크 공간

각 단계의 최댓값 기준으로 동영상 1시간은 2160p에서 6.79 GiB, 1080p에서 2.16 GiB, 720p에서 1.23 GiB, 360p에서 0.36 GiB입니다. 전체 래더는 원본이 허용하는 단계의 합이며, 각 단계는 디스크에서 별도의 파일입니다:

원본 해상도생성되는 단계동영상 1시간당 최대 용량
4K (2160p)2160p, 1080p, 720p, 360p10.54 GiB
Full HD (1080p)1080p, 720p, 360p3.75 GiB
HD (720p)720p, 360p1.59 GiB
360p 미만원본 크기의 렌디션 1개원본에 따라 다름

구체적인 예를 들어 보겠습니다. Full HD 영상 100시간은 최대 약 375 GiB의 렌디션을 만듭니다. 최고 단계를 720p로 제한하면 같은 100시간에 최대 약 159 GiB만 필요해 절반 넘게 줄어듭니다. 비용은 최고 단계가 좌우합니다. 4K 원본으로 된 라이브러리에서 4K를 빼면 용량의 약 3분의 2가 사라집니다. 호스팅 업체가 이 렌디션을 저장 공간 할당량에 포함하는지는 별개의 문제로, 동영상 호스팅 비용에서 다룹니다. UFOLOAD에서는 업로드한 파일의 크기로 할당량을 계산합니다.

Encoding studio에서 래더 조정하기

기본값을 그대로 받아들일 필요는 없습니다. 대시보드의 Encoding studio에는 저장할 단계 수를 바꾸는 설정이 세 가지 있습니다:

  • 최대 해상도. 동영상은 이 값보다 높게 인코딩되지 않습니다. 요금제 상한을 넘는 해상도는 잠겨 있습니다.
  • 최저 화질. 가장 낮은 단계로 360p, 720p, 1080p 중 하나를 고릅니다. 높이면 작은 단계가 빠져 디스크와 인코딩 시간이 절약되지만, 약한 연결의 시청자는 대체 화질을 잃게 됩니다. 모바일 사용자가 있다면 360p를 유지하세요.
  • 빠른 프리셋. 최고 화질, 균형, 저장 공간 절약(최대 720p, 필요한 화질만), 그리고 해당되는 계정을 위한 즉시 게시.

변경 사항은 새 업로드에 적용됩니다. 이미 라이브러리에 있는 동영상에 적용하려면 재인코딩 기능을 사용하세요. 최신 동영상부터 묶음으로 처리하며 실행 사이에 대기 시간이 있습니다. 재인코딩 중에도 동영상은 계속 재생할 수 있습니다.

래더를 직접 구성한다면

  • 인접한 단계 사이의 비트레이트 차이는 대략 1.5~2배로 유지하세요. 차이가 작으면 눈에 띄는 이점 없이 저장 공간만 늘고, 크면 화질 변화가 확연히 드러납니다.
  • 현실적으로 가장 느린 시청자에게 맞을 만큼 낮게 시작하세요. 아무도 감당할 수 없는 단계는 낭비이고, 가장 낮은 단계가 없으면 로딩 표시만 남습니다.
  • 키프레임을 세그먼트 길이에 맞추고, 재생 목록에는 최대 비트레이트를 기록하세요.
  • 업스케일하지 마세요. 각 단계는 원본 높이를 넘지 않게 하세요.
  • 한 달 뒤 시청자가 실제로 사용하는 단계를 측정하고, 한 번도 재생되지 않는 단계는 제거하세요.

업로드 형식부터 전송까지 전체 파이프라인은 기능 페이지에서, 요금제 한도와 가격은 요금제에서 확인하세요. 아직 선택지를 비교 중이라면 동영상 호스팅 체크리스트에 어느 업체에나 물어볼 인코딩과 화질 관련 질문이 정리되어 있습니다.

무료 계정으로 사용해 보세요

동영상을 업로드하고 몇 분 만에 HLS 플레이어와 API 키를 받으세요. 요금제 한도는 요금제 페이지에 나와 있습니다.