大大小小 ACTIVITIES

대대소소의 소식을 전합니다.

ABOUT US

블로거 대대소소가 운영하는 블로그입니다. 다양한 정보와 인사이트를 공유합니다.

INNOVATION

최신 기술과 트렌드를 통해 혁신적인 컨텐츠를 제공합니다.

CONTENT

유용하고 흥미로운 컨텐츠를 지속적으로 업데이트합니다.

ffmpeg-python 설치부터 활용까지! Python 동영상 편집 가이드

안녕하세요! 요즘 Python으로 동영상 자동 편집 프로젝트를 진행하고 있는데요, 처음에 FFmpeg 명령어 때문에 진짜 많이 헤맸거든요 😅

터미널에서 긴 명령어 쳐가면서 "이걸 어떻게 자동화하지?"라고 고민하다가 ffmpeg-python이라는 라이브러리를 발견했어요! 근데 이것도 처음 설치할 때 삽질을 좀 했더라고요 ㅋㅋ

그래서 제가 겪었던 시행착오들과 해결 방법을 정리해봤어요. 혹시 저처럼 Python으로 동영상 처리하려다 막막해하시는 분들께 도움이 되면 좋겠어요! 🎥

📋 목차 (급한 분들은 2단계부터!)

  1. ffmpeg-python이 뭐예요? (왜 써야 하는지)
  2. 1단계: FFmpeg 설치하기 (이거 안 하면 100% 에러나요!)
  3. 2단계: ffmpeg-python 설치하기 (진짜 설치는 여기서!)
  4. 제대로 설치됐는지 확인하기
  5. 실전 예제로 배우기
  6. 자주 만나는 에러 해결법 (제가 다 겪어봤어요 ㅠㅠ)
  7. 고급 활용 팁

🤔 1. ffmpeg-python이 뭐예요?

처음에 저는 동영상 처리하려고 FFmpeg 명령어를 직접 쳤거든요. 근데 이게 진짜...

 
 
bash
ffmpeg -i input.mp4 -vf "scale=1920:1080,hflip" -c:v libx264 -preset fast output.mp4

이런 식으로 명령어가 엄청 길고 복잡해요 😱 하나만 바꾸려 해도 전체 명령어를 다시 써야 하고...

ffmpeg-python은 이런 복잡한 FFmpeg 명령어를 Python 코드로 쉽게 쓸 수 있게 해주는 라이브러리예요!

✅ 장점이 뭐냐면:

  • Python 코드로 FFmpeg 기능 사용 가능 (자동화 끝!)
  • 복잡한 필터 체인도 직관적으로 구성
  • 에러 처리가 Python 스타일로 깔끔함
  • 반복 작업 자동화하기 딱 좋아요

⚠️ 주의할 점:

  • ffmpeg-python은 래퍼 라이브러리예요 (FFmpeg가 먼저 설치되어 있어야 함!)
  • 이거 모르고 pip install만 했다가 저처럼 에러 만나실 거예요 ㅠㅠ

🛠️ 2. 1단계: FFmpeg 먼저 설치하기 (진짜 중요!)

제가 첫 번째로 실수한 부분이에요. pip install ffmpeg-python만 하면 되는 줄 알고 바로 설치했다가...

 
 
python
FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg'
```

이런 에러 떴어요 😭 알고 보니 **FFmpeg 프로그램 자체**를 먼저 설치해야 하더라고요!

### 💻 운영체제별 설치 방법

#### Windows 사용자 (제가 쓰는 방법!)

처음에는 복잡해 보였는데, 생각보다 간단해요:

**방법 1: 직접 다운로드 (추천!)**

1. [FFmpeg 공식 사이트](https://ffmpeg.org/download.html)에서 Windows 빌드 다운로드
2. `ffmpeg-release-full.7z` 같은 파일을 받으실 거예요
3. 적당한 곳에 압축 해제 (저는 `C:\ffmpeg`에 풀었어요)
4. **환경 변수 설정이 핵심이에요!** 👇

**환경 변수 PATH 추가하는 법** (이거 꼭 하세요!):
```
1. 윈도우 검색창에 "환경 변수" 입력
2. "시스템 환경 변수 편집" 클릭
3. 환경 변수 버튼 → Path 선택 → 편집
4. 새로 만들기 → C:\ffmpeg\bin 추가
5. 확인 누르고 터미널 재시작!

방법 2: Chocolatey 사용 (개발자라면 이게 편해요)

 
 
bash
choco install ffmpeg

훨씬 간단하죠? 근데 Chocolatey가 설치되어 있어야 해요.

macOS 사용자

맥은 진짜 간단해요! Homebrew만 있으면 끝:

 
 
bash
brew install ffmpeg

저는 맥북에서는 이렇게 설치했는데 30초 만에 끝나더라고요 👍

MacPorts 쓰시는 분들은:

 
 
bash
sudo port install ffmpeg

Linux (Ubuntu/Debian) 사용자

리눅스는 더 간단해요:

 
 
bash
sudo apt update
sudo apt install ffmpeg

✅ 설치 확인하기 (꼭 해보세요!)

터미널이나 명령 프롬프트를 새로 열고 (이게 중요해요!) 다음 명령어 입력:

 
 
bash
ffmpeg -version
```

**성공 예시:**
```
ffmpeg version 4.4.2 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11.2.0 (Ubuntu 11.2.0-19ubuntu1)
```

이런 식으로 버전 정보가 쭉 나오면 성공! 🎉

**❌ 실패 예시:**
```
'ffmpeg'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.

이렇게 나오면 환경 변수 PATH 설정이 안 된 거예요. 위에 환경 변수 설정 부분 다시 확인해 주세요!

💡 제가 겪은 문제: 처음에 환경 변수 추가하고 바로 터미널에서 확인했다가 안 됐어요. 알고 보니 터미널을 재시작해야 하더라고요! 이거 모르고 1시간 헤맸어요 ㅋㅋ


📦 3. 2단계: ffmpeg-python 설치하기

FFmpeg 설치 확인했으면 이제 진짜 설치할 차례예요! 이건 진짜 간단해요:

 
 
bash
pip install ffmpeg-python

끝! 😄

⚠️ 자주 하는 실수들 (저도 했어요!)

❌ 실수 1: 잘못된 패키지 설치

 
 
bash
pip install ffmpeg  # 이거 아님!
pip install python-ffmpeg  # 이것도 아님!

✅ 정확한 명령어:

 
 
bash
pip install ffmpeg-python  # 이게 맞아요!

처음에 저는 pip install ffmpeg로 설치했다가 전혀 다른 패키지가 깔렸어요 ㅠㅠ

❌ 실수 2: 가상환경 문제

프로젝트마다 가상환경 쓰시는 분들 많으시죠? 저는 가상환경 활성화 안 하고 설치해서 나중에 import가 안 됐어요:

 
 
bash
# 가상환경 있다면 먼저 활성화!
source venv/bin/activate  # Mac/Linux
.\venv\Scripts\activate  # Windows

# 그 다음에 설치
pip install ffmpeg-python

✅ 4. 제대로 설치됐는지 확인하기

Python 인터프리터를 열어서 확인해봅시다:

 
 
python
import ffmpeg
print(ffmpeg.__version__)

에러 없이 버전이 나오면 성공! 🎊

간단한 테스트 코드

동영상 파일 하나 준비해서 (아무 mp4 파일이나 test.mp4로 이름 변경) 다음 코드 실행해 보세요:

 
 
python
import ffmpeg

# 동영상 정보 가져오기
probe = ffmpeg.probe('test.mp4')
video_info = next(s for s in probe['streams'] if s['codec_type'] == 'video')
print(f"해상도: {video_info['width']}x{video_info['height']}")
print(f"코덱: {video_info['codec_name']}")

이게 잘 실행되면 완벽하게 설치된 거예요! 👍


🎨 5. 실전 예제로 배우기

이제 진짜 쓸모 있는 예제들을 해볼게요! 제가 실제 프로젝트에서 자주 쓰는 것들이에요.

📌 예제 1: 동영상 좌우 반전 (제일 간단해요!)

 
 
python
import ffmpeg

# input.mp4를 좌우 반전해서 output.mp4로 저장
(
    ffmpeg
    .input('input.mp4')
    .hflip()  # 수평 반전
    .output('output.mp4')
    .run()
)

처음에 이 코드 보고 "뭐야 이게 다야?" 했어요 ㅋㅋ 진짜 간단하죠?

📌 예제 2: 동영상 리사이즈 (썸네일 만들 때 유용!)

 
 
python
import ffmpeg

(
    ffmpeg
    .input('input.mp4')
    .filter('scale', 1280, 720)  # 1280x720으로 리사이즈
    .output('resized.mp4')
    .run()
)

저는 유튜브 영상 만들 때 이거 자주 써요!

📌 예제 3: 동영상 자르기 (특정 구간만 추출)

 
 
python
import ffmpeg

(
    ffmpeg
    .input('input.mp4', ss=10, t=30)  # 10초부터 30초 동안
    .output('cut.mp4')
    .run()
)

💡 팁: ss는 시작 시간(초), t는 지속 시간(초)이에요!

📌 예제 4: 동영상 + 오디오 합치기

 
 
python
import ffmpeg

video = ffmpeg.input('video.mp4')
audio = ffmpeg.input('audio.mp3')

(
    ffmpeg
    .concat(video, audio, v=1, a=1)
    .output('merged.mp4')
    .run()
)

이거는 브이로그 편집할 때 배경음악 넣을 때 썼어요!

📌 예제 5: 여러 동영상 이어붙이기

 
 
python
import ffmpeg

# 세 개의 동영상을 순서대로 이어붙이기
video1 = ffmpeg.input('part1.mp4')
video2 = ffmpeg.input('part2.mp4')
video3 = ffmpeg.input('part3.mp4')

(
    ffmpeg
    .concat(video1, video2, video3)
    .output('final.mp4')
    .run()
)

📌 예제 6: GIF로 변환 (이거 진짜 자주 써요!)

 
 
python
import ffmpeg

(
    ffmpeg
    .input('input.mp4', ss=0, t=5)  # 처음 5초만
    .filter('fps', fps=10)  # 10fps로 설정
    .filter('scale', 480, -1)  # 너비 480px, 높이는 자동
    .output('output.gif')
    .run()
)

🚨 6. 자주 만나는 에러 해결법 (제가 다 겪어봤어요!)

❌ 에러 1: "ffmpeg: command not found"

증상:

 
 
python
FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg'

원인: FFmpeg가 설치 안 됐거나, PATH 설정이 안 됨

해결책:

  1. 위의 FFmpeg 설치 부분 다시 확인
  2. 터미널 재시작
  3. ffmpeg -version으로 확인

❌ 에러 2: "No module named 'ffmpeg'"

증상:

 
 
python
ImportError: No module named 'ffmpeg'

원인: ffmpeg-python이 설치 안 됐거나 가상환경 문제

해결책:

 
 
bash
# 현재 환경에 설치되어 있는지 확인
pip list | grep ffmpeg

# 없으면 설치
pip install ffmpeg-python

❌ 에러 3: 오디오가 사라짐 😱

저는 이거 때문에 진짜 한참 고민했어요...

증상: 필터 적용하니까 소리가 없어짐

원인: 일부 FFmpeg 필터는 비디오 스트림만 처리함

해결책:

 
 
python
import ffmpeg

input_video = ffmpeg.input('input.mp4')

# 비디오와 오디오를 분리해서 처리
video = input_video.video.hflip()  # 비디오만 처리
audio = input_video.audio  # 오디오는 그대로

# 다시 합치기
(
    ffmpeg
    .output(video, audio, 'output.mp4')
    .run()
)

이렇게 .video와 .audio로 분리해서 처리하면 돼요!

❌ 에러 4: "너무 많은 인수"류의 에러

증상:

 
 
python
TypeError: 'NoneType' object is not callable

원인: 메서드 체이닝 순서가 잘못됨

해결책:

  • .run()은 항상 맨 마지막에!
  • .output()도 .run() 바로 앞에!
 
 
python
# ❌ 잘못된 예
ffmpeg.input('in.mp4').run().output('out.mp4')

# ✅ 올바른 예
ffmpeg.input('in.mp4').output('out.mp4').run()

❌ 에러 5: 이미 존재하는 파일 덮어쓰기

증상: 파일이 이미 있어서 멈춤

해결책:

 
 
python
(
    ffmpeg
    .input('input.mp4')
    .output('output.mp4')
    .overwrite_output()  # 이거 추가!
    .run()
)

🚀 7. 고급 활용 팁

💎 팁 1: 복잡한 필터 체인

 
 
python
import ffmpeg

(
    ffmpeg
    .input('input.mp4')
    .filter('scale', 1920, 1080)  # 리사이즈
    .filter('hflip')  # 좌우 반전
    .filter('drawtext',
            text='Hello!',
            fontsize=50,
            x=100,
            y=100)  # 텍스트 추가
    .output('output.mp4')
    .run()
)

💎 팁 2: 사용자 정의 옵션

특수한 FFmpeg 옵션 쓸 때:

 
 
python
(
    ffmpeg
    .input('input.mp4')
    .output('output.mp4', **{
        'qscale:v': 3,  # 품질 설정
        'b:v': '2M'  # 비트레이트
    })
    .run()
)

💎 팁 3: 진행 상황 모니터링

긴 동영상 처리할 때 유용해요:

 
 
python
import ffmpeg

(
    ffmpeg
    .input('long_video.mp4')
    .output('output.mp4')
    .global_args('-progress', 'pipe:1')  # 진행 상황 출력
    .run()
)

💎 팁 4: 명령어만 확인하고 실행 안 하기

테스트할 때 좋아요:

 
 
python
import ffmpeg

cmd = (
    ffmpeg
    .input('input.mp4')
    .output('output.mp4')
    .compile()  # 명령어만 생성
)

print(' '.join(cmd))  # 실제 FFmpeg 명령어 확인

저는 복잡한 작업할 때 이렇게 명령어 먼저 확인해요!


📝 실전 체크리스트

✅ 설치 전

  • Python 3.6 이상 설치되어 있나요?
  • pip 최신 버전인가요? (pip install --upgrade pip)
  • 가상환경 사용한다면 활성화했나요?

✅ FFmpeg 설치 후

  • ffmpeg -version 명령어 실행되나요?
  • 터미널 재시작했나요?
  • 환경 변수 PATH에 제대로 추가되었나요?

✅ ffmpeg-python 설치 후

  • import ffmpeg 에러 없이 실행되나요?
  • 간단한 예제 코드 실행해봤나요?
  • 테스트용 동영상 파일 준비되어 있나요?

💡 제가 3개월 쓰면서 느낀 점

장점:

  • Python으로 동영상 자동 처리 정말 편해요!
  • 명령어보다 코드가 훨씬 읽기 쉬워요
  • 대량의 동영상 일괄 처리할 때 최고
  • 에러 처리가 Python스럽게 가능

단점:

  • FFmpeg 명령어 어느 정도는 알아야 해요 (100% 몰라도 기본은 알아야...)
  • 처음에는 메서드 체이닝이 좀 헷갈려요
  • 공식 문서가 좀... 부족한 편이에요 ㅠㅠ

추천하는 경우:

  • Python으로 자동화 시스템 만들 때 ✅
  • 여러 동영상을 같은 방식으로 처리할 때 ✅
  • 웹 서버에서 동영상 처리할 때 ✅

비추하는 경우:

  • 일회성 작업이면 그냥 FFmpeg 명령어가 빠를 수도... ❌
  • Python 전혀 모르면 학습 곡선이 있어요 ❌

🎯 마무리하며

처음에는 저도 "Python으로 동영상 편집이 되나?" 싶었는데, ffmpeg-python 쓰면서 정말 많은 작업을 자동화할 수 있었어요! 😊

특히 유튜브 자동 편집 프로그램 만들 때 엄청 유용했고, 지금은 거의 모든 동영상 처리를 Python 스크립트로 해결하고 있어요.

혹시 이 가이드 보고 따라해보신 분들, 막히는 부분 있으면 댓글로 물어보세요! 제가 아는 범위에서 도와드릴게요 👍

다음에는 실전 프로젝트 예제들 (썸네일 자동 생성기, 자막 자동 삽입 등)도 올려볼게요!