내 동영상 파일은 왜 이렇게 클까요?
동영상 용량은 네 가지 요소가 좌우합니다. 그중 바꿀 만한 것은 일부뿐이고, 대부분의 사람이 가장 먼저 손대는 것은 대개 잘못된 선택입니다.
게시
용량은 비트레이트 곱하기 길이입니다. 공식은 이게 전부입니다.
동영상 용량은 비트레이트(1초당 사용하는 비트 수)에 길이를 곱한 값입니다. 해상도를 포함한 나머지 요소는 비트레이트에 영향을 주기 때문에 의미가 있을 뿐입니다. 10 Mbps로 10분짜리 영상을 만들면 대략 750 MB이며, 다른 설정을 아무리 바꿔도 이 계산을 피할 수는 없습니다.
해상도보다 코덱이 더 중요합니다
코덱은 압축 방식입니다. H.264는 거의 모든 곳에서 기본으로 쓰입니다. VP8은 WebM에서 쓰는 로열티 없는 방식입니다. VP9은 Google이 로열티 없이 공개했지만, 지금은 제3자 특허 풀이 권리를 주장하고 있습니다. 새로운 코덱일수록 효율이 크게 좋아서, 오래된 형식에서 10 Mbps가 드는 화질을 H.264에서는 4 Mbps로 얻을 수도 있습니다.
그래서 4K 영상을 1080p로 낮춰도 기대에 못 미치는 경우가 많습니다. 픽셀 수는 4분의 3이 줄지만 파일은 겨우 절반 정도만 줄어듭니다. 인코더가 이미 없어진 세부 정보에 비트를 적게 쓰고 있었기 때문입니다. 더 나은 코덱으로 다시 인코딩하거나 비트레이트 목표를 낮추는 쪽이 대개 효과가 큽니다.
휴대폰 동영상이 거대한 이유
휴대폰은 일부러 높은 비트레이트로 녹화합니다. 카메라는 생각할 시간이 없고 프레임을 실시간으로 기록하며 영상 전체를 분석할 기회도 없기 때문에, 화질을 보장하려고 넉넉하게 잡습니다. 4K 휴대폰 영상은 1분만 찍어도 400 MB를 쉽게 넘을 수 있습니다.
같은 영상을 인코더가 시간을 들일 수 있는 오프라인 환경에서 다시 인코딩하면, 눈에 띄는 차이 없이 절반 이하로 줄어드는 일이 흔합니다. 가장 큰 절감 방법이며, 들어가는 것은 처리 시간뿐입니다.
CRF의 의미와 비트레이트를 직접 정하는 것보다 나은 이유
대부분의 인코더는 화질을 정하는 방법을 두 가지 제공합니다. 비트레이트를 지정하거나, 품질 목표를 지정하고 각 장면에 필요한 만큼 인코더가 알아서 비트를 쓰게 하는 방법입니다. 거의 항상 두 번째가 낫습니다. 벽을 찍은 고정 장면에는 비트가 아주 조금만 필요하고 색종이가 터지는 장면에는 많이 필요한데, 고정 비트레이트는 앞의 장면에서는 낭비하고 뒤의 장면에서는 모자라게 만들기 때문입니다.
H.264에서 이 목표값이 CRF이며, 대략 18에서 28 사이이고 값이 낮을수록 화질이 좋고 용량이 큽니다. 이 사이트는 MP4로 변환할 때 CRF 23을 사용합니다. 일반적인 균형 잡힌 기본값이며, 대부분의 영상에서 원본과 시각적으로 매우 가깝습니다.
문제는 오디오가 아닙니다
많은 사람이 오디오를 손봐서 동영상을 줄이려 합니다. 일반적인 스테레오 트랙은 128~192 kbps인데, 영상은 수천 kbps입니다. 500 MB 동영상에서 오디오를 완전히 없애도 줄어드는 것은 10 MB 정도이고, 영상은 쓸모없어집니다. 오디오는 그대로 두세요.
GIF가 맞지 않는 경우
동영상을 GIF로 변환하면 파일이 줄지 않고 오히려 훨씬 커집니다. GIF는 프레임 사이의 압축이 사실상 없고 프레임을 거의 독립적으로 저장하며, 색상도 256색으로 제한됩니다. MP4로 400 KB인 3초짜리 클립이 GIF에서는 4 MB가 될 수 있습니다. GIF는 동영상이 허용되지 않는 곳에서 자동 재생이 필요할 때 쓰는 것이며, 용량을 줄이려는 용도로는 쓰지 마세요.
실제로 클립을 줄이려면 동영상을 압축하거나 해상도를 낮추세요. 짧은 반복 영상만 필요하다면 GIF로 만들어 용량을 비교해 보세요.