FFmpeg 사용법
FFmpeg 설치 방법 및 사용법에 대해 정리한 페이지입니다.
Tags
FFmpge, file, video, audio, image
개요
FFmpeg 설치 방법 및 사용법에 대해 정리한 페이지입니다.
FFmpeg란?
FFmpeg
는 비디오, 오디오, 이미지를 처리하는 오픈소스 멀티미디어 프레임워크입니다. CLI로 사용할 수 있으며, 개발자들이 애플리케이션에 통합할 수 있는 라이브러리 집합으로도 구성되어 있습니다. FFmpeg
는 다양한 코덱(Codec)
과 포맷(Format)
을 지원하며, 다음과 같은 작업을 수행할 수 있습니다.
- 비디오, 오디오, 이미지 변환 (코덱 변경)
- 비디오 및 오디오 편집 (자르기, 병합, 필터 적용 등)
- 비디오 및 오디오 스트리밍
- 스크린 녹화 및 gif 생성
- 음성 및 영상 추출
- 해상도 변경 및 포맷 변환
FFmpeg의 특징
FFmpeg
의 특징은 다음과 같습니다.
다양한 포맷 지원
MP4, AVI, MKV, MOV, FLV, MP3, AAC, H.264, WEBP, WEBM 등 거의 모든 멀티미디어 형식과 코덱을 지원합니다.
Tips
ffmpeg -codecs 명령어로 지원하는 코덱 목록을 확인할 수 있습니다.
ffmpeg -formats 명령어로 지원하는 멀티미디어 형식을 확인할 수 있습니다.크로스 플랫폼(Cross-platform)
Windows, macOS, Linux 등 주요 운영체제에서 사용할 수 있습니다.
고급 기능
비디오 및 오디오 변환, 추출, 병합, 자르기, 필터 적용, 스트리밍 등이 가능합니다.
오픈 소스(Open Source)
LGPL, GPL 라이선스를 갖는 오픈 소스 프로젝트로 무료로 사용할 수 있습니다.
Step 1 - FFmpeg 설치하기
설치 파일 다운로드하기
먼저 다음 링크에 접속하여 설치 파일을 다운로드합니다. 자신의 운영체제에 맞는 파일을 다운로드하면 됩니다.
환경 변수 등록하기
다음과 같이 원하는 디렉토리에 압축 파일을 풀고 bin
폴더의 주소를 복사합니다. 저는 로컬 디스크(C:)
를 선택했습니다.
이후 시스템 환경 변수 편집
에 들어가서 다음과 같이 방금 복사한 bin
폴더의 주소를 환경 변수에 등록합니다.
명령 프롬프트에서 FFmpeg 버전 확인하기
FFmpeg가 잘 설치되었는지 확인하기 위해 명령 프롬프트에서 ffmpeg
을 입력합니다.
1
ffmpeg
Step 2 - FFmpeg 사용 예시
이 문단에서는 FFmpeg
사용 예시에 대해 작성하였습니다.
파일 정보 확인
1
ffmpeg -i input.mp4
비디오 포맷 변환
1
ffmpeg -i input.mp4 output.webm
이미지 포맷 변환
1
ffmpeg -i input.jpg output.webp
비디오 특정 구간 자르기
1
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:25 output.mp4
-ss 00:00:10
: 시작 시간-to 00:00:25
: 종료 시간
또는
1
ffmpeg -i input.mp4 -ss 00:00:10 -t 15 output.mp4
-ss 00:00:10
: 시작 시간-t 15
: 지속 시간 (15초, 00:00:10 ~ 00:00:25)
해상도 변경 (720p)
1
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
또는
1
ffmpeg -i input.mp4 -s 1280x720 output.mp4
gif 생성
1
ffmpeg -i input.mp4 -vf "fps=15,scale=500:-1" output.gif
fps=15
: 초당 15 프레임scale=500:-1
: 가로 500px, 비율 유지
Animated WebP 생성
1
ffmpeg -i output.webm -ss 00:00:02 -to 00:00:04 -loop 0 output.webp
-loop 0
: 애니메이션이 무한 반복되도록 설정
비디오에서 오디오 추출
1
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
-q:a 0
: 최고 품질 오디오 유지-map a
: 오디오 스트림만 추출
여러 개의 비디오 병합
먼저 비디오 파일 목록을 담은 텍스트 파일을 생성합니다.
1
2
file input1.mp4
file input2.mp4
이후 다음 명령어를 입력하여 여러 개의 비디오를 병합할 수 있습니다.
1
ffmpeg -f concat -safe 0 -i file_list.txt -c copy output.mp4
여러 개의 오디오 병합
먼저 오디오 파일 목록을 담은 텍스트 파일을 생성합니다.
1
2
3
4
5
file 1-25.wav
file 26-50.wav
file 51-75.wav
file 76-100.wav
file 100-118.wav
이후 다음 명령어를 입력하여 여러 개의 오디오를 병합할 수 있습니다.
1
ffmpeg -f concat -safe 0 -i file_list.txt -c copy output.wav
Windows에서 화면 녹화
1
ffmpeg -f gdigrab -framerate 30 -i desktop output.webm
-f gdigrab
: FFmpeg에서 지원하는 Windows 화면 녹화 장치-framerate 30
: 초당 30 프레임-i desktop
: 전체 화면을 녹화
화면 녹화를 중단하고 저장하려면 FFmpeg이 실행 중인 터미널에서 q
키를 입력합니다.
사용할 수 있는 옵션
옵션 | 설명 |
---|---|
-hide_banner | FFmpeg 정보를 출력하지 않습니다. |
-i [input] | 입력 파일을 지정합니다. |
-vcodec [codec] , -acodec [codec] 또는 -c:v [codec] , -c:a [codec] | 비디오 코덱, 오디오 코덱을 지정합니다. ffmpeg -encoders 명령어로 사용할 수 있는 코덱 종류를 확인할 수 있습니다. copy 로 지정하면 기존 스트림을 인코딩하지 않고 복사합니다. |
vf [filter] , -af [filter] | 비디오, 오디오에 필터를 적용합니다. |
-b:v [bitrate] , -b:a [bitrate] | 비디오, 오디오 비트레이트를 지정합니다. |
-crf [quality] | CRF(Constant Rate Factor) 는 비트레이트 대신 화질 기준으로 인코딩할 때 사용하는 옵션입니다. 기본값은 23 이며, 숫자가 낮을 수록 품질이 높아지고 파일 크기가 커집니다. |
-ss [time] | 지정된 시간(초 단위)만큼 건너뛰고 인코딩합니다. hh:mm:ss 방식으로도 표기할 수 있습니다. |
-to [time] | 지정된 시간(초 단위)까지만 인코딩합니다. hh:mm:ss 방식으로도 표기할 수 있습니다. |
-t [time] | 지정된 시간(초 단위)만큼 인코딩합니다. |