1. 제품
  2.   오디오
  3.   Python
  4.   FFmpeg

FFmpeg

 
 

오픈 소스 멀티미디어 처리 프레임워크

FFmpeg API를 통해 오디오 및 비디오 파일을 인코드, 디코드, 트랜스코드, 스트림 및 변환합니다.

FFmpeg이란 무엇인가요?

FFmpeg은 개발자가 오디오 및 비디오 콘텐츠를 녹화, 변환 및 스트리밍할 수 있도록 하는 선도적인 오픈 소스 멀티미디어 프레임워크입니다. libavcodec, libavformat, libavutil, libavfilter, libswscale, libswresample과 같은 포괄적인 라이브러리 세트를 포함하고 있어 다양한 멀티미디어 작업을 처리할 수 있는 강력한 도구를 제공합니다. 수백 개의 코덱과 포맷을 지원함으로써 FFmpeg은 비디오 편집 소프트웨어부터 스트리밍 서버, 미디어 플레이어에 이르기까지 수많은 애플리케이션에 활용됩니다.

FFmpeg은 유연성, 성능 및 활발한 커뮤니티 지원 덕분에 다양한 산업 분야에서 널리 채택되고 있습니다. 간단한 포맷 변환부터 복잡한 비디오 필터링 및 실시간 스트리밍까지 모든 작업을 처리합니다. 미디어 서버, 데스크톱 플레이어, 혹은 클라우드 기반 트랜스코딩 파이프라인을 구축하든, FFmpeg은 신뢰할 수 있고 고품질의 처리 기능을 제공합니다. ffmpeg, ffplay, ffprobe와 같은 명령줄 도구는 스크립트와 자동화 워크플로에 쉽게 통합할 수 있게 해 주며, C API와 바인딩(예: Python)은 깊은 프로그래밍 제어를 가능하게 합니다.

Previous Next

FFmpeg 시작하기

FFmpeg를 사용하려면 시스템의 패키지 관리자를 통해 설치하십시오(예: Ubuntu에서는 `apt install ffmpeg`, macOS에서는 `brew install ffmpeg`). 또는 공식 사이트에서 사전 빌드된 바이너리를 다운로드할 수 있습니다. 프로그래밍적으로 사용하려면 `pip install ffmpeg-python` 명령으로 Python 래퍼를 설치하거나 공식 C 라이브러리 헤더를 사용하십시오. FFmpeg는 [FFmpeg GitHub](https://github.com/FFmpeg/FFmpeg)에서도 사용할 수 있으며, 여기에서 소스 코드를 빌드하여 맞춤 구성을 할 수 있습니다. 가벼운 용량과 크로스 플랫폼 지원 덕분에 데스크톱, 서버 및 임베디드 배포에 이상적입니다.

패키지 관리자를 통해 FFmpeg 설치하기

# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg

# macOS (Homebrew)
brew install ffmpeg

# Python wrapper
pip install ffmpeg-python

미디어를 다양한 포맷으로 변환하기

FFmpeg는 수백 가지 형식과 코덱 간에 미디어 파일을 변환하는 데 뛰어납니다. MP4에서 WebM으로 비디오를 트랜스코딩하거나, 비디오 파일에서 오디오를 추출하거나, 재인코딩 없이 컨테이너 형식을 변경할 수 있습니다(스트림 복사). 지능적인 기본 설정은 높은 품질을 보장하고, 고급 옵션을 통해 비트레이트, 해상도, 프레임 레이트 및 코덱 매개변수를 미세 조정할 수 있습니다. 웹 스트리밍, 아카이브 또는 특정 장치에서 재생을 위해 콘텐츠를 준비하든, FFmpeg는 출력 품질과 호환성을 정밀하게 제어합니다. 명령줄 인터페이스는 변환 중에 크기 조정, 자르기 및 효과 적용을 위한 복잡한 필터 체인을 지원합니다.

FFmpeg으로 MP4를 WebM으로 변환하는 방법?

ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm

실시간 스트리밍 및 라이브 방송

FFmpeg은 RTMP, HLS, SRT와 같은 프로토콜을 통해 실시간 미디어를 수집, 트랜스코딩 및 스트리밍하는 것을 지원합니다. 웹캠, 마이크 또는 네트워크 소스에서 캡처하여 YouTube, Twitch 또는 맞춤형 RTMP 서버와 같은 플랫폼으로 스트림을 전송할 수 있습니다. 저지연 옵션과 적응형 비트레이트 스트리밍을 통해 FFmpeg은 이벤트, 게임 및 감시용 실시간 방송 파이프라인을 구동합니다. 다중 입력을 처리하고 그래픽을 오버레이하며 실시간 필터를 적용하는 능력 덕분에 전문가 수준의 스트리밍 설정에 이상적입니다. 또한 출력물을 DASH/HLS로 세분화하여 모바일 및 웹 클라이언트에서 적응형 재생이 가능하도록 할 수 있습니다.

YouTube Live에 비디오 파일을 스트리밍하는 방법?

ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -maxrate 3000k -bufsize 6000k -g 50 -c:a aac -b:a 160k -f flv "rtmp://a.rtmp.youtube.com/live2/your_stream_key"

비디오 필터링 및 후처리

FFmpeg의 libavfilter 프레임워크는 필터들의 방향성 비순환 그래프를 통해 강력한 실시간 비디오 필터링을 가능하게 합니다. 자르기, 스케일링, 회전, 디인터레이스, 노이즈 제거, 워터마크 오버레이, 텍스트 추가, 색상 조정, 그리고 슬로우 모션이나 타임랩스와 같은 복잡한 효과 적용 등을 전체 스트림을 다시 인코딩하지 않고 수행할 수 있습니다. 필터들은 다단계 처리를 위해 체인으로 연결될 수 있으며, 하드웨어 가속(NVENC, VAAPI, VideoToolbox 등)을 통해 최신 GPU에서 성능을 보장합니다. 이는 비디오 편집자, 콘텐츠 제작자, 그리고 시각적 향상이나 포맷 정규화가 필요한 미디어 처리 파이프라인을 구축하는 개발자들에게 FFmpeg을 필수 도구로 만듭니다.

비디오를 자르고, 스케일링하고, 워터마크를 추가하는 방법?

ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v]crop=1280:720:0:0[scaled];[scaled][1:v]overlay=10:10" -c:a copy output.mp4

메타데이터 및 자막 추출 및 조작

FFmpeg는 미디어 파일에 포함된 메타데이터(태그)와 자막에 대한 완전한 제어를 제공합니다. 간단한 명령을 사용하여 메타데이터(예: 제목, 아티스트, 앨범, GPS 데이터)를 추출, 편집 또는 제거하거나, SRT, ASS, VTT와 같은 형식 간에 자막을 변환할 수 있습니다. 자막을 비디오에 직접 삽입하거나 별도의 트랙으로 포함하는 것을 지원합니다. 접근성 및 현지화 워크플로를 위해 FFmpeg는 자막 파일의 일괄 처리, 타이밍 조정 및 언어 트랙 관리를 허용합니다. 이는 자막 현지화, 미디어 자산 관리 및 메타데이터 포함을 요구하는 방송 표준 준수에 이상적입니다.

비디오 파일에서 자막을 추출하는 방법?

ffmpeg -i input.mkv -map 0:s:0 -c:s srt output.srt
 한국인