📦

FFmpeg 버전별 변화 — 6.0에서 8.1까지, 무엇이 달라졌나

멀티스레딩 리팩토링, Vulkan 코덱, 하드웨어 가속 확대, 그리고 8.1 "Hoare"까지

FFmpeg 6.0 "Heaviside" (2023.02)

수십 년 만에 가장 큰 내부 리팩토링이 시작된 버전이다. Meta 내부 포크의 멀티레인 병렬 인코딩 설계를 바탕으로, 스레딩 모델의 근본적 재설계가 시작됐다.

주요 변경:

  • 멀티스레딩 스케줄러 개편 시작 — 여러 인코더를 병렬 실행하는 기반 마련

  • RISC-V 어셈블리 최적화 추가

  • VAAPI AV1 인코딩 지원

  • Radiance HDR 이미지 디코딩

  • 다수의 deprecation 정리

이 버전부터 FFmpeg의 내부 구조가 현대적 멀티코어 활용에 맞게 바뀌기 시작했다.

FFmpeg 6.1 "Heaviside" (2023.11)

6.0에서 시작된 스레딩 리팩토링의 중간 단계.

  • VVC (H.266) 디코더 추가 — 차세대 비디오 코덱

  • NVIDIA NVENC AV1 인코딩 지원

  • Vulkan 디코딩 인프라 기반 작업

  • 다양한 필터 개선

FFmpeg 7.0 "Dijkstra" (2024.04)

인루프 디코딩이 활성화된 버전. Meta가 라이브스트리밍에서 필요로 했던 실시간 품질 메트릭 기능의 핵심이다.

주요 변경:

  • 인루프(in-loop) 디코딩 — 인코더 출력을 바로 디코딩해서 원본과 비교 가능. 실시간 PSNR/SSIM/VMAF 산출

  • Vulkan 기반 비디오 디코딩 (H.264, HEVC)

  • IAMF(Immersive Audio Model and Formats) 지원

  • Multi-threaded 디먹싱

  • CLI 출력 형식 개선

FFlabs와 VideoLAN 개발자의 기여로 Meta 내부 포크의 인루프 디코딩 의존이 완전히 해소됐다.

FFmpeg 7.1 "Péter" (2024.09)

  • VVC 디코더 성능 대폭 개선

  • Vulkan HEVC/AV1 디코딩

  • QSV(Intel) VVC 디코딩

  • FFmpeg CLI의 스레딩 안정성 강화

FFmpeg 8.0 "Edvard" (2025.03)

멀티스레딩 리팩토링이 완성된 버전. 6.0에서 시작된 3년에 걸친 작업의 마무리다.

주요 변경:

  • 병렬 인코딩 스레딩 완성 — 모든 인코더 인스턴스가 병렬 실행. Meta 포크 설계 기반

  • Vulkan 비디오 인코딩 (H.264, HEVC)

  • HDR → SDR 색상 매핑 완전 지원

  • 대량의 deprecated API 제거

  • 내부 코드 대규모 정리

수십 년 만에 가장 복잡한 FFmpeg 리팩토링으로 기록됐다. 모든 FFmpeg 사용자에게 더 효율적인 멀티코어 인코딩을 제공한다.

FFmpeg 8.1 "Hoare" (2025.03)

8.0 직후의 마이너 릴리스. 새 기능과 하드웨어 지원이 추가됐다.

새 디코더/포맷:

  • xHE-AAC Mps212 디코딩 (실험적)

  • MPEG-H 3D Audio 디코딩 (libmpeghdec)

  • EXIF 메타데이터 파싱

  • LCEVC 메타데이터 처리

  • JPEG-XS 코덱 지원 — 저지연 시각적·수학적 무손실 압축

  • hxvs 디먹서

하드웨어 가속:

  • Vulkan — ProRes 인코딩/디코딩, DPX 디코딩. GLSL 런타임 의존성 제거로 초기화 속도 향상

  • D3D12 — H.264/AV1 인코딩 + scale, mestimate, deinterlace 필터

  • Rockchip — H.264/HEVC 하드웨어 인코딩 (rkmpp 기반)

기타:

  • IAMF Ambisonic Audio Elements (Projection 모드) 지원

  • drawvg, vpp_amf 필터 추가

  • swscale 재작성 준비 작업

  • Windows.Graphics.Capture 기반 화면 캡처

버전별 핵심 흐름 요약

6.0~8.0은 하나의 큰 흐름이다:

6.0에서 Meta 설계 기반의 멀티스레딩 리팩토링이 시작되고, 7.0에서 인루프 디코딩이 활성화되고, 8.0에서 병렬 인코딩이 완성됐다. 이 3년간의 작업으로 FFmpeg은 현대적 멀티코어 CPU를 제대로 활용할 수 있게 됐다.

동시에 Vulkan 하드웨어 코덱이 버전마다 확장되면서, GPU 가속 파이프라인의 선택지가 크게 넓어졌다. NVIDIA/Intel/AMD 전용 API 외에 크로스플랫폼 Vulkan이라는 새 축이 생겼다.

동작 흐름

1

6.0 — Meta 설계 기반 멀티스레딩 스케줄러 개편 시작

2

6.1 — VVC(H.266) 디코더, NVENC AV1 인코딩 추가

3

7.0 — 인루프 디코딩 활성화 → 실시간 품질 메트릭 가능

4

8.0 — 병렬 인코딩 스레딩 완성 + Vulkan 인코딩 + HDR→SDR 완전 지원

5

8.1 "Hoare" — xHE-AAC, MPEG-H, D3D12, Vulkan ProRes, Rockchip HW 인코딩

사용 사례

업그레이드 판단 — 현재 버전에서 어떤 기능이 추가되었는지 파악 하드웨어 가속 선택 — Vulkan vs NVENC vs QSV vs D3D12 비교 대규모 인코딩 파이프라인 — 병렬 스레딩 개선의 실효성 판단