Post

FFmpeg 사용법

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 설치하기

설치 파일 다운로드하기

먼저 다음 링크에 접속하여 설치 파일을 다운로드합니다. 자신의 운영체제에 맞는 파일을 다운로드하면 됩니다.

Download FFmpeg

pic1

pic2

환경 변수 등록하기

다음과 같이 원하는 디렉토리에 압축 파일을 풀고 bin 폴더의 주소를 복사합니다. 저는 로컬 디스크(C:)를 선택했습니다.

pic3

이후 시스템 환경 변수 편집에 들어가서 다음과 같이 방금 복사한 bin 폴더의 주소를 환경 변수에 등록합니다.

pic4

명령 프롬프트에서 FFmpeg 버전 확인하기

FFmpeg가 잘 설치되었는지 확인하기 위해 명령 프롬프트에서 ffmpeg을 입력합니다.

1
ffmpeg

pic5

Step 2 - FFmpeg 사용 예시

이 문단에서는 FFmpeg 사용 예시에 대해 작성하였습니다.

파일 정보 확인

1
ffmpeg -i input.mp4

pic8

비디오 포맷 변환

1
ffmpeg -i input.mp4 output.webm

pic7

이미지 포맷 변환

1
ffmpeg -i input.jpg output.webp

pic6

비디오 특정 구간 자르기

1
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:25 output.mp4
  • -ss 00:00:10: 시작 시간
  • -to 00:00:25: 종료 시간

pic9

또는

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)

pic10

해상도 변경 (720p)

1
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4

pic11

또는

1
ffmpeg -i input.mp4 -s 1280x720 output.mp4

pic13

gif 생성

1
ffmpeg -i input.mp4 -vf "fps=15,scale=500:-1" output.gif
  • fps=15: 초당 15 프레임
  • scale=500:-1: 가로 500px, 비율 유지

pic12

Animated WebP 생성

1
ffmpeg -i output.webm -ss 00:00:02 -to 00:00:04 -loop 0 output.webp
  • -loop 0: 애니메이션이 무한 반복되도록 설정

WebM을 Animated WebP로 만들기

비디오에서 오디오 추출

1
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
  • -q:a 0: 최고 품질 오디오 유지
  • -map a: 오디오 스트림만 추출

pic14

여러 개의 비디오 병합

먼저 비디오 파일 목록을 담은 텍스트 파일을 생성합니다.

1
2
file input1.mp4
file input2.mp4

이후 다음 명령어를 입력하여 여러 개의 비디오를 병합할 수 있습니다.

1
ffmpeg -f concat -safe 0 -i file_list.txt -c copy output.mp4

pic15

여러 개의 오디오 병합

먼저 오디오 파일 목록을 담은 텍스트 파일을 생성합니다.

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 키를 입력합니다.

FFmpeg으로 Windows 화면 녹화

사용할 수 있는 옵션

옵션설명
-hide_bannerFFmpeg 정보를 출력하지 않습니다.
-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]지정된 시간(초 단위)만큼 인코딩합니다.

참고 자료

This post is licensed under CC BY 4.0 by the author.