윈도우에서 FFmpeg 동영상 변환도구 사용하기 설치 및 기본 사용법

개인적으로 현재 운영 중인 블로그에서는 용량 대비 효율이 가장 높아 이미지 파일과 애니메이션 파일을 모두 webp로 사용 중인데요. 일반적으로 이미지 파일은 webp, png, jpeg를 사용하고 영상(애니메이션) 파일의 경우 mp4를 대부분 사용하고 최근에는 webm 형식도 자주 사용하려고 합니다.

필자와 같이 영상을 애니메이션 webp로 변환해서 사용하는 경우는 많지 않아 이런 형태로의 변환을 공식적으로 지원하는 도구 또한 당연히 마땅치 않습니다. 지원이 된다고 하더라도 macOS와 Windows 그리고 Linux 환경에서 모두 사용할 수도 없기 때문에 여러 플랫폼을 왔다갔다 한다면 더욱 대안이 없는데, 이 경우 오디오와 비디오 파일을 처리하기 위한 오픈 소스 멀티미디어 프레임워크인 ffmpeg를 사용하면 이런 불편한 점들을 모두 해소할 수 있습니다.

FFmpeg은 다양한 오디오 및 비디오 포맷을 지원하며, MP3, AAC, OGG, WAV, H.264, H.265, MPEG-4 등의 인코딩과 디코딩을 처리할 수 있습니다. 또한, FFmpeg은 필터링 기능을 통해 영상의 크기 조정, 잘라내기, 회전, 색상 조정, 효과 적용 등의 작업을 수행할 수 있습니다.

그리고 FFmpeg는 기본적으로 오픈 소스이기 때문에 무료로 이용할 수 있어 다양한 멀티미디어 작업을 처리하기 위해 프로그래머, 비디오 편집자, 개발자, 시스템 관리자 등 다양한 사용자들에게 널리 사용되고 있습니다. 메인으로 사용하던 PC를 재설치하면서 설정 과정을 기록하기 위해 기본적인 설치 및 사용 방법을 Windows 환경을 기준으로 정리해 보도록 하겠습니다.

아래 설명은 comeinsidebox.com 에서 테스트 및 검증 후 작성 된 내용이지만 이것이 본문의 내용의 정확성이나 신뢰성에 대해 보증을 하는 것은 아니니 단순 하게 참고용으로 확인바랍니다.

튜토리얼 환경: 윈도우 10 pro (빌드: 19044.2728), FFmpeg 6.0v

다운로드 및 설정

FFmpeg는 일반적인 설치 프로그램과 같이 컴퓨터에 직접 설치하는 것이 아닌 미리 컴파일된 실행 파일(ffmpeg.exe)을 다운로드하여 이 실행 파일 자체를 원하는 위치로 이동시키는 것으로 설치 과정은 완료됩니다. 그 후에는 해당 위치에 있는 ffmpeg.exe 파일을 실행하여 FFmpeg 기능을 사용할 수 있습니다.

윈도우 10 이 pc를 초기화하는 동안 문제가 발생했습니다. 오류 해결

다운로드

공식 홈페이지를 통해서 무료로 배포하고 있어 손쉽게 다운로드할 수 있습니다.

FFmpeg-공식-사이트-검색-후-접속
FFmpeg 공식 사이트 검색 후 접속
  1. 구글, 네이버와 같이 본인이 자주 사용하는 검색엔진을 통해서 FFmpeg라고 검색 합니다.
  2. 검색 결과 중 상단에 노출 중인 FFmpeg 링크를 찾아 클릭하면 해당 사이트로 접속 할 수 있습니다. 아래 바로가기를 이용하면 좀 더 빠르게 이동 할 수 있습니다.
바로가기: FFmpeg
Download-버튼-클릭
Download 버튼 클릭
  1. 사이트에 접속하면 바로 Download 버튼을 찾을 수 있으니 버튼을 클릭합니다.
Windows-EXE-File-다운로드-링크-클릭
Windows EXE File 다운로드 링크 클릭
  1. 다운로드 페이지로 이동되고 여기서 다양한 운영체제 별 로고 이미지를 확인할 수 있습니다. Windows 사용자는 가운데 Windows 로고 에 마우스를 올리거나 클릭 시 바로 아래 두 개의 다운로드 미러 사이트가 표시됩니다. 아래는 github로 이어지는 링크이고 본문에서는 상단 링크를 사용합니다.
최신-버전-다운로드-가능
최신 버전 다운로드 가능
  1. 최신 개발버전인 git master 빌드 등 다양한 방식으로 배포가 이루어 지는데, 일반적인 경우 아래로 조금 스크롤하면 release builds 섹션에서 압축 파일 형태로 다운로드할 수 있습니다. 파일은 크게 아래 두가지 종류를 확인할 수 있으며, 기본적인 작업만을 수행할 예정이라면 ffmpeg-release-essentials를 선택하는 것이 좋고, 추가적인 기능이나 형식의 지원이 필요 시 ffmpeg-release-full을 선택할 수 있습니다. 본문에서는 ffmpeg-release-full 파일로 진행합니다.
    • ffmpeg-release-essentials: 기본적인 필수 기능과 라이브러리만 포함하고 있습니다. 이는 가장 기본적인 기능을 제공하며, 파일 변환, 크기 조정, 비디오 및 오디오 처리 등의 작업을 수행하는 데에는 충분합니다. 추가적인 기능이 필요하지 않은 경우에는 이 버전을 사용해도 무리가 없습니다.
    • ffmpeg-release-full: ffmpeg-release-essentials보다 더 많은 기능과 라이브러리를 포함하고 있습니다. 이는 고급 기능이나 추가적인 형식 또는 코덱의 지원이 필요할 때에 사용됩니다. 예를 들어, HEVC(H.265) 코덱, VP9 코덱, 추가 필터 및 옵션 등이 포함되어 있습니다.
참고: ffmpeg-release-full 버전의 경우 zip 파일이 아닌 7z 파일만을 제공하는데 현재 Windows에서 7z을 지원하지 않으니 Windows에서 압축을 해제하려면 반디집을 사용하거나 또는 7z을 설치해야 합니다.
FFmpeg-실행-파일-폴더-이동
FFmpeg 실행 파일 폴더 이동
  1. 다운로드한 FFmpeg 파일인 ffmpeg-2023-05-31-git-baa9fccf8d-full_build이런 형식으로 되어 있습니다. 이 폴더는 아무데나 두어도 실행하고 사용하는데 상관은 없지만, Windows 시스템에서 자동으로 FFmpeg 실행 파일을 찾을 수 있도록 C:\Program Files 경로에 두는 것이 여러모로 효율적입니다.
참고: 실행 파일 자체는 ffmpeg.exe 파일이며 이 파일의 경로는 추후 다시 사용해야 하니 기억해 둡니다. 본문의 설명을 기준으로 C:\Program Files\ffmpeg-2023-05-31-git-baa9fccf8d-full_build\bin와 같은 형식이 됩니다.

환경 변수 등록

필수 사항은 아니지만 FFmpeg 경로를 환경 변수에 등록하면 FFmpeg 를 보다 쉽게 실행하고 사용할 수 있습니다. 전술한대로 FFmpeg는 일반적인 설치 프로그램과는 다르게 구성되어 있어서 자동으로 환경 변수에 등록되지 않기 때문에 수동으로 등록하는 과정이 필요하며 등록 과정은 다음과 같습니다.

환경 변수에 등록하는 이유

Windows의 환경 변수는 시스템 및 사용자 설정에 사용되는 값을 저장하는 변수입니다. 이 변수들은 Windows 운영 체제에서 프로그램이 실행될 때 참조되어 경로, 설정 및 기타 정보를 제공합니다.

  • 실행 경로 간소화: 환경 변수를 등록하면 FFmpeg 실행 파일의 전체 경로를 입력하지 않고도 어디서나 FFmpeg을 실행할 수 있습니다. 명령 프롬프트나 PowerShell 창을 열어 간편하게 FFmpeg을 실행할 수 있습니다.
  • 다른 애플리케이션과의 통합: 환경 변수를 등록하면 다른 애플리케이션에서도 FFmpeg을 호출할 수 있습니다. 예를 들어, 스크립트, 프로그램 또는 다른 멀티미디어 도구에서 FFmpeg을 사용할 수 있습니다.
  • 업데이트 용이성: FFmpeg의 새 버전을 설치할 때마다 경로를 수동으로 변경할 필요 없이 환경 변수만 업데이트하면 됩니다. 이로써 업데이트 프로세스가 간소화되고 관리가 용이해집니다.

제어판-실행
제어판 실행
  1. 작업 표시줄에 위치한 검색 필드를 클릭한 뒤 제어판 라고 입력합니다. 검색 결과에서 가장 정확 항목에 명령 프롬프트가 검색 되면, 오른쪽 하위 실행 옵션에서 열기 을 선택 합니다.
제어판-시스템-이동
제어판 시스템 이동
  1. 제어판이 실행되면 보기 기준:을 작은 아이콘 또는 큰 아이콘으로 두고 시스템을 선택합니다.
Windows-설정의-고급-시스템-설정-링크-클릭
Windows 설정의 고급 시스템 설정 링크 클릭
  1. Windows 11 기준 설정 패널로 이동 되는데 여기서 고급 시스템 설정 링크를 클릭합니다.
시스템-속성-환경-변수-클릭
시스템 속성 환경 변수 클릭
  1. 시스템 속성 패널이 열리면 상단 탭을 고급 으로 전환 후 환경 변수(N) 버튼을 클릭합니다.
시스템-변수의-path-선택-후-편집-클릭
시스템 변수의 path 선택 후 편집 클릭
  1. 환경 변수.옵션 패널이 추가로 실행됩니다. 하단 시스템 변수(S)에서 Path 를 찾아 선택 후 값 수정을 위해 편집(I) 을 클릭합니다.
새-환경-변수-추가
새 환경 변수 추가
  1. 환경 변수 편집 패널이 하나 더 실행 됩니다. 오른쪽 상단의 새로 만들기(N) 버튼을 눌러 필드를 추가한 뒤, 변수 값에 FFmpeg 실행 파일이 있는 폴더의 경로를 추가합니다. 동일 버전을 사용하고 본문 설명을 그대로 따라가고 있다면 C:\Program Files\ffmpeg-2023-05-31-git-baa9fccf8d-full_build\bin 라고 작성합니다. 완료되었다면 현재 열려진 창을 모두 닫아 줍니다.

환경 변수는 일반적으로 시스템 재시작없이 사용할 수 있지만 필자의 경우 Windows를 재시작 후 정상적으로 동작했습니다. 그러니 동작하지 않는 다면 Windows를 재부팅합니다.

참고: 위 제어판을 이용한 방식외에 명령 프롬프트 또는 PowerShell에서 명령 줄을 통해 환경 변수를 등록할 수도 있습니다. 명령 프롬프트에서는 setx MY_PATH "C:\myfolder"와 같이 setx 변수명 "경로" 형식으로 사용합니다.
브라우저 시작 화면 비율 원하는 값으로 정해서 사용하는 방법

FFmpeg 사용하기

이제 FFmpeg를 사용할 준비는 모두 완료되었습니다. 명령 프롬프트 또는 PowerShell과 같은 명령줄 도구에서 FFmpeg 명령과 다양한 옵션들로 동영상을 손쉽게 변환할 수 있습니다.

기본 구문

ffmpeg [global_options] [input_options] -i input_file [output_options] output_file

FFmpeg는 기본적으로 위와 같은 형식으로 사용합니다. 여기서 input_file은 변환할 원본 파일의 경로를, output_file은 변환된 파일의 저장 경로를 나타내며, 아래는 몇 가지 자주 사용하는 옵션과 설명입니다.

  • -i input_file: 입력 파일을 지정합니다.
  • -c:v codec: 비디오 코덱을 선택합니다.
  • -c:a codec: 오디오 코덱을 선택합니다.
  • -b:v bitrate: 비디오의 비트레이트를 설정합니다.
  • -b:a bitrate: 오디오의 비트레이트를 설정합니다.
  • -r framerate: 출력 비디오의 프레임레이트를 설정합니다.
  • -s resolution: 출력 비디오의 해상도를 설정합니다.
  • -ss position: 입력 파일에서 변환 시작 지점을 설정합니다.
  • -t duration: 변환할 지속 시간을 설정합니다.
  • -vf filtergraph: 비디오 필터 그래프를 적용합니다.
  • -af filtergraph: 오디오 필터 그래프를 적용합니다.
  • -preset preset: 변환의 품질과 속도를 제어하는 프리셋을 선택합니다.
  • -crf value: 고정 비트레이트 대신 비율로 압축 품질을 설정합니다.이외에도 FFmpeg는 다양한 옵션들을 제공하고 있으니 필요한 경우 공식 문서를 참조합니다.
윈도우 11 작업 표시줄 왼쪽 오른쪽 위로 이동하는 방법들

사용 예시

위 기본 구문과 옵션을 참고해 필자가 주로 사용하는 명령과 실질적으로 사용하는 순서를 예시 명령과 함께 안내합니다.

실행-도구로-명령-프롬프트-실행
실행 도구로 명령 프롬프트 실행
  1. 검색 또는 실행 창을 이용해 명령 프롬프트를 실행합니다. FFmpeg는 일반권한에서도 문제없이 사용할 수 있습니다.
  1. 다음 명령을 명령 줄에 작성하거나 붙여넣기 후 Enter키 로 실행합니다. FFmpeg를 이용해서 .wmv형식의 파일을 .webp형식으로 변환하는 예시 명령입니다. 명령 실행 후 파일 또는 요구조건에 따라 변환 작업이 오래 걸리는 경우가 있으니 작업이 모두 완료될 때까지 기다려야 합니다.
ffmpeg -i "C:\Users\%userprofile%\Desktop\test.wmv" -vf "scale=700:-1" -compression_level 70 -c:v libwebp -pix_fmt yuv420p -lossless 0 "C:\Users\%userprofile%\Desktop\wmvtowebp.webp"

사용된 옵션은 다음과 같습니다.

  • -i "C:\Users\%userprofile%\Desktop\*.wmv": 입력 파일을 지정하는 옵션입니다. 해당 경로에서 확장자가 .wmv인 모든 파일을 입력으로 사용합니다. %userprofile%은 현재 사용자의 프로필 디렉터리 경로를 나타내는 환경 변수이며 환경 변수에 등록되지 않았거나 동작하지 않는 경우 실제 사용 중인 이름으로 대체합니다.
  • -vf "scale=700:-1": 비디오 필터 옵션입니다. 이 옵션은 입력된 비디오의 크기를 조정하는데 사용됩니다. 여기서는 너비를 700 픽셀로 고정하고, 높이는 비율에 맞게 자동 조정합니다.
  • -compression_level 70: 웹피 포맷의 압축 레벨을 설정하는 옵션입니다. 값이 높을수록 압축률이 높아지고, 파일 크기는 작아지지만 화질은 약간 저하될 수 있습니다. 여기서는 압축 레벨을 70으로 설정했습니다.
  • "C:\Users\%userprofile%\Desktop\wmvtowebp.webp": 출력 파일의 경로와 이름을 지정하는 옵션입니다. 변환된 파일은 해당 경로에 webp 형식으로 저장됩니다.

만약 단일 파일 형식이 아닌 여러 파일을 대상으로 변환을 하고 싶다면 다음과 같이 사용합니다.

for %i in (C:\Users\%userprofile%\Desktop\*.wmv C:\Users\%userprofile%\Desktop\*.mp4 C:\Users\%userprofile%\Desktop\*.gif) do ffmpeg -i "%i" -vf "scale=700:-1" -q:v 70 "C:\Users\%userprofile%\Desktop\webp70_%~ni.webp"

앞서 설명된 내용은 제외하고 추가로 사용된 옵션은 다음과 같습니다.

  • for %i in (C:\Users\%userprofile%\Desktop\*.wmv C:\Users\%userprofile%\Desktop\*.mp4 C:\Users\%userprofile%\Desktop\*.gif) do: 반복문을 설정하는 명령입니다.
  • ffmpeg -i "%i" -vf "scale=700:-1" -q:v 70: FFmpeg을 실행하는 명령입니다. -i "%i"는 현재 반복되는 파일을 입력 파일로 사용한다는 것을 나타냅니다. -vf "scale=700:-1"은 비디오 필터 옵션으로, 입력된 비디오의 크기를 조정합니다. 여기서는 너비를 700 픽셀로 고정하고, 높이는 비율에 맞게 자동 조정합니다. -q:v 70은 웹피 포맷의 압축 레벨을 설정하는 옵션으로, 여기서는 압축 레벨을 70으로 설정했습니다.
  • "C:\Users\%userprofile%\Desktop\webp70_%~ni.webp": 출력 파일의 경로와 이름을 지정하는 옵션입니다. %~ni는 변경 전 원본 파일의 이름 추출하여 사용하는 것이며, 파일이름에 webp70_를 접두어로 사용하고 싶다면 이렇게 원본 파일 이름과 조합하여 출력 파일의 이름을 설정합니다. 파일은 해당 경로에 webp 형식으로 저장됩니다.

배치파일

FFmpeg를 사용해 대량의 영상을 변환하는 목적이거나 자주 사용하지 않는다면 명령 줄에서도 전혀 문제가 되지 않지만, 만약 자주 영상을 변환해야 한다면 매번 명령어를 작성하고 입력하는 것은 상당히 번거로울 수 있습니다. 이 경우 Windows에서 batch 파일을 만들어 두면 파일을 바로 실행하거나 가기 키로 등록해서 손쉽게 영상을 변환할 수 있습니다.

batch-명령-작성-및-저장
batch 명령 작성 및 저장

메모장이나 자주 사용하는 에디터를 열고 다음과 같이 작성 후 .bat 확장자로 저장한 뒤 파일을 실행하면 바로 변환 작업이 이루어지게 됩니다. batch 파일 더 알아보기

@echo off
setlocal

set "input_path=C:\Users\%userprofile%\Desktop"
set "output_path=C:\Users\%userprofile%\Desktop"

for %%i in ("%input_path%\*.wmv" "%input_path%\*.mp4" "%input_path%\*.gif") do (
    ffmpeg -i "%%i" -vf "scale=700:-1" -q:v 70 "%output_path%\webp70_%%~ni.webp"
)
endlocal

아래와 같이 여러 옵션을 사전 정의하고 선택해서 변환도 가능합니다. 필자의 경우도 이 방식으로 사용하고 있으며 보다 디테일하게 구분해 여러 파일과 상황에서 모두 사용할 수 있도록 해 두었습니다.

@echo off

echo 1. Convert to webp
echo 2. Convert to webm
echo 3. Convert to mp4

set /p option=Enter your choice (1-3): 

if "%option%"=="1" (
    for %%i in (%userprofile%\Desktop\*.wmv %userprofile%\Desktop\*.mp4 %userprofile%\Desktop\*.gif) do (
        ffmpeg -i "%%i" -vf "scale=700:-1" -q:v 70 "%userprofile%\Desktop\webp70_%%~ni.webp"
    )
) else if "%option%"=="2" (
    for %%i in (%userprofile%\Desktop\*.wmv %userprofile%\Desktop\*.mp4 %userprofile%\Desktop\*.gif %userprofile%\Desktop\*.webp) do (
        ffmpeg -i "%%i" -c:v libvpx-vp9 -b:v 0 -crf 30 -qmin 0 -qmax 63 "%userprofile%\Desktop\webm_%%~ni.webm"
    )
) else if "%option%"=="3" (
    for %%i in (%userprofile%\Desktop\*.wmv %userprofile%\Desktop\*.mp4 %userprofile%\Desktop\*.gif %userprofile%\Desktop\*.webp) do (
        ffmpeg -i "%%i" -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k "%userprofile%\Desktop\mp4_%%~ni.mp4"
    )
) else (
    echo Invalid option
)

exit
윈도우10 부팅 시 검은 화면에 마우스 커서만 나오는 경우 해결 방법

마치며

윈도우에서 동영상 변환도구인 FFmpeg를 사용하기 위해 다운로드 후 기본적인 사용법까지 모두 정리해 보았습니다. FFmpeg는 강력하고 유용한 도구이지만, 다양한 옵션과 매개변수를 가진 복잡한 명령어를 사용하기 때문에 명령어 구문을 정확하게 작성해야 하며, 올바른 옵션과 인수를 사용해야 합니다. 오타나 잘못된 구문은 실행 오류를 일으킬 수 있어 초보자에게는 어렵거나 불편하게 여겨질 수 있습니다.

그래도 FFmpeg는 영상 및 오디오 처리를 위한 다양한 기능과 필터를 제공해 크기 조정, 자르기, 회전, 필터 적용, 음량 조절 등의 작업을 수행할 수 있으며, 고급 압축 알고리즘과 최적화된 처리 방법을 사용하여 높은 품질과 성능을 동시에 유지할 수 있으니 초반 진입만 성공하면 여러 플랫폼에서 비디오 및 오디오 처리, 인코딩, 디코딩, 포맷 변환 등의 작업을 수행하는 훌륭한 도구를 얻게 될 것 입니다.

관련 글

댓글로 남기기 어려운 내용은 Contact Form 에서 개별적으로 문의 할 수 있습니다. 해당 글과 연관 된 내용은 Copy를 이용해 현재 페이지의 주소를 복사 후 문의 폼에 입력시 보다 정확한 답을 얻을 수 있습니다.

Leave a Comment