2017-09-08 16:59:46

AVI, MP4와 같은 동영상 확장자(다른 말로 동영상 컨테이너)들이 각각 어떤 차이를 갖고 있는지 정리해보려고 한다. 


1. AVI (Audio Video Interleave)

윈도우의 비디오용 컨테이너로 다양한 종류의 비디오와 오디오 코덱을 조합해 사용할 수 있다. 1992년에 발표되어 오랫동안 사용되어 왔으나 확장성의 한계로 점차 다른 규격들에 밀려 사용 비중이 줄어들고 있다. AVI 파일을 소스로 작업할 때 영상 장비와 소프트웨어에 따라 호환성에 문제가 생기는 것은 사용된 코덱이 그 원인이 되는 경우가 많다. 


2. MP4, MP4A, MP4B, MP4V

MPEG-2와 H.263, MPEG-4(H.264포함)는 물론 VC-1까지 지원하는 컨테이너이지만 주로 MPEG-4 계열에서 사용한다. 비디오와 오디오를 모두 사용하는 경우에는 MP4 확장자를 사용하지만, 오디오 전용인 경우 MP4A와 MP4B를 사용하며 MP4B는 북마크 기능도 지원한다. 반대로 MP4V는 M2V와 같이 오디오가 없는 순수 비디오 스트림만을 갖는 MPEG-4 기본 스트림 비디오 컨테이너로 사용되지만 제한적으로 오디오를 포함하고 있는 경우도 있다.


3. MPG, MPEG

MPEG-1과 MPEG-2를 비디오 코덱으로 사용하는 동영상을 위한 컨테이너로 프로그램 스트림과 전송 스트림 모두 사용할 수 있으나 주로 프로그램 스트림 방식으로 사용된다. 


4. WMV (Windows Media Video)

마이크로소프트에서 개발한 멀티미디어 파일용 컨테이너이다. ASF의 발전형으로 윈도우에서는 매우 높은 호환성을 보여 주지만 맥 오에스, 리눅스와 같은 시스템에서는 호환성에 문제를 일으킬 수 있기 때문에 주로 최종본의 형태로 사용되고 작업용 소스로는 거의 사용되지 않는다.



* 코덱(codec)이란?

코더(coder)와 디코더(decoder)의 합성어로, 아날로그 형태로 되어있는 음성이나 비디오 신호를 컴퓨터가 처리할 수 있게 디지털로 변환해 저장 및 재생하기 위한 소프트웨어이다. 동영상처럼 용량이 큰 파일을 작게 묶어주고 이를 다시 본래대로 재생할 수 있게 해준다. 파일을 작게 해주는 것을 인코딩, 본래대로 재생하는 것을 디코딩이라고 한다. 또 데이터 압축 기능을 사용하여 압축하거나 압축을 푸는 소프트웨어도 코덱에 포함된다. 코덱의 종류는 매우 다양하다. 동영상 코덱으로는 가장 많이 사용되는 MPEG(MPEG1, MPEG2, MPEG4)를 비롯하여 인텔의 Indeo, Divx, Xvid, H.264, WMV, RM, Cinepak, MOV, ASF, RA, XDM, RLE 등이 있다. 오디오 코덱으로는 가장 잘 알려진 MP3를 비롯하여 AC3, AAC, OGG, WMA, FLAC. DTS 등이 있다. 압축 소프트웨어로는 알집, 반디집, FilZip, 7-Zip, WinRAR, WinZip 등이 있다. 이들 각 코덱은 표준화가 이뤄지지 않아서 압축방법이나 화질, 압축률 등이 서로 다르고 호환성이 없기 때문에 필요한 코덱을 개별적으로 설치하여야 한다. 이러한 번거로움을 피하기 위하여 여러 종류의 코덱을 한꺼번에 설치해주는 것을 통합코덱이라 한다.



* '동영상 컨테이너'와 '코덱'의 차이는 무엇일까?
비디오 코덱와 오디오 코덱은 따로 존재하며 이렇게 디지털 압축된 비디오/오디오 파일을 한데 묶어 놓은 방식을 컨테이너라고 한다. 즉, 비디오/오디오 파일을 담고 있는 상자 정도로 생각하면 된다. 그리고 각각의 비디오 파일과 오디오 파일은 특정한 비디오 코덱과 오디오 코덱으로 인코딩되어 있다. MediaInfo라는 프로그램으로 컨테이너, 비디오 코덱, 오디오 코덱에 대한 정보를 확인해보면 좀 더 분명하게 이해가 된다.

그림 1. MediaInfo로 소장하고 있는 영화 '원스'의 컨테이너, 코덱 정보.


그림 1에서 보듯이, 소장하고 있는 영화 '원스'는 MPEG-4 컨테이너 안에서 비디오 스트림은 AVC 코덱으로, 오디오 스트림은 AAC 코덱으로 인코딩되어 있음을 확인할 수 있다. 




<참고자료>

[1] http://terms.naver.com/entry.nhn?docId=3572614&cid=59088&categoryId=59096 => 확장자(데이터 파일의 종류를 나타내는 징표)에 대한 네이버캐스트 설명

[2] http://terms.naver.com/entry.nhn?docId=3340392&cid=58161&categoryId=58161#TABLE_OF_CONTENT19 => 동영상 컨테이너에 대한 네이버 지식

[3] http://terms.naver.com/entry.nhn?docId=1221296&cid=40942&categoryId=32842 => 코덱에 관한 네이버 지식백과

[4] http://blog.naver.com/PostView.nhn?blogId=dbfan24&logNo=10128720329 => MediaInfo의 존재와 사용법을 알려준 블로그