🔍 AVI란 무엇인가?

AVI (Audio Video Interleave)는 Microsoft가 1992년에 발표한 비디오 파일 포맷으로, RIFF(Resource Interchange File Format) 기반으로 설계되었다. 이 포맷은 오디오와 비디오 데이터를 하나의 파일에서 동시에 관리할 수 있도록 설계되었으며, .avi 확장자로 널리 사용된다.
✅ 대표 확장자: .avi
✅ MIME 타입: video/x-msvideo

📦 기본 구조: RIFF 기반 컨테이너

AVI는 RIFF 포맷을 기반으로 하기 때문에, 파일은 "청크(chunk)" 단위로 구성된다. 각 청크는 4바이트 식별자(Tag) + 4바이트 크기 + 실제 데이터 구조를 가진다.

✔ 주요 청크 구조

SCSS
RIFF ('AVI ') ├─ LIST ('hdrl') ← 헤더 정보 │ ├─ avih ← 전체 파일 정보 (AVI header) │ └─ LIST ('strl') ← 각 스트림 정보 (비디오, 오디오) │ ├─ strh ← 스트림 헤더 │ └─ strf ← 스트림 포맷 ├─ LIST ('movi') ← 실제 영상 및 음성 데이터 │ ├─ 00dc ← 압축 비디오 프레임 (dc: video data chunk) │ └─ 01wb ← 음성 데이터 (wb: wave block) └─ idx1 ← 인덱스 청크 (랜덤 접근 지원)

🧠 주요 구성 요소 설명

청크설명
CODE
RIFF
전체 파일 시작, 형식은 항상
CODE
'AVI '
CODE
avih
프레임 속도, 해상도, 전체 길이 등 전역 정보
CODE
strh
비디오/오디오 스트림 헤더 (
CODE
vids
,
CODE
auds
)
CODE
strf
코덱 포맷 및 비트 정보 (예: MJPEG, PCM)
CODE
movi
실제 미디어 데이터 저장소
CODE
idx1
프레임별 오프셋, 크기 정보를 포함한 인덱스

🎥 스트림 분리: Multi-stream Support

AVI는 다중 스트림을 지원하여, 하나의 파일에 여러 비디오/오디오 트랙을 담을 수 있다.
예:
  • 스트림 0: 비디오 (vids)
  • 스트림 1: 오디오 (auds)
  • 스트림 2: 자막 or 텍스트 (txts)
그러나 자막이나 챕터 정보는 MKV와 같은 현대 포맷에 비해 기능적으로 제약이 있다.

📐 비디오 & 오디오 코덱

AVI는 코덱에 독립적인 포맷이기 때문에 다양한 코덱을 내장할 수 있다.
구분대표 코덱
비디오MJPEG, DivX, Xvid, H.264 (제한적)
오디오PCM, MP3, AC3
하지만 H.264 + MP3 조합 같은 경우, AVI의 타임스탬프 체계와 충돌하여 싱크 문제가 발생하기도 한다. 이 때문에 MP4, MKV로 대체되는 경우가 많다.

⚠️ 한계점

제한사항설명
2GB 파일 크기 한계RIFF 포맷은 32비트 인덱스만 지원 → 2GB 이상이면 일부 프로그램에서 재생 오류
동기화 문제고정된 타임스탬프 구조로 인해 일부 코덱과의 싱크 불일치 발생
모던 기능 미지원자막, 챕터, 다중 자막 트랙 등의 기능이 없음
스트리밍 비효율인덱스 정보가 파일 끝에 있어 점프 재생에 불리함
🎯 이 한계 때문에 AVI는 로컬 재생/저장용 포맷으로만 사용되는 경우가 대부분

💡 활용 예시

개발 중 디버그 영상 캡처
– 단순한 프레임 기록이 필요할 때, MJPEG 압축으로 구현 용이
의료 영상 처리
– 무압축(또는 PCM) 기반의 포맷을 요구할 때 사용
DirectShow / VFW 기반 영상 재생
– Windows 환경에서는 호환성이 높아 여전히 활용됨

🛠 AVI 관련 주요 도구

도구설명
VirtualDubAVI 편집 및 인코딩, 무손실 저장 가능
ffmpeg다양한 포맷 간 변환 가능 (
CODE
ffmpeg -i input.mp4 output.avi
)
AVI-Mux GUI다중 오디오 트랙 삽입 지원
MediaInfoAVI 내부 청크 및 코덱 정보 확인

📘 결론

AVI는 고전적이지만 여전히 유효한 영상 컨테이너 포맷이다.
특히 단순성, 비압축 저장, 디버깅 친화성 덕분에 특정 영역에서는 여전히 쓰인다.
다만, 현대적인 영상 기능이 필요한 경우에는 MP4, MKV 같은 포맷이 더 적합하며, 개발 시에도 이런 포맷과의 비교를 통해 용도별 전략적 선택이 중요하다.
"AVI는 오래됐지만 무시할 수 없는, 여전히 쓸모 있는 포맷이다."
image.png

image.png