본문으로 건너뛰기
Previous
Next
FFmpeg 뜻과 의미 | 기술 용어 사전 | pkglog
멀티미디어

FFmpeg

정의

오픈소스 멀티미디어 프레임워크. 비디오/오디오 디코딩, 인코딩, 트랜스코딩, 스트리밍, 필터링 등 거의 모든 미디어 처리 가능. libavcodec(코덱), libavformat(컨테이너), libavfilter(필터), libswscale(스케일링) 등 라이브러리 제공. 500+ 코덱, 300+ 포맷 지원

상세 설명

📋 기술 스펙

  • libavcodec: H.264(x264), H.265(x265), AV1(libaom/SVT-AV1), VP9(libvpx), AAC(libfdk-aac) 등 500+ 코덱
  • libavformat: MP4, MKV, WebM, AVI, TS, FLV, MOV 등 300+ 컨테이너 디멀티플렉싱/멀티플렉싱
  • libavfilter: 스케일링, 크롭, 색보정, 오버레이, 디인터레이스, 오디오 믹싱 등 450+ 필터
  • libavutil: 메모리 관리, 수학 함수, 랜덤, 암호화 유틸리티
  • libswscale: 픽셀 포맷 변환, 리사이징, 색공간 변환
  • libswresample: 오디오 리샘플링, 채널 믹싱
  • Hardware Acceleration: NVENC, QuickSync, VideoToolbox, VAAPI, CUDA, OpenCL

💡 실무 활용

  • YouTube, Vimeo: 업로드 트랜스코딩 파이프라인
  • VLC, MPV: 플레이어 백엔드 디코딩
  • OBS Studio: 실시간 스트리밍 인코딩
  • HandBrake: GUI 인코더 백엔드
  • Node.js fluent-ffmpeg: 웹 서버 비디오 처리

장점

  • 범용성: 거의 모든 코덱/포맷 지원
  • 고성능: 멀티스레드, SIMD 최적화, 하드웨어 가속
  • 오픈소스: LGPL/GPL 라이선스, 무료 사용
  • 커맨드라인 + 라이브러리: CLI 도구 + C API 제공
  • 필터 그래프: 복잡한 처리 파이프라인 구성

⚠️ 단점 및 제약

  • 가파른 학습 곡선: 수백 개 옵션, 복잡한 필터 문법
  • GPL 라이선스: x264/x265 포함 시 GPL 전염 (상용 제품 제약)
  • 에러 메시지: 불친절한 디버깅 출력
  • GUI 없음: 커맨드라인 필수 (GUI 래퍼 별도)

🔧 호환성

Windows, macOS, Linux, Android, iOS. Python(ffmpeg-python), Node.js(fluent-ffmpeg), Java(Jaffree) 바인딩 존재

📚 표준 정보

표준화 기구: FFmpeg 프로젝트 (오픈소스 커뮤니티)

출시 연도: 2000년