처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.03.21 54

FFmpeg, 제대로 배워봅시다 — 멀티미디어 처리의 스위스 아미 나이프 완전 가이드

Hacker News 원문 보기

개발자라면 한 번쯤 마주치는 FFmpeg

FFmpeg은 동영상, 오디오, 이미지 등 거의 모든 멀티미디어 포맷을 다룰 수 있는 오픈소스 도구입니다. 2000년에 처음 등장한 이래 20년 넘게 개발이 지속되어 온 이 프로젝트는, 아마 대부분의 개발자가 이름은 들어봤지만 정작 체계적으로 배운 적은 없는 도구일 겁니다. "동영상 변환하려면 FFmpeg 쓰면 돼"라는 말은 흔히 듣지만, 막상 사용하려고 하면 복잡한 옵션들과 개념들에 막히기 쉽습니다. Igalia의 엔지니어가 작성한 'FFmpeg 101' 가이드는 바로 이 진입장벽을 낮추는 데 집중합니다.

핵심 개념: 컨테이너, 코덱, 스트림

FFmpeg을 이해하려면 먼저 세 가지 핵심 개념을 알아야 합니다. 첫째, 컨테이너(Container)는 MP4, MKV, WebM 같은 파일 포맷을 말합니다. 컨테이너는 영상 데이터 자체가 아니라 영상, 오디오, 자막 등 여러 스트림을 하나의 파일로 묶어주는 포장지 역할을 합니다. 둘째, 코덱(Codec)은 H.264, H.265(HEVC), VP9, AV1 같은 압축/해제 알고리즘입니다. 같은 MP4 파일이라도 내부에 H.264로 인코딩된 영상이 들어있을 수도 있고, H.265로 인코딩된 영상이 들어있을 수도 있습니다. 셋째, 스트림(Stream)은 하나의 컨테이너 안에 담긴 개별 데이터 트랙으로, 비디오 스트림, 오디오 스트림, 자막 스트림 등이 각각 존재합니다.

이 구분이 중요한 이유는 FFmpeg의 거의 모든 명령어가 이 세 개념을 축으로 동작하기 때문입니다. 예를 들어 "MP4 파일의 오디오만 추출해서 AAC로 재인코딩해줘"라는 작업은 컨테이너에서 오디오 스트림을 선택하고, 특정 코덱으로 인코딩하는 과정입니다.

기본 명령어 구조와 실전 활용

FFmpeg의 기본 명령어 구조는 ffmpeg -i input.mp4 output.avi처럼 간단해 보이지만, 실제로는 입력과 출력 사이에 수십 개의 옵션이 들어갈 수 있습니다. 가이드에서 강조하는 핵심 패턴을 몇 가지 정리하면 다음과 같습니다.

트랜스코딩(인코딩 변환): 가장 기본적인 사용 사례입니다. -c:v로 비디오 코덱을, -c:a로 오디오 코덱을 지정합니다. ffmpeg -i input.mkv -c:v libx264 -c:a aac output.mp4는 MKV 파일을 H.264 비디오와 AAC 오디오로 인코딩하여 MP4로 출력합니다.

스트림 복사: 인코딩을 변경하지 않고 컨테이너만 바꾸고 싶을 때는 -c copy를 사용합니다. 이렇게 하면 재인코딩 없이 빠르게 처리됩니다. 화질 손실도 없습니다.

필터: FFmpeg의 진짜 강력함은 필터 시스템에 있습니다. -vf(비디오 필터)와 -af(오디오 필터)를 사용해 크기 조절, 크롭, 속도 변경, 노이즈 제거, 색보정 등 다양한 처리를 파이프라인으로 연결할 수 있습니다. 예를 들어 -vf "scale=1280:720,fps=30"는 해상도를 720p로 줄이고 프레임레이트를 30fps로 맞춥니다.

2024년 기준, AV1과 하드웨어 가속

가이드가 2024년 시점에 작성된 만큼 최신 코덱과 하드웨어 가속에 대한 내용도 다루고 있습니다. AV1은 구글, 모질라, 시스코 등이 주도하는 로열티 프리 차세대 코덱으로, H.265 대비 약 30% 더 나은 압축 효율을 보여줍니다. 유튜브, 넷플릭스 등 주요 스트리밍 서비스가 이미 AV1을 적극 채택하고 있고, FFmpeg에서는 libaom-av1이나 SVT-AV1(libsvtav1) 인코더를 통해 사용할 수 있습니다.

하드웨어 가속도 중요한 주제입니다. CPU만으로 4K 영상을 인코딩하면 실시간의 몇 배에 달하는 시간이 걸릴 수 있지만, NVIDIA의 NVENC, Intel의 QSV(Quick Sync Video), AMD의 AMF 같은 GPU/하드웨어 인코더를 활용하면 속도가 극적으로 개선됩니다. FFmpeg에서 -c:v h264_nvenc 같은 방식으로 간단히 하드웨어 인코더를 지정할 수 있습니다.

경쟁 도구들과 비교

FFmpeg의 대안으로는 HandBrake(GUI 기반, FFmpeg을 백엔드로 사용), GStreamer(파이프라인 기반 멀티미디어 프레임워크), ImageMagick(이미지 특화) 등이 있습니다. 하지만 FFmpeg만큼 포맷 지원 범위가 넓고, CLI에서 유연하게 자동화할 수 있는 도구는 사실상 없습니다. 서버 사이드 미디어 처리 파이프라인을 구축한다면 FFmpeg은 거의 필수 선택지입니다.

재미있는 점은 많은 GUI 도구들이 내부적으로 FFmpeg을 호출한다는 것입니다. HandBrake뿐 아니라 VLC, OBS Studio 등도 FFmpeg의 라이브러리(libavcodec, libavformat 등)를 사용합니다. FFmpeg을 제대로 이해하면 이런 도구들의 동작 원리도 함께 파악할 수 있습니다.

한국 개발자에게 주는 시사점

미디어 관련 서비스를 개발하는 팀이라면 FFmpeg은 필수 도구입니다. 특히 UGC(사용자 생성 콘텐츠) 플랫폼, 교육 플랫폼, 라이브 스트리밍 서비스 등에서 업로드된 영상의 트랜스코딩, 썸네일 추출, 포맷 변환, HLS/DASH 세그멘팅 등 거의 모든 미디어 파이프라인 작업에 FFmpeg이 관여합니다.

또한 최근에는 AI 학습 데이터 전처리에서도 FFmpeg 활용이 늘고 있습니다. 대규모 비디오 데이터셋에서 프레임을 추출하거나, 특정 구간을 잘라내거나, 해상도를 통일하는 작업을 FFmpeg 파이프라인으로 자동화하는 것이 일반적입니다.

마무리

FFmpeg은 "알면 알수록 쓸모 있는" 도구의 대표격입니다. 기본 개념만 잡아두면 이후 필요할 때마다 옵션을 찾아 조합해 쓸 수 있으니, 한 번 시간을 내서 체계적으로 익혀보는 것을 추천합니다.

여러분은 FFmpeg을 주로 어떤 용도로 사용하고 계신가요? 혹시 자동화 파이프라인에 녹여서 쓰고 계신 분이 있다면 경험을 공유해주세요.


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

AI 도구, 직접 활용해보세요

AI 시대, 코딩으로 수익을 만드는 방법을 배울 수 있습니다.

AI 활용 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.