
이 글은 **Meta**가 하루 수백억 회에 달하는 FFmpeg 실행 환경에서 어떤 기술적 과제에 직면했고, 이를 어떻게 해결했는지를 정리한 기술 블로그입니다. 특히 내부 포크를 완전히 폐기하고 업스트림 FFmpeg으로 전환하기까지의 배경, 멀티레인 병렬 인코딩과 실시간 품질 메트릭 같은 핵심 기술, 그리고 하드웨어 가속까지 아우르는 전략을 중심으로 설명합니다. 대규모 미디어 처리 파이프라인을 고민하는 독자라면, Meta의 선택과 그 의미를 통해 많은 시사점을 얻을 수 있습니다.
FFmpeg의 역할과 Meta가 마주한 현실
**FFmpeg**은 다양한 오디오·비디오 코덱과 컨테이너 포맷을 지원하는 업계 표준 미디어 처리 도구입니다. 단순한 변환을 넘어 복잡한 필터 체인을 활용한 편집과 분석까지 가능해, 대규모 미디어 서비스의 핵심 인프라로 활용됩니다.
Meta는 ffmpeg CLI와 ffprobe를 하루 수백억 회 실행하며, 단일 파일 변환 수준을 넘어서는 요구사항을 갖고 있었습니다. 특히 하루 10억 건 이상의 동영상 업로드를 처리하면서, 효율성과 안정성은 선택이 아닌 필수 조건이었습니다.
내부 포크 의존의 한계와 업스트림 복귀 결정
과거 Meta는 업스트림 FFmpeg에 없던 기능을 빠르게 도입하기 위해 내부 포크를 사용했습니다. 스레드 기반 멀티레인 인코딩이나 실시간 품질 메트릭 계산 같은 기능이 대표적입니다.
하지만 시간이 지나면서 내부 포크와 업스트림 간의 기능 격차가 커졌고, 새로운 코덱과 파일 포맷, 안정성 개선을 제공하는 최신 FFmpeg 버전을 병행 지원해야 하는 부담이 커졌습니다. 내부 변경 사항을 최신 버전으로 리베이스할 때마다 리그레션을 방지하기 어려워졌고, 결국 Meta는 VideoLAN, **FFlabs**와 협력해 내부 포크를 완전히 폐기하고 업스트림 FFmpeg만 사용하는 방향으로 전환했습니다.
멀티레인 병렬 인코딩으로 인코딩 효율 극대화
Meta의 동영상 처리 파이프라인은 DASH 재생을 위해 해상도, 코덱, 프레임레이트, 화질 수준이 다른 여러 인코딩 레인을 동시에 생성합니다. 기존 방식처럼 각 레인을 개별 FFmpeg 명령줄로 처리하면 디코딩을 반복하고 프로세스 시작 오버헤드가 발생해 비효율적입니다.
Meta는 단일 FFmpeg 명령줄에서 프레임을 한 번만 디코딩한 뒤 여러 출력 인코더로 전달하는 방식을 사용했습니다. 여기에 더해, 여러 인코더를 프레임 단위로 직렬 실행하던 기존 구조를 개선해 모든 인코더 인스턴스를 병렬로 실행하도록 설계했습니다. 이 설계는 FFmpeg 6.0부터 단계적으로 반영돼 8.0에서 완성됐으며, 수십 년 만에 가장 복잡한 리팩토링으로 기록됐습니다. 결과적으로 Meta뿐 아니라 모든 FFmpeg 사용자에게 인코딩 효율 향상이 제공됐습니다.
라이브스트리밍을 위한 실시간 품질 메트릭
라이브스트리밍 환경에서는 인코딩이 끝난 뒤 품질을 평가하는 방식이 통하지 않습니다. 시청 경험에 직접적인 영향을 주기 때문에, 실시간 품질 메트릭이 필요합니다.
Meta는 각 출력 레인의 비디오 인코더 뒤에 디코더를 삽입해, 압축 후 프레임을 다시 디코딩하고 원본 프레임과 비교하는 방식을 채택했습니다. 이를 통해 단일 FFmpeg 명령줄에서 PSNR, SSIM, VMAF 같은 품질 메트릭을 실시간으로 산출할 수 있었습니다. 이 기능 역시 FFmpeg 7.0부터 업스트림에 반영되며, 내부 포크 의존성을 완전히 제거했습니다.
표준 하드웨어 API와 MSVP 통합
FFmpeg은 NVIDIA, AMD, Intel 등 주요 벤더의 하드웨어 가속 디코딩·인코딩을 표준 API로 지원합니다. Meta는 이 구조를 활용해 자체 설계한 비디오 트랜스코딩 ASIC인 MSVP를 동일한 API로 통합했습니다.
MSVP는 Meta 내부 인프라 전용 하드웨어이기 때문에 외부 개발자가 접근하기 어렵고, 관련 패치는 내부에 유지됩니다. 그럼에도 표준 API를 따르기 때문에 최신 FFmpeg 버전으로 리베이스할 때 광범위한 검증을 거쳐 안정성과 일관성을 확보할 수 있었습니다. 이는 소프트웨어와 하드웨어 파이프라인을 동시에 운영해야 하는 대규모 환경에서 중요한 장점입니다.
지속적인 FFmpeg 투자와 그 의미
Meta는 멀티레인 인코딩과 실시간 품질 메트릭을 업스트림에 기여함으로써, 내부 포크를 완전히 폐기하고 모든 VOD 및 라이브스트리밍 파이프라인을 표준 FFmpeg 기반으로 전환했습니다. 또한 표준 하드웨어 API 덕분에 MSVP와 소프트웨어 인코딩을 최소한의 마찰로 병행할 수 있게 됐습니다.
25년 이상 개발돼 온 FFmpeg에 대한 지속적인 투자는 Meta 플랫폼의 새로운 동영상 경험과 안정성을 동시에 강화합니다. 동시에 오픈소스 생태계 전체에 성능과 효율 개선이라는 혜택을 환원하는 사례이기도 합니다.
Meta의 FFmpeg 활용 사례는 대규모 미디어 처리 환경에서 내부 최적화와 오픈소스 기여가 어떻게 균형을 이룰 수 있는지를 잘 보여줍니다. 단기적인 속도를 위해 내부 포크를 유지하기보다, 장기적인 안정성과 확장성을 위해 업스트림으로 복귀한 선택은 많은 기술 조직에 시사점을 줍니다. 앞으로도 FFmpeg를 중심으로 한 표준화된 미디어 처리 아키텍처는 대규모 영상 서비스의 핵심 기반으로 자리 잡을 것으로 기대됩니다.
https://engineering.fb.com/2026/03/02/video-engineering/ffmpeg-at-meta-media-processing-at-scale/
FFmpeg at Meta: Media Processing at Scale
FFmpeg is truly a multi-tool for media processing. As an industry-standard tool it supports a wide variety of audio and video codecs and container formats. It can also orchestrate complex chains of…
engineering.fb.com

'인공지능' 카테고리의 다른 글
| 엔비디아 Nemotron 3 Super 공개: 120B 오픈 모델로 대규모 AI 시스템을 가속하다 (0) | 2026.03.12 |
|---|---|
| 잠자는 동안 코드를 작성하는 AI 에이전트, 어떻게 신뢰할 수 있을까? - 수용 기준(Acceptance Criteria) 기반 자동 검증 파이프라인 정리 (0) | 2026.03.12 |
| 엔비디아, 오픈소스 AI 에이전트 플랫폼 ‘NemoClaw’ 출시 예고 – 보안 중심 AI 에이전트의 새로운 흐름 (0) | 2026.03.11 |
| Omni: 사내 정보를 하나로 연결하는 업무용 AI 비서 & 통합 검색 플랫폼 (0) | 2026.03.11 |
| Superset: 여러 CLI 코딩 에이전트를 동시에 다루는 차세대 개발 터미널 (0) | 2026.03.11 |