코덱과 포맷

영상 코덱과 포맷, 무엇을 언제 써야 하나

영상을 다루다 보면 코덱이니 포맷이니 하는 말이 끝없이 나옵니다. H.264, H.265, AV1 같은 이름이 있는가 하면 MP4, MKV, WebM 같은 것도 있어서, 둘이 어떻게 다른지부터 헷갈리기 시작합니다. 이 둘을 구분하고 각각이 어떤 상황에 맞는지를 알아 두면, 변환할 때 무엇을 골라야 할지가 한결 분명해집니다.

코덱과 컨테이너, 다시 한 번

코덱은 영상과 소리를 압축하고 푸는 방식이고, 컨테이너는 그렇게 압축된 것들을 한 파일에 담는 상자입니다. 비유하자면 코덱은 짐을 어떤 방식으로 압축해 넣느냐이고, 컨테이너는 그 짐을 어떤 상자에 담느냐입니다. 파일 이름 끝의 확장자는 대개 상자, 즉 컨테이너를 가리킬 뿐, 안에 어떤 코덱으로 압축된 영상이 들었는지까지 알려 주지는 않습니다.

그래서 같은 확장자라도 안에 든 코덱이 다르면 어떤 기기에서는 열리고 어떤 기기에서는 열리지 않습니다. 영상이 재생되지 않을 때 많은 사람이 컨테이너를 바꾸려 하지만, 실제 원인은 기기가 그 코덱을 풀지 못하는 경우가 많습니다. 문제를 정확히 풀려면 확장자만 볼 것이 아니라 안에 어떤 코덱이 들어 있는지를 확인하는 습관이 필요합니다.

영상 코덱: 무엇이 다른가

가장 널리 쓰이는 영상 코덱은 H.264입니다. 오래된 만큼 거의 모든 기기에서 재생되어 호환성이 뛰어나고, 변환 도구도 대부분 지원합니다. 호환성을 가장 중시한다면 여전히 무난한 선택입니다. 다만 같은 화질을 담는 데 용량을 더 쓴다는 단점이 있습니다.

H.265는 H.264보다 같은 화질을 더 작은 용량으로 담습니다. 고화질 영상이나 긴 영상을 보관할 때 용량을 절반 가까이 줄일 수 있어 유리하지만, 그만큼 재생되는 기기가 제한되고 변환에 시간이 더 걸립니다. AV1은 효율이 더 뛰어난 비교적 새로운 코덱으로, 주로 인터넷 스트리밍에서 자리를 넓혀 가고 있습니다. 다만 변환에 드는 시간이 길고 아직 지원하지 않는 환경이 있어, 일반적인 보관용으로는 무거울 수 있습니다.

영상 코덱 비교

H.264호환성 최고, 용량은 다소 큼
H.265용량 절약, 기기 제한과 변환 시간
AV1효율 우수, 변환 무겁고 지원 제한

정리하면 호환성을 원하면 H.264, 용량을 아끼고 싶고 재생 환경이 받쳐 주면 H.265, 인터넷 전송에 무게를 둔다면 AV1 쪽으로 기울게 됩니다. 어느 하나가 절대적으로 좋은 것이 아니라, 그 영상을 어디서 어떻게 쓸지에 따라 답이 달라집니다.

컨테이너: 무엇을 담는가

컨테이너는 영상과 소리, 자막을 어떻게 묶을지를 정합니다. MP4는 가장 널리 쓰이며 호환성이 넓어 어디에 올리든 무난합니다. 다만 자막이나 여러 음성 트랙을 다루는 데에는 다소 제한이 있습니다. MKV는 자막과 여러 음성을 자유롭게 담을 수 있어 영화 파일에 자주 쓰이지만, 일부 기기나 서비스에서는 바로 재생되지 않기도 합니다.

WebM은 웹에서 가볍게 재생되도록 만들어진 컨테이너로, 인터넷 환경에 잘 맞습니다. MOV는 애플 기기에서 촬영하거나 편집한 영상에 흔하게 보입니다. 어떤 컨테이너를 고를지는 결국 그 영상을 어디서 재생하고 무엇을 함께 담아야 하는지에 달려 있습니다. 널리 공유할 영상이면 MP4가, 자막과 음성을 보존해야 하면 MKV가 자연스러운 선택이 됩니다.

소리도 빼놓을 수 없다

영상에 묻혀 잊기 쉽지만 오디오 코덱도 결과에 영향을 줍니다. AAC는 호환성이 넓어 대부분의 상황에서 무난하게 쓰이고, 더 효율적인 코덱은 같은 음질을 더 작은 용량으로 담지만 지원 범위가 좁을 수 있습니다. 영상 코덱과 마찬가지로, 어디서 재생할지를 먼저 정하면 오디오 코덱 선택도 어렵지 않습니다.

변환할 때 영상만 신경 쓰다가 소리가 빠지거나 어긋나는 경우가 있습니다. 특히 여러 음성 트랙이 든 파일을 다룰 때는 어떤 음성을 남길지 확인해야 합니다. 결과를 내보내기 전에 소리가 제대로 들어갔는지 짧게라도 확인하는 습관이 헛수고를 막아 줍니다.

상황별로 정리하면

휴대폰이나 일반적인 기기에서 두루 재생할 영상이라면 H.264 코덱에 MP4 컨테이너 조합이 가장 무난합니다. 고화질 영상을 용량을 아껴 보관하려는 경우, 그리고 재생할 기기가 새로운 코덱을 받쳐 준다면 H.265를 고려할 만합니다. 자막과 여러 음성을 함께 보존해야 하는 영화 파일이라면 MKV 컨테이너가 어울립니다.

중요한 것은 코덱과 컨테이너를 따로 떼어 생각하지 않는 것입니다. 둘은 함께 작동하며, 어느 한쪽만 잘 골라서는 원하는 결과를 얻기 어렵습니다. 그 영상을 누가 어디서 볼지를 머릿속에 그려 두면, 복잡해 보이던 선택이 자연스럽게 정리됩니다.

비트레이트가 화질을 정한다

같은 코덱과 같은 해상도라도 비트레이트를 어떻게 잡느냐에 따라 화질이 크게 달라집니다. 비트레이트는 일정 시간 동안 영상에 담기는 정보의 양인데, 이 값이 높을수록 화면이 또렷하지만 용량도 함께 커집니다. 반대로 너무 낮게 잡으면 움직임이 빠른 장면에서 화면이 뭉개지고 네모난 얼룩이 보이기도 합니다.

그래서 비트레이트는 영상의 성격에 맞춰 정하는 것이 좋습니다. 움직임이 많은 영상은 더 높은 비트레이트가 필요하고, 정적인 화면 위주라면 낮춰도 차이가 잘 드러나지 않습니다. 일부 도구는 목표 용량을 정하면 비트레이트를 알아서 맞춰 주기도 하는데, 이때도 결과를 확인해 화질이 견딜 만한지 보는 것이 좋습니다. 수치보다 실제 화면이 기준이며, 눈으로 직접 보고 정하는 습관이 언제나 가장 믿을 만합니다.

해상도와 프레임 수

해상도는 화면을 이루는 점의 개수로 높을수록 세밀하지만 용량이 커집니다. 주의할 점은 원본보다 높은 해상도로 변환한다고 화질이 좋아지지는 않는다는 것입니다. 없는 정보를 만들어 낼 수는 없으므로 낮은 해상도 원본을 키우면 화면만 커지고 흐릿함은 그대로입니다. 재생할 화면 크기에 맞는 해상도를 고르는 것이 합리적이며, 화면보다 큰 해상도는 용량만 키울 뿐입니다.

초당 프레임 수는 영상이 얼마나 부드럽게 움직이는지를 좌우합니다. 원본의 프레임 수를 굳이 높일 필요는 없으며, 오히려 원본에 없던 부드러움을 억지로 만들면 어색해질 수 있습니다. 일반적인 영상이라면 원본의 프레임 수를 그대로 유지하는 편이 무난하고, 용량을 줄여야 할 때 신중하게 낮추는 정도면 충분합니다.

오래된 포맷을 만났을 때

가끔 아주 오래된 형식의 영상을 마주칠 때가 있습니다. 요즘 재생기에서 열리지 않거나 소리만 나오고 화면이 안 보이는 경우인데, 대개 그 형식의 코덱을 지금 환경이 더 이상 다루지 못해 생기는 일입니다. 이럴 때는 널리 쓰이는 형식으로 한 번 변환해 두면 앞으로의 재생이 수월해집니다.

다만 오래된 영상은 원본 화질 자체가 낮은 경우가 많아 변환한다고 선명해지지는 않습니다. 변환의 목적은 화질 개선이 아니라 지금 환경에서 열리게 만드는 것이라는 점을 기억하면 결과에 실망하지 않습니다. 보관이 목적이라면 원본도 함께 남겨 두는 편이 좋고, 한 번 변환해 둔 파일은 다음에 또 열 때 편합니다.

변환 없이 끝나는 경우

모든 문제가 변환으로 풀리는 것은 아니며, 변환이 필요 없는 경우도 많습니다. 재생이 안 되는 이유가 재생기 쪽에 있다면, 그 형식을 지원하는 다른 재생기를 쓰는 것만으로 해결되기도 합니다. 굳이 영상을 다시 압축하지 않아도 되니 화질 손실도 없고 시간도 들지 않습니다.

확장자만 바꾸면 되는 상황이라면, 다시 압축하지 않고 내용을 그대로 옮기는 방식을 지원하는 도구를 쓰는 것이 좋습니다. 이 방식은 코덱을 건드리지 않고 컨테이너만 바꾸므로 화질이 그대로 유지되고 처리도 빠릅니다. 변환을 시작하기 전에 정말 다시 압축이 필요한 상황인지부터 따져 보면 불필요한 손실을 피할 수 있습니다. 가장 좋은 변환은 하지 않아도 되는 변환일 때가 많습니다.

정리

코덱은 압축 방식, 컨테이너는 담는 상자라는 구분만 잡으면 절반은 해결됩니다. 나머지 절반은 그 영상을 어디서 재생할지를 먼저 정하는 데서 풀립니다. 호환성과 효율 사이에서 무엇을 우선할지에 따라 답이 달라진다는 점만 기억하면 됩니다. 그 영상을 누가 어디서 볼지를 먼저 떠올리면 길이 보입니다. 그러면 복잡해 보이던 코덱과 포맷의 선택도 한결 더욱 단순해집니다.

영상 압축이 어떻게 동작하는지 알아보기

같은 영상을 두고 어떤 파일은 용량이 크고 어떤 파일은 작은데 화질은 비슷한 경우가 있습니다. 이 차이는 영상을 얼마나 효율적으로 압축했는지에서 나옵니다. 영상은 그대로 두면 용량이 어마어마하게 커지기 때문에 거의 모든 영상이 어떤 방식으로든 압축되어 있는데, 그 압축이 어떻게 이루어지는지를 알아두면 변환할 때 결과를 가늠하기가 한결 쉬워집니다.

영상이 왜 압축이 필요한가

코드와 데이터영상은 본질적으로 정지된 그림이 빠르게 이어지는 것입니다. 1초에 30장의 그림이 지나간다면 1분에 1800장이 됩니다. 한 장의 그림도 용량이 적지 않은데 이것이 1초에 수십 장씩 쌓이니 압축 없이는 도저히 다룰 수 있는 크기가 아닙니다. 그래서 영상 파일은 거의 예외 없이 압축된 상태로 저장됩니다.

압축은 원본을 그대로 두는 것이 아니라 일부 정보를 줄여 용량을 작게 만드는 일입니다. 사람 눈에 잘 띄지 않는 부분의 정보를 솎아내고 비슷한 장면이 이어질 때 변하는 부분만 기록하는 식으로 용량을 줄입니다. 어떤 정보를 어떻게 줄이는지에 따라 같은 영상도 결과가 크게 달라집니다.

손실 압축과 무손실 압축

압축에는 크게 두 가지 방식이 있습니다. 손실 압축은 원본의 일부 정보를 버리고 그만큼 용량을 크게 줄이는 방식입니다. 한 번 버린 정보는 되돌릴 수 없지만 사람 눈으로는 차이를 느끼기 어려운 정보만 골라 버리기 때문에 용량 대비 화질이 합리적으로 유지됩니다. 대부분의 영상 파일이 이 방식을 씁니다.

무손실 압축은 원본의 모든 정보를 그대로 유지하면서 표현 방식만 효율적으로 바꾸는 방식입니다. 화질이 전혀 손상되지 않지만 용량이 크게 줄지는 않습니다. 사진 편집이나 영상 후반 작업에서 여러 번 변환을 거쳐야 할 때 손실이 누적되지 않도록 무손실 방식을 쓰기도 하지만, 일반 보관과 재생용으로는 손실 압축이 현실적입니다.

두 가지 압축 방식

손실 압축일부 정보를 버려 용량을 크게 줄임
무손실 압축정보 유지, 용량 절감은 제한적
일반적 선택대부분 손실 압축으로 충분
편집 작업손실 누적 막기 위해 무손실 고려

같은 화면을 다시 그리지 않는다

영상 압축의 핵심 아이디어는 한 가지로 정리됩니다. 옆에 있는 장면이 비슷할 때 그것을 다시 통째로 기록하지 않는다는 것입니다. 카메라가 멈춰 있고 배경이 그대로라면 두 번째 장면은 첫 번째 장면과 거의 같습니다. 이때 두 번째 장면 전체를 다시 기록하는 대신 달라진 부분만 짧게 적어 두면 용량이 크게 줄어듭니다.

그래서 움직임이 적은 영상은 압축이 잘 되고, 움직임이 많거나 장면이 자주 바뀌는 영상은 압축이 잘 되지 않습니다. 같은 길이의 영상이라도 정적인 강연 영상은 작게 압축되지만 액션이 많은 스포츠 영상은 용량이 훨씬 커지는 이유가 여기에 있습니다. 영상의 성격이 용량을 결정합니다.

키 프레임이라는 기준점

달라진 부분만 기록하는 방식에는 한 가지 약점이 있습니다. 영상을 중간부터 재생하려 할 때 그 시점의 화면을 그리려면 처음부터 모든 변화를 따라가야 합니다. 이 문제를 풀기 위해 영상에는 일정 간격으로 전체 화면을 통째로 기록한 기준점을 둡니다. 이것이 키 프레임이라 불리는 장면입니다.

키 프레임은 영상을 빨리감기나 되감기 할 때 기준점이 됩니다. 키 프레임 사이의 간격이 좁으면 어디서나 빠르게 시작할 수 있지만 용량이 늘어나고, 간격이 넓으면 용량은 줄지만 영상 탐색이 답답해집니다. 변환 도구에서 키 프레임 간격을 조절할 수 있는 경우가 있는데, 일반적인 보관용이라면 기본값으로 두는 편이 무난합니다.

비트레이트가 결정하는 것

같은 압축 방식이라도 비트레이트를 어떻게 잡느냐에 따라 결과가 달라집니다. 비트레이트는 1초의 영상에 담기는 정보의 양인데, 이 값을 크게 잡으면 더 많은 정보를 담을 수 있어 화질이 좋아지고, 작게 잡으면 정보가 부족해 화질이 떨어집니다. 압축은 정보를 줄이는 일이고 비트레이트는 줄여진 결과의 크기를 정하는 셈입니다.

비트레이트가 너무 낮으면 움직임이 많은 장면에서 네모난 얼룩이 보이거나 화면이 뭉개집니다. 압축이 정보를 너무 많이 버린 결과입니다. 반대로 비트레이트를 무작정 높여도 어느 지점을 넘으면 화질이 더 좋아지지 않습니다. 영상의 성격에 맞는 적정 비트레이트를 찾는 것이 중요한데, 이는 결국 결과를 보면서 정하는 일입니다.

한 번에 정하느냐 변동하느냐

비트레이트를 정하는 방식도 두 가지가 있습니다. 영상 전체에 같은 값을 적용하는 방식과, 장면에 따라 비트레이트를 변동시키는 방식입니다. 고정 방식은 결과 용량을 예측하기 쉽지만 단순한 장면에 과한 정보를 쓰고 복잡한 장면에는 부족한 비효율이 생깁니다.

변동 방식은 정적인 장면에서 비트레이트를 낮추고 복잡한 장면에서 높이는 식으로 같은 용량을 더 효율적으로 씁니다. 결과적으로 비슷한 용량에서 더 나은 화질을 얻을 수 있어 보관용으로는 변동 방식이 합리적입니다. 다만 결과 용량이 정확히 예측되지 않아 정해진 크기 안에 맞춰야 하는 상황에서는 고정 방식이 다루기 편합니다.

두 번 압축하면 손해가 쌓인다

손실 압축된 영상을 다시 손실 압축하면 손실이 누적됩니다. 한 번 버린 정보는 돌아오지 않으므로 변환을 거듭할수록 화질이 떨어집니다. 처음에는 잘 보이지 않던 차이가 두세 번 변환을 거치면 눈에 띄게 나빠지는 경우가 흔합니다. 같은 영상을 여러 형식으로 만들어야 한다면 원본을 두고 거기서 각각 변환하는 편이 손실을 줄입니다.

원본이 이미 강하게 압축된 영상이라면 그것을 다시 압축할 때 손실이 더 빨리 누적됩니다. 인터넷에서 받은 영상을 다시 변환할 때 처음 받은 그 상태가 이미 여러 번 압축된 결과일 수 있다는 점을 염두에 둬야 합니다. 변환이 늘 화질 개선이 아니라는 사실, 오히려 줄어드는 일에 가깝다는 사실을 잊지 않는 것이 좋습니다.

해상도와 압축의 관계

해상도가 높을수록 한 장면에 담아야 할 정보가 많아 같은 화질을 유지하려면 비트레이트도 함께 높여야 합니다. 그런데 같은 비트레이트를 두고 해상도를 무작정 높이면 한 점에 할당되는 정보가 줄어들어 오히려 화질이 나빠집니다. 해상도와 비트레이트는 함께 움직여야 합니다.

그래서 화면 크기에 맞는 해상도를 고르는 것이 효율적입니다. 휴대폰에서 볼 영상에 큰 화면용 해상도를 쓰면 보이지도 않는 정보에 용량을 낭비하는 셈이고, 큰 화면에서 볼 영상에 낮은 해상도를 쓰면 부족한 정보로 화면을 채우게 되어 흐릿해집니다. 어디서 볼지를 먼저 정하면 해상도와 비트레이트의 균형이 자연스럽게 잡힙니다.

왜 같은 설정인데 결과가 다를까

같은 코덱과 같은 비트레이트로 변환했는데 도구에 따라 결과가 다른 경우가 있습니다. 압축은 단순한 규칙이 아니라 어떤 정보를 어떻게 버릴지에 대한 수많은 작은 판단이 누적되는 과정이라, 그 판단을 어떻게 하느냐에 따라 결과가 갈립니다. 같은 규격을 따른다고 해서 모든 도구가 같은 결과를 내지는 않습니다.

이는 어느 도구가 더 좋다는 단순한 비교로 끝나지 않습니다. 빠르게 변환하는 데 강한 도구가 있고, 느리지만 화질을 잘 뽑는 도구가 있습니다. 자주 쓰는 도구의 결과에 익숙해지면서 자기 용도에 맞는 것을 찾는 과정이 필요합니다. 처음 변환한 결과를 직접 보고 비교하는 시간이 이후의 작업을 한결 매끄럽게 만듭니다. 도구마다 성격이 다르다는 사실을 인정하고 골라 쓰는 안목이 결국 가장 큰 자산입니다.

압축이 무너질 때

영상을 보다가 화면이 잠깐 뭉개지거나 네모난 얼룩이 생기는 경험이 있습니다. 압축이 그 장면에서 정보를 너무 많이 버려 생긴 일입니다. 인터넷으로 영상을 보는 중에 통신이 불안정해 한순간 적은 정보로 화면을 그려야 했을 때 이런 현상이 나타납니다. 일시적인 문제라면 통신이 안정되면서 풀립니다.

그런데 보관된 영상에서 이런 얼룩이 자주 보인다면 그 영상이 너무 강하게 압축되어 있다는 신호입니다. 비트레이트를 더 높여 다시 변환하면 풀리기도 하지만 원본 자체가 부족한 정보로 만들어진 것이라면 더 높여도 한계가 있습니다. 결국 영상의 화질은 원본의 화질을 넘지 못합니다. 좋은 결과를 원한다면 좋은 원본에서 출발하는 것이 가장 빠른 길입니다.

정리영상 압축은 정보를 줄여 용량을 다루기 위한 기술이며, 무엇을 줄이고 무엇을 남길지가 결과를 결정합니다. 손실 방식과 비트레이트, 키 프레임 같은 개념을 알아두면 변환 결과를 가늠하기 쉬워집니다. 두 번 변환하면 손실이 쌓이고 원본을 넘는 결과는 만들 수 없다는 점이 기본 원칙입니다.

위로 스크롤