저장 공간이 부족할 때 개인 저장 드라이브, 클라우드 서비스 또는 디스크에 동영상을 보관하는 일은 생각보다 까다로울 수 있습니다. 파일 크기를 줄이면 대용량 파일과 늘어나는 컬렉션을 관리하기가 훨씬 수월해지지만, 방법에 따라 효율성은 천차만별입니다.
동영상 파일 크기를 최적화할 수 있는 도구는 매우 다양합니다. 그러나 VLC, Cinelerra, Blender를 포함한 많은 도구들이 화려한 UI 뒤에 사실 동일한 엔진, 즉 FFmpeg라는 명령줄 유틸리티를 공유하고 있습니다. 이번 글에서는 리눅스 터미널에서 FFmpeg를 활용해 동영상 파일 크기를 줄이는 방법을 소개합니다.
FFmpeg란 무엇인가?
FFmpeg는 리눅스 소프트웨어 생태계에서 가장 기능이 풍부한 명령줄 미디어 처리 유틸리티로 꼽힙니다. GIF 제작, 동영상 자르기/편집, 화면 녹화 등 폭넓은 기능을 갖추고 있습니다.
무엇보다 FFmpeg는 놀라울 정도로 세밀한 수준에서 동영상을 변환할 수 있어, 파일 크기를 절반(극단적인 경우 4분의 1)까지 줄이면서도 화질을 상당 부분 유지할 수 있습니다.
설치 방법
우분투에서 FFmpeg를 설치하는 것은 다음 명령어 한 줄이면 충분합니다:
sudo apt install ffmpeg

설치가 완료되면 바로 사용할 준비가 된 것입니다.
기본 사용법
FFmpeg는 다음과 같이 간단하게 사용할 수 있습니다:
ffmpeg -i input.video output.video

다만, 동영상 파일 크기를 최적으로 줄이려면 확장자의 특성까지 함께 고려해야 합니다.
최적화 공식
동영상 파일이라고 해서 모두 같은 것은 아닙니다. 예를 들어 avi 확장자는 mp4 파일보다 훨씬 큰 용량을 차지하는 경향이 있습니다.
이는 컨테이너가 의도된 환경에 맞춰 설계된 논리 때문인데, 인코딩 시 적절한 코덱을 선택하면 이를 조정할 수 있습니다. 화질을 우선하면 용량이 커지고, 휴대성을 우선하면 용량이 작아집니다.
핵심은 특정 동영상의 가장 작은 mp4 파일이 항상 같은 동영상의 가장 작은 avi 파일보다 작다는 점입니다. 물론 같은 파일 형식 내에서도 크기와 화질은 다양하게 달라질 수 있습니다.
흥미로운 점은, 완벽한 초소형 파일을 추구하는 데 있어 mp4가 최종 답은 아니라는 것입니다. 현재 화질 유지력이 뛰어난 동영상 파일 형식의 챔피언은 플래시 비디오와 윈도우 미디어 비디오용 컨테이너(FLV, WMV)입니다. 이를 활용하면 초소형이면서도 고화질인 동영상 파일을 만드는 간단한 공식이 성립합니다:
작은 컨테이너 + 효율적인 코덱 + 낮은 프레임레이트 + 낮은 비트레이트 = 초소형/고화질 동영상 파일
참고: 이 글에서 말하는 고화질은 눈에 띄는 픽셀화나 색상 손실이 최소화된 상태를 의미합니다. 파일 크기를 진정으로 최적화하려면 어느 정도의 화질 저하는 불가피하지만, 그 정도는 최적화 대상에 따라 달라집니다. 움직임 속도, 색상 다양성, 사운드 품질/밀도가 설정값을 어디까지 낮출 수 있는지 결정하는 요소입니다.
동영상 코덱과 컨테이너의 선택지는 매우 많지만, 여기서는 간단하게 WMV 8을 사용하겠습니다. (FFmpeg는 아직 WMV 9를 완전히 지원하지 않습니다.)
동영상 최적화하기
FFmpeg를 실행하면 특수 플래그로 설정한 매개변수에 따라 입력 동영상을 지정한 파일 형식으로 변환합니다. 사용 코드는 다음과 같습니다:
ffmpeg -i input.mp4 -b 1000k -vcodec wmv2 -acodec wmav2 -crf 19 -filter:v fps=fps=24 output.wmv


위 코드는 입력 파일을 비트레이트 1Mbps, 프레임레이트 24fps, CRF(고정 화질 계수) 19, .wmv 확장자로 변환합니다. "input.mp4"를 자신의 파일명에 맞게 변경하고, -crf 값을 높이면 파일 크기가 작아지는 대신 화질은 점차 낮아집니다.
FFmpeg는 여기서 소개한 것 이상으로 훨씬 강력한 도구입니다. 전체 기능 세트가 인상적이며, 동영상 변환 외에도 활용 범위가 무궁무진합니다. 자세한 내용은 프로젝트 공식 웹사이트를 확인해 보세요.