Blender3D 기초

영상 코덱과 컨테이너: H.264·H.265·MP4 쉽게 이해하기

MP4는 상자, H.264는 짐 싸는 방법입니다. 코덱과 컨테이너의 차이, 영상이 안 열리는 이유, 업로드용 설정을 공식 자료로 설명합니다.

AZTechnology17분 읽기

한국어English

Output 탭 Encoding 패널에서 Video Codec 목록을 연 화면: AV1, H.264, H.265 / HEVC, WebM / VP9 같은 코덱이 보인다 (Blender 화면 캡처)

기준: Blender 5.2 LTS 공식 매뉴얼과 ITU-T·AOMedia·Apple·Microsoft·FFmpeg·YouTube 공식 문서. 2026년 9월에 확인했습니다. 메뉴 이름은 영어 화면 기준입니다. 스토어의 유료 표시와 권장 설정은 바뀔 수 있습니다.

영상 파일은 상자와 짐 싸는 방법 두 가지로 이루어져 있습니다. MP4, MKV 같은 이름은 상자(컨테이너)이고, H.264, H.265, AV1 같은 이름은 영상을 작게 싸는 방법(코덱)입니다. 그래서 같은 .mp4 파일이라도 어떤 컴퓨터에서는 잘 열리고 어떤 컴퓨터에서는 안 열릴 수 있습니다. 3D 렌더링 결과나 AI로 만든 영상을 내보낼 때도 같은 원리가 그대로 적용됩니다. 이 글에서는 코덱과 컨테이너의 차이, 영상을 압축하는 기본 원리, 대표 코덱과 컨테이너, 영상이 안 열릴 때 확인할 것, 업로드용 기본 설정, 3D 렌더링 결과를 영상으로 만드는 순서를 설명합니다.

한눈에 보기

궁금한 것짧은 답
코덱영상을 작게 줄이고(인코딩) 다시 푸는(디코딩) 방법
컨테이너영상, 소리, 자막 등을 한 파일로 담는 상자 (MP4, MKV, MOV 등)
.mp4 파일끼리의 차이확장자가 같아도 상자 안에 든 코덱이 다를 수 있음
안 열리는 영상재생하는 쪽에 그 코덱을 풀 수 있는 기능이 있는지 확인
무난한 선택MP4 + H.264 + AAC (YouTube 권장 설정 기준)

비유: 이삿짐 싸기

이 글은 이삿짐 싸기 하나로 설명합니다.

  • 코덱은 짐 싸는 방법입니다. 두꺼운 이불도 정해진 순서로 개어 꾹꾹 눌러 끈으로 묶으면 부피가 확 줄어듭니다. 영상도 그대로 두면 너무 커서, 정해진 방법으로 눌러 작게 만듭니다. 이것이 인코딩이고, 받는 쪽에서 다시 원래 모양으로 펴는 것이 디코딩입니다.
  • 컨테이너는 이삿짐 상자입니다. 압축한 영상 팩, 소리 팩, 자막 팩을 한 상자에 함께 담습니다. 상자 겉에는 무엇이 어디에 들었는지 적은 목록표가 붙어 있습니다.
  • 재생 프로그램은 짐을 푸는 사람입니다. 짐을 싼 방법을 알아야 풀 수 있습니다. 상자를 열었는데 처음 보는 방식으로 싸여 있으면 풀지 못합니다.

실제 영상 파일도 같은 구조입니다. 영상 파일은 보통 컨테이너(영상, 소리, 부가 정보를 한 파일로 감싸는 것), 비디오 코덱(영상을 압축), 오디오 코덱(소리를 압축, 없어도 됨)으로 이루어집니다. 컨테이너는 압축된 내용을 담기만 하고, 어떻게 압축할지는 정하지 않습니다.

영상을 꼭 압축해야 하는 이유

압축하지 않은 영상이 얼마나 큰지 간단히 계산해 보겠습니다. 가로 1920, 세로 1080 화면에서 점 하나(픽셀)의 색을 3바이트로 저장하고, 1초에 30장을 보여 준다고 하면 다음과 같습니다.

  • 1920 × 1080 × 3 × 30 = 186,624,000바이트 → 1초에 약 187MB
  • 1분이면 약 11GB

휴대폰으로 찍은 1분짜리 영상이 이만큼 크지 않은 것은 코덱이 압축해 주기 때문입니다. 이삿짐으로 치면 이불을 펼친 채로 트럭에 싣지 않고, 개어 눌러 묶어서 여러 채를 한 트럭에 싣는 것과 같습니다.

코덱이 크기를 줄이는 두 가지 요령

1. 눈에 덜 띄는 것 버리기 (손실 압축)

코덱은 두 종류로 나뉩니다.

종류하는 일결과
손실 코덱데이터 일부를 버려 크기를 줄임파일이 작은 대신 화질이나 음질이 조금 떨어짐
무손실 코덱원래 데이터를 모두 지키면서 압축화질은 그대로지만 파일이 큼

흔히 보는 H.264, H.265, AV1 영상은 대부분 손실 압축으로 쓰입니다. 이삿짐으로 치면 꼭 필요하지 않은 포장재를 버리고 싸는 것입니다. 너무 많이 버리면 받는 쪽에서 물건이 구겨져 보이는데, 영상에서는 화면이 뭉개지거나 네모난 얼룩이 보이는 현상이 이것입니다.

2. 바뀐 부분만 적기 (프레임 사이 압축)

영상의 이웃한 프레임(영상을 이루는 한 장 한 장의 그림)은 대부분 비슷합니다. 공원에서 공이 튀는 장면이라면 나무와 벤치는 그대로이고 공만 움직입니다. 그래서 코덱은 가끔 한 장을 통째로 저장하고, 그 사이 프레임들은 바뀐 부분만 적어 둡니다.

통째로 저장하는 프레임을 키프레임이라고 합니다. 애니메이션에서 값을 찍어 두는 키프레임과는 다른 뜻입니다. 키프레임부터 다음 키프레임 전까지의 묶음은 GOP(Group of Pictures)라고 부릅니다. 키프레임 간격을 크게 하면 대체로 파일이 작아지지만 재생하는 기기가 더 힘들어집니다. 반대로 간격을 0으로 두면 모든 프레임을 통째로 저장해(intra only) 프레임 사이 압축을 아예 쓰지 않습니다. 앞뒤 프레임을 모두 참고하는 B 프레임이라는 방식도 있어서, YouTube 권장 설정에도 B 프레임과 GOP 길이에 관한 항목이 들어 있습니다.

이삿짐으로 치면, 똑같은 그릇 열 개를 쌀 때 하나만 자세히 적고 나머지는 "위와 같음, 손잡이만 다름"이라고 적는 것과 비슷합니다.

대표 코덱 세 가지: H.264, H.265, AV1

코덱정식 이름·만든 곳특징
H.264 (AVC)ITU-T 권고 "Advanced video coding for generic audiovisual services"YouTube 권장 업로드 코덱. iPhone "호환성 우선" 설정의 영상 형식
H.265 (HEVC)ITU-T 권고 "High efficiency video coding"Apple은 H.264보다 압축이 좋아 저장 공간을 덜 쓴다고 설명. 기기마다 재생 지원이 다름
AV1AOMedia(2015년 설립)가 2018년 공개웹 영상을 위해 처음부터 설계, 로열티 없는 특허 정책 아래 공개된 열린 코덱

새 코덱일수록 짐을 더 촘촘하게 싸는 만큼 싸고 푸는 데 힘이 더 들고, 오래된 기기는 새 포장법을 모를 수 있습니다. 또 Blender 매뉴얼은 코덱을 쓰임새로 나눕니다. H.264, AV1 같은 코덱은 배포·스트리밍용이고, ProRes, DNxHD 같은 코덱은 파일이 크지만 다루기 쉬운 편집·중간 작업용입니다.

대표 컨테이너: MP4, MKV, MOV, WebM

컨테이너(확장자)특징
MPEG-4 (.mp4)여러 코덱으로 압축한 영상과 소리를 담을 수 있고, 요즘 소프트웨어와 기기에서 널리 지원됨
Matroska (.mkv)무료로 공개된 표준. 영상·소리·자막 트랙을 여러 개 담을 수 있음
WebM (.webm)웹 스트리밍용. VP9·AV1 영상과 Vorbis·Opus 소리를 담음
QuickTime (.mov)여러 트랙을 담는 컨테이너. MP4와 같은 코덱을 많이 공유하지만, 지원 범위는 MP4가 더 넓음

확장자만 보고는 안에 든 코덱을 알 수 없습니다. .mp4 상자에는 H.264가 들 수도, H.265나 AV1이 들 수도 있습니다. 반대로 모든 코덱이 모든 컨테이너에 들어가지는 않습니다. 상자마다 담을 수 있는 짐의 종류가 정해져 있다는 뜻입니다.

영상이 안 열릴 때: 짐 푸는 사람 확인하기

코덱은 만드는 쪽과 재생하는 쪽 모두에 있어야 합니다. 짐 싸는 법을 아는 사람이 있어야 짐을 풀 수 있는 것과 같습니다.

먼저 확인할 것: 상자 안의 포장법 (ffprobe)

확장자만으로는 코덱을 알 수 없으니, 먼저 확인부터 합니다. FFmpeg는 영상을 변환하는 무료 명령어 도구이고, 여기에 함께 들어 있는 ffprobe는 파일 안의 정보를 읽어 보여 주는 공식 도구입니다. FFmpeg가 컴퓨터에 설치되어 있어야 쓸 수 있고, FFmpeg 공식 사이트의 Download 페이지에서 운영체제에 맞는 것을 받습니다. 명령 창이 처음이라면 GUI와 CLI, 무엇이 다를까를 먼저 읽어 보세요. 명령 창(터미널)에서 다음 한 줄을 입력합니다.

ffprobe -v error -show_entries stream=codec_name,codec_type -of compact 내영상.mp4
  • -v error: 오류가 아니면 긴 안내 문구를 숨깁니다.
  • -show_entries stream=codec_name,codec_type: 파일 속 각 흐름(스트림)의 코덱 이름과 종류(영상/소리)만 보여 줍니다.
  • -of compact: 한 흐름을 한 줄로 짧게 출력합니다.

H.264 영상과 AAC 소리가 든 MP4라면 결과는 이렇게 나옵니다.

stream|codec_name=h264|codec_type=video
stream|codec_name=aac|codec_type=audio

읽는 법은 간단합니다. codec_type=video 줄의 codec_name이 영상 포장법, codec_type=audio 줄이 소리 포장법입니다. 영상 쪽이 h264면 H.264, hevc면 H.265, av1이면 AV1입니다. 소리 쪽은 aac, opus 등이 흔합니다. 영상이 hevc인데 재생이 안 된다면, 재생하는 쪽에 H.265 디코더가 없을 가능성이 큽니다.

자주 만나는 상황

  • iPhone 영상이 Windows에서 안 열릴 때: iPhone은 설정 ‣ 카메라 ‣ 포맷에서 고효율(HEIF/HEVC)과 호환성 우선(JPEG/H.264) 중 하나를 고릅니다. 고효율은 저장 공간을 덜 쓰지만, 받는 기기가 지원하지 않으면 문제가 될 수 있습니다. AirDrop, 메시지, 메일로 보낼 때 받는 기기가 새 형식을 지원하지 않으면 H.264 같은 호환 형식으로 자동 변환될 수 있습니다. 호환성 우선으로 바꾸면 그 뒤로 새로 찍는 사진·영상부터 JPEG·H.264로 저장됩니다. 이미 찍어 둔 영상은 바뀌지 않습니다.
  • Windows 사진 앱의 "확장이 필요합니다" 메시지: HEIF·HEVC 파일을 열 때 이런 메시지가 뜰 수 있습니다. Microsoft 지원 문서(적용 대상: Windows 10)에 해결법이 있습니다. 첫째는 Microsoft Store에서 HEIF 이미지 확장과 HEVC 비디오 확장을 설치하는 것인데, HEVC 확장은 유료로 표시되어 있습니다. 둘째는 무료 방법입니다. 많은 기기가 파일을 옮기거나 메일로 보낼 때 더 흔한 형식으로 자동 변환하므로, 휴대폰을 PC에 연결해 파일을 옮기거나 휴대폰에서 자신에게 메일로 보내 PC에 저장해 보세요. Windows 11이라면 메뉴 이름이 다를 수 있으니 원문과 스토어 화면을 함께 확인하세요.
  • 재생이 버벅이거나 열리지 않을 때: 받는 사람의 기기 사양이 낮다면 편집 프로그램이나 FFmpeg에서 코덱을 H.264로 골라 다시 내보내는(다시 인코딩하는) 것이 가장 무난합니다.
  • 용량이 너무 클 때: 해상도를 낮추거나 품질을 정하는 CRF 숫자를 올려(화질을 조금 양보해) 다시 인코딩합니다. H.265 파일을 같은 화질의 H.264로 바꾸면 오히려 파일이 커질 수 있습니다.

업로드용 기본 설정: YouTube 권장값

어디에 올릴지 모를 때는 YouTube의 공식 권장 업로드 설정을 기준으로 삼으면 편합니다.

항목YouTube 권장
컨테이너MP4, 목록표(moov atom)를 파일 앞쪽에(Fast Start)
비디오 코덱H.264, 프로그레시브 방식(인터레이스 없음), High Profile, 가변 비트레이트
오디오 코덱AAC-LC 또는 Opus, 48kHz
프레임 레이트촬영한 그대로 (24, 25, 30, 48, 50, 60fps 등)
색 공간(SDR)BT.709

표의 프로그레시브는 한 장면을 한 번에 다 그리는 방식이고, 가변 비트레이트는 복잡한 장면에 데이터를 더 쓰는 방식입니다. 해상도와 프레임 레이트별 권장 비트레이트(1초에 쓰는 데이터 양) 표도 같은 페이지에 있으니, 올리기 전에 한 번 확인하세요.

"목록표를 앞쪽에"는 이삿짐 비유가 그대로 들어맞는 부분입니다. 상자 목록표가 맨 뒤에 있으면 짐을 끝까지 꺼내 봐야 무엇이 들었는지 알 수 있습니다. 목록표가 맨 앞에 있으면 상자를 여는 순간 바로 풀기 시작할 수 있어, 인터넷으로 받으면서 바로 재생하기가 쉬워집니다. FFmpeg 문서는 이 기능(faststart)을 파일을 다 쓴 뒤 목록표(moov atom)를 맨 앞으로 옮기는 과정이라고 설명합니다. 시간이 걸리고 일부 상황에서는 쓸 수 없어서 기본값은 꺼져 있습니다.

3D 렌더링 결과를 영상으로 만들 때

Blender의 영상 기능은 주로 렌더한 이미지 여러 장(이미지 시퀀스)을 재생 가능한 영상으로 압축하는 데 쓰입니다. 속성 편집기(Properties)의 출력(Output) 탭에 놓인 순서대로, MP4(H.264)로 내보내는 과정은 다음 세 단계입니다.

  1. 파일 형식과 상자 고르기: 출력 탭의 Output 패널에서 Media Type을 Video로 고르고, 아래 Encoding 패널의 Container를 MPEG-4로 고릅니다.
  2. 포장법 고르기: Encoding 패널 안의 Video 패널에서 Video Codec을 H.264로 고릅니다. 소리가 있으면 그 아래 Audio 패널의 Audio Codec에서 AAC를 고릅니다.
  3. 품질 정하기: Output Quality는 미리 정해 둔 품질 단계(프리셋) 중에서 고르는 칸입니다. 숫자로 직접 정하고 싶다면 이 목록에서 Custom을 골라야 CRF 칸이 나타납니다. CRF는 숫자가 작을수록 화질이 좋고 파일이 커지며, Blender에서 H.264, H.265, AV1은 0부터 51까지, 0은 무손실입니다.

같은 화면에서 함께 보면 좋은 항목도 둘 있습니다.

  • Encoding Speed(인코딩 속도): 빠르게 인코딩하면 파일이 커지고, 천천히 하면 더 많이 압축해 파일이 작아집니다. 짐을 급하게 싸면 부피가 크고, 꼼꼼히 싸면 작아지는 것과 같습니다.
  • Keyframe Interval(키프레임 간격): 앞에서 본 GOP 길이입니다. 0으로 두면 프레임 사이 압축이 꺼져(intra only) 파일이 크게 늘어납니다.

같은 일을 앞에서 본 명령어 도구 FFmpeg로도 할 수 있습니다. FFmpeg 문서에는 H.264용 libx264, H.265용 libx265, AV1용 libaom-av1, libsvtav1 인코더가 나옵니다. 예를 들어 이미지 시퀀스를 H.264 MP4로 묶는 명령은 대략 이런 모양입니다.

ffmpeg -framerate 30 -i frame_%04d.png -c:v libx264 -pix_fmt yuv420p -movflags +faststart out.mp4

frame_%04d.png는 frame_0001.png, frame_0002.png처럼 네 자리 번호가 붙은 그림 파일을 차례로 읽으라는 뜻입니다. -c:v libx264는 짐 싸는 방법(코덱), out.mp4는 상자(컨테이너), -movflags +faststart는 목록표를 앞에 붙이는 설정입니다. -pix_fmt yuv420p는 YouTube 권장값의 색 정보 방식(4:2:0)에 맞추는 옵션입니다.

AI 영상 서비스에서 받은 결과물도 대개 MP4 상자에 담겨 오므로, 편집하거나 올리기 전에 앞에서 본 ffprobe로 코덱을 확인하세요. AI 영상의 원리는 AI 영상 생성 입문에 있습니다.

정리

이삿짐 비유영상에서는
짐 싸는 방법(개어 눌러 묶기)코덱 (H.264, H.265, AV1, ProRes 등)
이삿짐 상자컨테이너 (MP4, MKV, MOV, WebM)
상자 목록표moov atom 같은 목록 정보. 앞에 두면 바로 재생하기 쉬움
포장재 버리기손실 압축
"위와 같음" 메모프레임 사이 압축 (키프레임, GOP, B 프레임)
짐 푸는 사람재생 기기·프로그램의 디코더

영상이 안 열리거나 너무 크면, 먼저 ffprobe로 "상자(확장자)가 아니라 포장법(코덱)이 무엇인가"를 확인하세요. 모르겠을 때의 안전한 선택은 MP4 상자 + H.264 영상 + AAC 소리입니다.

참고 자료

KEEP EXPLORING

다음으로 읽어보세요