UGLYPEAR AI 사업 전환 완료: 고성능 문서 압축 × RAG 데이터 엔지니어링 기반신규 사업 알아보기 →

FFmpeg 압축: CRF vs CBR vs VBR 중 어떤 것을 선택할까?

결론부터 말씀드리면: FFmpeg 비디오 압축에는 세 가지 비트레이트 제어 모드가 있습니다. CRF(고정 화질)는 아카이빙 및 로컬 저장에 적합하고, CBR(고정 비트레이트)는 라이브 스트리밍에 적합하며, VBR(가변 비트레이트)는 스트리밍 주문형 비디오에 적합합니다. 동일한 1080p 비디오에서 CRF 23은 42MB로 화질이 최적이고, CBR 4Mbps는 38MB로 비트레이트가 가장 안정적이며, VBR은 36MB로 용량이 가장 작지만 화질이 변동됩니다. 잘못된 모드를 선택하면 용량 낭비나 화질 저하가 발생합니다. 아래에서 원리, 명령, 실측 세 가지 측면에서 선택 방법을 상세히 설명합니다.

비디오 압축의 전체적인 방법에 아직 익숙하지 않으시다면, 먼저 비디오 압축 가이드를 읽어보시기를 권장합니다.

1. 세 가지 비트레이트 모드 원리 비교

비디오 인코딩의 비트레이트 제어 모드는 인코더가 비트 자원을 어떻게 할당할지를 결정합니다. 서로 다른 모드의 핵심 차이는 "무엇을 우선 보장할 것인가"입니다. CRF는 화질을 우선 보장하고, CBR은 비트레이트 안정성을 우선 보장하며, VBR은 둘 사이의 절충안입니다. 이 세 가지 모드의 원리를 이해하는 것이 좋은 비디오 압축의 기초입니다.

비교 차원CRF (Constant Rate Factor)CBR (Constant Bitrate)VBR (Variable Bitrate)
한글 전명고정 속도 인자고정 비트레이트가변 비트레이트
핵심 목표화질 고정비트레이트 고정용량 제어 가능
비트레이트 할당화면 복잡도에 따라 동적 할당각 프레임 고정 비트레이트상하한 사이에서 변동
화질 일관성★★★★★★★☆☆☆★★★☆☆
용량 제어 가능성★★☆☆☆★★★★★★★★★☆
인코딩 속도중간가장 빠름느린 편
적용 시나리오아카이빙/로컬 저장라이브 스트리밍스트리밍 주문형

간단히 말하면: CRF는 인코더가 "화면 난이도에 따라 비트레이트를 할당"하도록 합니다. 액션 영화에는 더 많은 비트레이트를, 정적인 대화에는 더 적게 할당하여, 최종적으로 각 프레임의 화질이 일관됩니다. CBR은 "화면 복잡 여부와 관계없이 동일한 양의 비트레이트를 할당"합니다. 간단한 시나리오에서는 비트레이트가 낭비되고, 복잡한 시나리오에서는 비트레이트가 부족하여 모자이크 현상이 발생합니다. VBR은 둘 사이의 중간으로, 비트레이트 범위를 설정하면 인코더가 자체적으로 조절합니다.

2. FFmpeg 명령 예시 및 매개변수

세 가지 모드의 FFmpeg 명령 작성 방법은 서로 다르며, 핵심 매개변수도 다릅니다. 아래에 각 모드의 표준 명령 템플릿과 매개변수 설명을 제시합니다.

모드핵심 매개변수매개변수 설명전형적 값 범위
CRF-crf화질 인자, 값이 작을수록 화질이 높음0-51(18-28 흔히 사용)
CRF 제약-maxrate / -bufsize피크 비트레이트 제한maxrate 2-8Mbps
CBR-b:v / -minrate / -maxrate세 값을 동일하게 설정하여 CBR 구현2-8Mbps
VBR-b:v목표 평균 비트레이트2-6Mbps
VBR 범위-minrate / -maxrate비트레이트 변동 범위min 1-2Mbps / max 4-8Mbps
범용-preset인코딩 속도와 압축률 균형ultrafast-fast-medium-slow

1. CRF 모드 명령

CRF는 가장 권장되는 아카이빙 압축 모드입니다. 인코더는 화면 복잡도에 따라 자동으로 비트레이트를 할당하여 각 프레임의 화질이 일관되도록 보장합니다. CRF 23은 H.264의 기본값이며, 대부분의 시나리오에 적합합니다.

순수 CRF 모드(비트레이트 상한 미제한):
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

제약 CRF 모드(피크 비트레이트 제한, 비트레이트 상한이 필요한 시나리오에 적합):
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -maxrate 4M -bufsize 8M -preset medium output.mp4

2. CBR 모드 명령

CBR은 minrate, maxrate, b:v를 동일한 값으로 설정하여 고정 비트레이트를 구현합니다. 라이브 스트리밍은 비트레이트 안정성을 보장하기 위해 반드시 CBR을 사용해야 합니다.

표준 CBR 모드:
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -minrate 4M -maxrate 4M -bufsize 8M -preset fast output.mp4

라이브 스트리밍 모드(RTMP결합):
ffmpeg -i input.mp4 -c:v libx264 -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 8000k -g 60 -preset fast -f flv rtmp://server/live/stream

3. VBR 모드 명령

VBR은 목표 평균 비트레이트를 설정하면 인코더가 범위 내에서 자유롭게 조절합니다. 용량 예측이 필요한 스트리밍 주문형 비디오와 같은 시나리오에 적합합니다.

표준 VBR 모드:
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -preset medium -c:a aac -b:a 128k output.mp4

2-pass 인코딩 VBR(Two-pass, 용량을 더 정확하게 제어):
ffmpeg -y -i input.mp4 -c:v libx264 -b:v 4M -pass 1 -an -f mp4 /dev/null
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -pass 2 -c:a aac -b:a 128k output.mp4

3. 실측 데이터: 동일 비디오의 세 가지 모드 비교

저희는 동일한 1080p/30fps 테스트 비디오(원본 용량 350MB, H.264 인코딩, 5분 길이)를 사용하여 각각 세 가지 모드로 압축하고, 용량, 화질, 인코딩 소요 시간을 비교했습니다.

모드매개변수출력 용량압축률화질 평점인코딩 소요 시간
CRF 18-crf 18 -preset medium85.2MB75.7%★★★★★142초
CRF 23-crf 23 -preset medium42.1MB88.0%★★★★☆128초
CRF 28-crf 28 -preset medium22.5MB93.6%★★★☆☆115초
CBR 4M-b:v 4M -minrate 4M -maxrate 4M38.3MB89.1%★★★☆☆98초
CBR 2M-b:v 2M -minrate 2M -maxrate 2M19.4MB94.5%★★☆☆☆92초
VBR 4M-b:v 4M -preset medium36.8MB89.5%★★★★☆135초
VBR 4M 2-pass-b:v 4M -pass 236.2MB89.7%★★★★☆268초

실측 데이터는 몇 가지 핵심 결론을 보여줍니다. CRF 23은 화질과 용량 사이에서 최적의 균형을 달성(42MB, 화질 4.5개 별), CBR 4M은 용량이 CRF 23에 가깝지만 화질이 약간 떨어지며(복잡한 장면에서 모자이크 발생), VBR 2-pass 인코딩은 용량이 가장 정확하지만 소요 시간이 두 배. 아카이빙 시나리오에서는 CRF 23이 최선의 선택입니다.

다시 CRF 23에 대한 다양한 preset의 영향을 살펴봅니다.

preset출력 용량인코딩 소요 시간용량 차이권장 시나리오
ultrafast58.2MB32초+38%실시간 미리보기
fast45.6MB68초+8%빠른 압축
medium42.1MB128초기준범용 기본값
slow39.8MB285초-5%고품질 아카이빙
slower38.5MB612초-9%궁극의 압축

다양한 해상도에서 권장되는 비트레이트 참고로, 적절한 CBR/VBR 목표 비트레이트 선택에 도움이 됩니다.

해상도프레임 속도CBR 권장 비트레이트VBR 목표 비트레이트CRF 권장 값적용 시나리오
480p30fps1.0Mbps1.0MbpsCRF 24모바일 저화질
720p30fps2.5Mbps2.5MbpsCRF 23웹 표준 선명도
1080p30fps4.0Mbps4.0MbpsCRF 23고화질 범용
1080p60fps6.0Mbps6.0MbpsCRF 22고화질 고프레임 속도
1440p30fps8.0Mbps8.0MbpsCRF 222K 화질
2160p(4K)30fps16.0Mbps16.0MbpsCRF 20초고화질 아카이빙

4. 시나리오 권장: 다양한 용도에 따라 다른 모드 선택

서로 다른 사용 시나리오는 화질, 용량, 비트레이트 안정성에 대한 요구가 다르며, 비트레이트 모드 선택의 핵심은 시나리오 요구에 맞추는 것입니다.

사용 시나리오권장 모드권장 매개변수선택 이유예상 압축률
로컬 아카이빙 저장CRF-crf 23 -preset medium화질 우선, 용량 최적85%–90%
고품질 아카이빙CRF-crf 18 -preset slow무손실에 근접, 장기 보존70%–80%
라이브 스트리밍CBR-b:v 4M -minrate 4M -maxrate 4M비트레이트 안정, 끊김 방지소스에 따라 다름
스트리밍 주문형VBR 2-pass-b:v 4M -pass 2용량 정확, 화질 균형80%–90%
모바일 재생제약 CRF-crf 26 -maxrate 2M -bufsize 4M모바일 네트워크에 맞게 비트레이트 제한90%–95%
웹 비디오제약 CRF-crf 24 -maxrate 3M -bufsize 6M화질과 로딩 속도 균형88%–92%
감시 녹화CBR-b:v 1M -minrate 1M -maxrate 1M저장 용량 계산에 용이하도록 고정 비트레이트소스에 따라 다름
비디오 이메일CRF-crf 28 -preset fast용량 우선, 화질 허용 가능93%–96%

SmartSlim은 비디오 압축 시 자체 개발한 Rust 압축 엔진을 기반으로 시나리오화 매개변수 라이브러리를 내장합니다. 4단계 압축 x 15개 시나리오 x 5단계 성능 = 300개 조합으로, 비디오 용도에 따라 자동으로 최적의 비트레이트 모드와 매개변수를 선택하여 FFmpeg 명령을 수동으로 조정할 필요가 없습니다. 기업 사용자는 SDK를 비즈니스 시스템에 통합하여 비디오 압축 자동화를 구현할 수도 있습니다.

더 많은 비디오 인코딩 비교는 H.264 vs H.265 vs AV1 인코딩 비교비디오 압축 화질 평가 방법을 참조하시기 바랍니다.

5. 자주 묻는 질문 FAQ

Q1: FFmpeg 비디오 압축은 CRF와 VBR 중 어느 것이 더 좋나요?

아카이빙 및 로컬 저장에는 CRF가 더 좋습니다. CRF는 고정 화질을 목표로 하며, 복잡한 장면에는 더 많은 비트레이트를, 간단한 장면에는 더 적은 비트레이트를 할당하여 화질이 일관되고 용량이 최적입니다. CRF 값 18-28이 권장되며, 18은 시각적 무손실에 가깝고, 23은 기본 균형점이며, 28은 화질이 허용 가능하면서 용량이 더 작습니다. VBR은 스트리밍과 같이 비트레이트 상한을 제어해야 하는 시나리오에 적합하지만, 화질은 CRF만큼 안정적이지 않습니다.

Q2: CRF 값이 얼마일 때 화질이 가장 좋나요?

CRF 값이 작을수록 화질이 높고 용량이 큽니다. H.264 인코딩에서: CRF 0은 무손실, CRF 18은 시각적 무손실에 근접(용량은 원본의 약 50%), CRF 23은 FFmpeg 기본값(용량은 원본의 약 25%), CRF 28은 화질이 허용 가능(용량은 원본의 약 12%). 권장 범위는 18-28이며, 대부분의 시나리오는 CRF 23이면 충분하고, 고품질을 추구한다면 CRF 18-20을 사용합니다.

Q3: 라이브 스트리밍은 CBR과 VBR 중 어느 것을 사용해야 하나요?

라이브 스트리밍에는 CBR을 권장합니다. 라이브는 비트레이트 안정성에 대한 요구가 매우 높습니다. CBR은 고정 비트레이트를 유지하여 네트워크 변동으로 인한 끊김을 방지합니다. 스트리밍 플랫폼은 일반적으로 고정 비트레이트를 요구합니다(예: Twitch 6000kbps, Bilibili 4000kbps), CBR이 정확히 일치할 수 있습니다. VBR은 복잡한 장면에서 비트레이트가 급등하여 대역폭 상한을 초과하여 프레임 손실이 발생할 수 있지만, CBR은 항상 안정적입니다. 스트리밍에는 CBR + maxrate = bufsize = 목표 비트레이트 사용을 권장합니다.

Q4: FFmpeg의 두 가지 VBR 모드에는 어떤 차이가 있나요?

FFmpeg에는 두 가지 VBR이 있습니다. -crf에 maxrate/bufsize를결합하는 것은 제약 VBR(constrained VBR)로, 화질이 순수 CRF에 가깝지만 피크 비트레이트를 제한합니다. -b:v에 -minrate/-maxrate를결합하는 것은 전통적인 VBR로, 비트레이트가 범위 내에서 변동합니다. 제약 VBR이 실제 사용에 더 적합하며, 화질을 보장하면서 피크 비트레이트를 제어합니다. 전통적인 VBR은 특정 대역폭 환경에 적응하는 것과 같이 비트레이트 범위를 정확하게 제어해야 하는 시나리오에 적합합니다.

요약

FFmpeg의 세 가지 비트레이트 모드는 각각 최적의 시나리오가 있습니다. CRF는 화질을 우선시하여 아카이빙에 적합(CRF 23 권장), CBR은 안정성을 우선시하여 라이브 스트리밍에 적합(4Mbps 고정 권장), VBR은 용량 제어 가능성을 우선시하여 스트리밍 주문형에 적합(2-pass 인코딩 권장). 올바른 모드를 선택하는 것이 비디오 압축의 첫 번째 단계입니다. 아카이빙에는 CRF, 라이브에는 CBR, 주문형에는 VBR. 이 원칙을 기억하면 실수하지 않습니다.

FFmpeg 명령을 수동으로 작성하고 싶지 않다면, SmartSlim은 즉시 사용 가능한 비디오 압축 솔루션을 제공합니다. 자체 개발한 Rust 압축 엔진을 기반으로 300가지 시나리오화 매개변수 조합을 내장하고 있으며, mp4/mkv/avi/mov/wmv/flv/webm/m4v 등 8가지 비디오 포맷을 지원하며, 로컬 압축으로 데이터가 외부로 유출되지 않습니다.

파일을 압축해야 하시나요? SmartSlim을 사용해 보세요

자체 개발한 Rust 압축 엔진 기반으로 PDF/이미지/비디오/Office/OFD 등 10개 대분류 40+ 포맷을 지원하며, 로컬 압축으로 데이터가 외부로 유출되지 않습니다.