VideoWriter::fourcc() 함수를 사용하여 생성할 수 있는 주요 fourcc 코드와 관련 코덱 정보를 표 4-3에 정리했습니다. 좀 더 많은 fourcc 코드와 코덱 정보는 http://www.fourcc.org/codecs.php 웹 사이트를 참고하기 바랍니다.
▼ 표 4-3 주요 fourcc 코드와 의미
fourcc 코드 생성 방법 |
코덱 설명 |
VideoWriter::fourcc('D', 'I', 'V', 'X') |
DivX MPEG-4 코덱 |
VideoWriter::fourcc('X', 'V', 'I', 'D') |
XVID MPEG-4 코덱 |
VideoWriter::fourcc('F', 'M', 'P', '4') |
FFMPEG MPEG4 코덱 |
VideoWriter::fourcc('W', 'M', 'V', '2') |
Windows Media Video 8 코덱 |
VideoWriter::fourcc('M', 'J', 'P', 'G') |
모션 JPEG 코덱 |
VideoWriter::fourcc('Y', 'V', '1', '2') |
YUV 4:2:0 Planar(비압축) |
VideoWriter::fourcc('X', '2', '6', '4') |
H.264/AVC 코덱 |
VideoWriter::fourcc('A', 'V', 'C', '1') |
Advanced Video 코덱 |
예를 들어 DivX MPEG-4 코덱을 이용하는 output.avi 동영상 파일을 생성하려면 다음과 같은 형태로 코드를 작성합니다.
VideoWriter video; int fourcc = VideoWriter::fourcc('D', 'I', 'V', 'X'); video.open("output.avi", fourcc, fps, Size(w, h));
이 코드에서 fps는 FPS 값, w와 h는 프레임 크기를 나타냅니다. 그런데 VideoWriter 클래스는 VideoWriter::open() 함수와 같은 인자 구성을 갖는 생성자를 지원하기 때문에 앞에서 두 줄로 쓴 코드는 다음과 같이 한 줄의 코드로 바꿔 쓸 수 있습니다.
VideoWriter video("output.mp4", fourcc, fps, Size(w, h));