썸네일이 흐릿하게 보이는 이유

업로드하는 파일은 시청자가 내려받는 파일이 아니다. 유튜브는 그것을 자리별 WebP 크롭으로 다시 인코딩하고, 실제 피드에서 내가 찾은 가장 큰 것은 폭 720픽셀이었다. 그래서 “흐릿하다”는 네 가지 다른 원인으로 갈라지며, 그중 셋은 당신의 몫이다.

시청자가 실제로 내려받는 것

측정할 수 있는 문제이므로 측정해 왔다. 실제 시청 페이지와 실제 검색 결과 페이지를 불러와 마크업에서 썸네일 URL을 꺼내 받아봤다. 전부 WebP로, 16:9로 잘려서, 들어갈 자리 크기에 맞춰 돌아왔다.

전달된 크기는 렌더링되는 자리와 정확히 일치한다. 168 × 94는 내가 인터페이스에서 측정한 추천 항목이고, 336 × 188은 레티나 화면에서의 같은 자리다. 유튜브는 큰 이미지를 줄인 복사본을 보내는 것이 아니라, 그 상자를 위해 만든 파일을 보낸다.

숫자 두 개가 거의 모든 것을 설명한다

첫째는 자리다. 추천 항목의 폭은 CSS 168픽셀이고, 거의 모두가 쓰는 2× 화면에서는 336 물리 픽셀이다. 폭 1280픽셀로 만든 당신의 디자인이 폭 336픽셀 그림으로 전달된다. 선명함에 대한 판단은 전부 거기서 내려야 한다. 편집기에서가 아니다.

둘째는 바이트 예산이다. 그 336 × 188 파일은 17.6 KB, 즉 픽셀당 0.28바이트다. 명목이 아니라 실제 압축률이다. 요소가 적은 깔끔한 그림에는 충분하고 복잡한 그림에는 부족하며, 유튜브가 썸네일을 “망친다”는 불평의 대부분이 여기서 나온다.

1280 × 720은 마스터이고, 전달 형식이 아니다

1280 × 720으로 올리는 것은 여전히 옳다. 위의 모든 파일이 거기서 파생되고, 파생물은 원본보다 선명할 수 없기 때문이다. 다만 그 파일에 무슨 일이 일어나는지는 분명히 알아둘 만하다. 실제 영상 열한 편에서 저장된 maxresdefault.jpg는 114 KB에서 318 KB 사이, 평균 188 KB였다. 무엇을 올렸든 유튜브가 보관한 것은 그것이다.

그리고 그 원본 크기 파일이 사람에게 전달되는 곳은 딱 하나, 링크 미리보기다. 시청 페이지의 og:imagemaxresdefault.jpg를 가리키므로, 메신저나 슬랙 채널에 붙인 링크는 1280 × 720 JPEG을 보여준다. 유튜브 안에서는 그런 곳이 없다. 그 마스터를 재는 기준이 되는 업로드 규격은 유튜브의 맞춤 썸네일 도움말에 있습니다.

원인 1: 잘못된 크기로 판단하고 있다

압도적으로 가장 흔한 원인이고, 사실 품질 문제가 아니라 보기의 문제다. 디자인 도구에서 100%로 들여다보는 썸네일은 어떤 시청자가 볼 크기의 약 네 배로 들여다보는 것이며, 그 크기에서만 버티는 디자인은 다른 모든 곳에서 흐물흐물하게 읽힌다.

역도 성립하고 그쪽이 더 쓸 만하다. 336픽셀 상자를 견디는 디자인은 큰 크기에서 *의도적으로* 보인다. 그러니 작은 크기를 먼저 확인하고 큰 쪽은 덤으로 취급하라. 흔한 실수 가이드의 일곱 습관 중 하나이고, 가장 적은 노력으로 가장 많이 바뀌는 항목이다.

원인 2: 원본이 애초에 선명하지 않았다

세 가지 형태가 있고, 모두 모든 파생물까지 살아남는다.

확대한 원본. 폭 640픽셀 이미지를 1280으로 늘리면 디테일은 그대로인데 인코더가 바이트를 써야 할 픽셀만 늘어난다. 큰 이미지의 용량과 작은 이미지의 디테일을 동시에 얻는 셈이다.

다시 인코딩한 JPEG. JPEG으로 내보내고, 열고, 고치고, 또 내보내면 아티팩트가 누적되며, 유튜브는 그것을 다시 인코딩한다. 작업 파일은 무손실로 두고 내보내기는 한 번만 하라.

영상 캡처를 바탕 레이어로 쓰기. 자기 영상에서 뽑은 정지 화면은 이미 비디오 코덱으로 압축된 것이고, 초당 서른 장에 나뉘어 배분된 비트레이트를 받은 결과다. 다시 압축될 것을 위한 출발점으로는 가장 흐릿한 선택이다.

원인 3: 그레인이 바이트 예산을 먹는다

이건 주장하기보다 재보는 게 맞아서 재봤다. 같은 사진의 세 버전 — 깔끔한 것, ±12단계의 그레인을 넣은 것, 40단계에 걸친 부드러운 대각 그라데이션을 넣은 것 — 을 각각 336 × 188 자리에 맞춰 축소하고, 실제 파일이 쓰는 17.6 KB를 맞추도록 인코딩했다.

깔끔한 버전은 품질 0.95에서 그 예산에 도달했다. 그레인 버전은 0.80밖에 감당하지 못했다. 뒤집어 말하면, 품질을 0.80으로 고정했을 때 깔끔한 파일은 9.4 KB, 그레인 버전은 17.5 KB다. 같은 그림에 바이트가 86% 더 든다. 그라데이션은 9.4 KB로 비용이 전혀 없었고, 그게 유용한 의외의 결과다.

그러니 통설은 반만 맞다. 그라데이션과 부드러운 빛은 싸고, 필름 그레인·센서 노이즈·텍스처 오버레이·강한 디더링은 비싸다. 예산이 고정되어 있으면 인코더는 그 값을 당신이 아끼던 부분의 디테일을 버려서 치른다. 크롬의 인코더는 유튜브의 인코더가 아니므로 정확한 수치는 자릿수로만 받아들이면 된다. 방향은 의심할 여지가 없다.

원인 4: 검은 띠가 붙은 변형

정적 파일 두 개는 4:3이다. 유튜브가 4:3이던 시절의 잔재이고, 당신의 이미지를 자르지 않고 여백을 덧댄다. hqdefault.jpg는 480 × 360이며 위아래에 45픽셀의 검정이 있으니 실제 그림은 480 × 270이다. sddefault.jpg는 640 × 480에 60픽셀 띠가 붙어 640 × 360이 된다.

이것이 중요한 이유는 유튜브 밖의 많은 것들이 그 URL을 가져다 쓰기 때문이고, 대체 규칙 때문이다. maxresdefault가 없는 영상 — 더 오래되거나 해상도가 낮은 업로드 — 에서는 og:image가 크기를 조정한 hqdefault로 바뀐다. 2005년 업로드에서 확인했다. 480 × 360, 21 KB, 띠 포함. 링크 미리보기가 띠와 함께 흐릿하게 나온다면 이유가 그것이고, 해결책은 maxres가 생성될 수 있는 업로드를 갖는 것이다.

용량 상한은 품질 예산이 아니다

유튜브의 맞춤 썸네일 한도는 컴퓨터에서 50 MB, 휴대폰에서 2 MB이고, 그중 2 MB는 전체 작업 흐름에서 가장 자주 오독되는 숫자다. 모바일 쪽 값인데도 어디서나 유일한 한도인 것처럼 인용된다. 그것은 보낼 수 있는 양의 천장이지 전달될 양의 지표가 아니다. 위의 파일들은 7 KB에서 318 KB 사이다. 그 여유를 채우는 것은 인코더에게 버릴 재료를 더 주는 일일 뿐이다.

중요한 것은 두 번째 압축 없이 그 천장 아래로 들어가는 것이다. 3 MB로 내보낸 뒤 온라인 압축기로 1.9 MB까지 눌러 만든 파일은, 유튜브가 세 번째로 인코딩하기 전에 이미 두 번 인코딩된 JPEG이다. 크기와 규격 가이드의 크기와 형식으로 한 번만 내보내고, 축소는 플랫폼에 맡기라.

336픽셀에서 실제로 읽히는 것

어느 지점을 지나면 그 크기에서의 선명함은 내보내기 설정이 아니라 구성의 속성이다. 요소를 줄이고 각각을 크게, 그것이 기법의 전부이며 이유는 바이트 예산이다. 작은 것 세 개에 쓴 디테일은 큰 것 하나에 쓰지 못한 디테일이다.

구체적인 세 가지 바닥값은 각자의 가이드에 측정해 두었다. 글자에는 축소를 견디는 최소 높이가 있다 — 텍스트 크기 가이드를 보라. 얼굴은 프레임의 약 3분의 1을, 추천 열에서는 절반이 넘게 채워야 한다 — 얼굴 가이드다. 그리고 인접한 면의 분리는 색조만이 아니라 휘도에서 와야 한다 — 색 가이드다. 세 가지 모두 같은 논지가 다른 방향에서 도착한 것이다.

무엇을 내보낼 것인가

  1. 1280 × 720, 16:9, sRGB유튜브가 maxresdefault로 보관하는 마스터이고, 전달되는 모든 크롭이 그 화면비 위에 세워진다. 1280보다 크게 만들어도 얻는 것이 없고, 1280보다 작으면 maxres 변형과 함께 링크 미리보기 품질까지 잃는다.
  2. 내보내기는 두 번이 아니라 한 번무손실 작업 파일에서 업로드할 파일로 곧바로 가라. 중간에 끼는 JPEG마다 아티팩트가 한 겹 쌓이고, 플랫폼의 인코더는 그것을 정리하는 대신 증폭시킨다.
  3. 압축기 없이 한도 아래로전체 해상도의 고품질 내보내기는 컴퓨터에서 주어지는 50 MB에 한참 못 미친다. 억지로 줄여 맞출 것이 없다는 뜻이다. 그런데도 유독 무겁게 나온다면, 그 디자인에는 형식이 원하는 것보다 노이즈나 텍스처가 많다는 뜻이다. 파일을 두 번째 압축기에 넣는 대신 그것을 줄이라.
  4. 올리기 전에 336픽셀에서 확인마지막 단계만이 앞의 세 단계가 의미가 있었는지 알려준다. 편집기가 아니라 그 자리에서 보라.

1분이면 되는 확인

위의 모든 이야기는 같은 곳으로 모인다. 파일은 전달될 자리에서 판단하라. 이것은 보기의 문제이고, 보기의 문제는 고치기 쉽다. 실제 크기들을 나란히 놓고, 주변에 진짜 경쟁 영상을 두면 된다. 그러면 감상하는 대신 비교하게 된다.

미리보기 도구가 하는 일이 그것이다. 유튜브가 내보내는 가장 작고 가장 강하게 압축된 크기인 추천 열에서 썸네일이 버틴다면, 애초에 내보내기의 선명함은 문제가 아니었다. 버티지 못한다면 어떤 내보내기 설정도 구하지 못한다.

모두가 묻는 질문

업로드한 뒤 유튜브 썸네일이 왜 흐릿한가요?

시청자가 받는 파일이 당신이 보낸 파일이 아니기 때문입니다. 실제 페이지에서 측정하면 추천 항목은 168 × 94 WebP(레티나 화면에서는 336 × 188), 검색 행은 360 × 202로 전달됩니다. 작은 요소가 많은 디자인은 그걸 견디지 못하고, 큰 요소가 적은 디자인은 견딥니다.

유튜브 썸네일의 해상도는 얼마여야 하나요?

1280 × 720, 16:9입니다. 유튜브가 maxresdefault로 저장하는 마스터이자 전달되는 모든 크롭의 원본입니다. 더 크게 올려도 달라지지 않고, 폭 1280보다 작게 올리면 링크 미리보기가 쓰는 maxres 변형을 잃습니다.

파일이 무거우면 썸네일이 더 선명한가요?

아닙니다. 용량 한도는 — 컴퓨터 50 MB, 휴대폰 2 MB — 업로드의 천장이고 전달 예산이 아닙니다. 유튜브가 실제로 제공하는 파일은 7 KB에서 318 KB 사이입니다. 해로운 것은 두 번 압축하는 일입니다. JPEG으로 내보낸 뒤 업로드 전에 압축기를 한 번 더 통과시키는 것이죠.

필름 그레인이나 노이즈가 썸네일 품질을 해치나요?

네, 측정할 수 있을 만큼 해칩니다. 유튜브가 추천 자리에 쓰는 바이트 예산에서 같은 사진의 깔끔한 버전은 품질 0.95로 인코딩되지만, ±12단계 그레인을 넣은 버전은 0.80밖에 감당하지 못합니다. 반면 부드러운 그라데이션은 비용이 거의 없습니다.

링크 미리보기에서 썸네일에 왜 검은 띠가 있나요?

그 표면이 hqdefault.jpg로 대체되었기 때문입니다. 480 × 360에 45픽셀 띠가 붙어 있고, 안의 실제 그림은 480 × 270입니다. 영상에 maxresdefault가 없을 때, 즉 업로드가 폭 1280픽셀 미만이었을 때 일어납니다.

미리보기 도구에서 내 썸네일 테스트하기 →