AVI 비디오 (.avi)
Microsoft 표준오디오 비디오 인터리브(AVI)는 1992년 마이크로소프트가 도입한 획기적인 멀티미디어 컨테이너로, 동기화된 재생을 위해 오디오와 비디오 스트림을 교차 인터리브합니다.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 AVI 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 AVI 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
52 49 46 46 00 00 00 00 41 56 49 20ASCII 표현: RIFF....AVI
표준화: Microsoft RIFF Specification / OpenDML Extension
기술 사양
| 컨테이너 아키텍처 | Resource Interchange File Format (RIFF) interleaved chunk container |
| 압축 | Interleaved streams supporting DivX, Xvid, Motion JPEG, raw uncompressed, and MP3 audio |
| 바이트 엔디안 | Little-Endian (Intel x86 byte order) |
| 색 공간 | YUV 4:2:0, RGB, and palette colors |
| 채널 및 구조 | Stereo and multichannel audio streams |
| 최대 크기 | Unrestricted; OpenDML AVI extension supports 4K and multi-gigabyte streams |
| 투명도 | Supported via RGBA uncompressed video streams |
| 스트리밍 및 프로그레시브 | Index chunk placed at end of file; poorly suited for progressive web streaming |
기술 비교 매트릭스: AVI 대 경쟁사
| 기술적 속성 | AVI (현재) | MP4 | MKV | MOV |
|---|---|---|---|---|
| 스트리밍 적합성 | 나쁨; 탐색하기 전에 전체 파일을 다운로드해야 함 | 우수함 (FastStart / HLS / DASH) | 좋음 (분할된 EBML) | 우수함 (FastStart) |
| HTML5 웹 재생 | 최신 브라우저에서 기본적으로 지원되지 않음 | 모든 브라우저에서 100% 범용 | 부분적 지원 (Edge / Chrome) | Safari / Apple 기기에서 지원 |
| 자막 삽입 | 해킹에 의존함 (외부 .srt 파일 필요) | 네이티브 타임드 텍스트 (tx3g / VTT) | ASS/SSA/SRT에 대한 완전한 기본 지원 | 네이티브 Apple QuickTime 자막 |
| 가변 프레임 레이트 | 엄격한 고정 프레임레이트 (CFR) | 기본 VFR 지원 | 기본 VFR 지원 | 기본 VFR 지원 |
일반적인 손상 모드 및 헥스 복구 가이드
미디어 플레이어가 비디오를 재생할 수 있지만 탐색이나 빨리 감기를 할 수 없거나 '손상된 색인(Corrupt index)'을 보고함.
근본 원인: 다운로드가 중단되는 동안 후행 'idx1' 색인 청크가 잘렸거나 삭제됨.
복구: DivFix++, VLC('인덱스를 빌드한 후 재생'), 또는 'ffmpeg -i broken.avi -c copy fixed.avi'를 사용하여 인덱스 재구축.
보안 분석 및 파서 공격 벡터
AVI 파일은 복잡한 청크 계층 구조를 포함하고 수많은 모호한 구형 비디오 코덱을 지원하므로 샌드박스 처리되지 않은 디코더가 파서 악용에 취약합니다.
알려진 공격 벡터
- 구형 Windows 미디어 플레이어의 'strh'(스트림 헤더) 청크 파싱에서의 힙 버퍼 오버플로
- 악의적으로 조작된 대형 프레임 수 헤더에 대한 색인 배열 할당 중 정수 오버플로
- 구형 DirectShow 필터 내의 모션 JPEG(Motion JPEG) 압축 해제에서의 범위를 벗어난 읽기
방어적 모범 사례:
역사적 배경 및 주요 이력
주요 장점
- Windows 미디어 소프트웨어 및 비디오 편집기 전반에 걸친 매우 광범위한 구형 데스크톱 지원
- 아카이브 필름 스캔 및 과학적 비디오 분석을 위한 압축되지 않은 원본 프레임 지원
- 낮은 컨테이너 오버헤드를 가진 단순한 스트림 인터리빙 아키텍처
기술적 제한 사항 및 단점
- 가변 프레임레이트(VFR) 및 챕터와 같은 최신 비디오 컨테이너 기능에 대한 기본 지원 부족
- 마스터 인덱스 청크('idx1')가 파일 끝에 저장되어 웹 스트리밍에 적합하지 않음
- MP4 또는 WebM으로 재인코딩하지 않으면 네이티브 HTML5 비디오 브라우저 지원 없음
흥미로운 기술적 상식
- 2000년대 초반, DivX 및 Xvid AVI 파일은 P2P(peer-to-peer) 파일 공유 네트워크에서 사용되는 주요 형식 소스였습니다.
- 초기의 1992년 AVI 사양은 32비트 파일 오프셋 포인터로 인해 2 GB를 초과할 수 없었습니다.
- AVI 파일 끝에 있는 'idx1' 청크는 탐색을 위해 모든 단일 프레임의 바이트 오프셋을 나열합니다.
자주 묻는 기술 질문
웹 브라우저에서 AVI 비디오를 직접 재생할 수 없는 이유는 무엇인가요?
최신 브라우저는 프로그레시브 스트리밍에 최적화된 컨테이너 형식 때문에 MP4(H.264/AV1) 및 WebM(VP9/AV1)을 표준으로 삼습니다. AVI는 기본 웹 스트리밍 기능이 부족하며 HTML5 <video>에서 지원되지 않습니다.
탐색(seek)이나 스크럽이 되지 않는 AVI 파일을 어떻게 수정할 수 있나요?
AVI 파일은 파일 끝에 있는 인덱스 테이블에 의존합니다. 불완전한 경우 플레이어가 탐색할 수 없습니다. File2File 비디오 변환기로 파일을 트랜스코딩하거나 재인덱싱하면 전체 타임라인 스크럽이 복원됩니다.
AVI와 MP4의 차이점은 무엇인가요?
AVI는 로컬 데스크톱 재생용으로 설계된 1992년 레거시 컨테이너입니다. MP4는 웹 스트리밍, 챕터, 가변 프레임레이트, 자막, 뛰어난 압축을 지원하는 2001년 현대 표준입니다.