본문으로 건너뛰기
Whisper로 영상 자막 자동화하기 · 1/1시리즈 보기 →

API 비용 0원, 내 Mac에서 영상 자막(SRT) 만들기 — faster-whisper 6단계 가이드

· 약 7분
AI builder
이 글과 연결된 글 보기
21편 · 70개 연결
100%
문자로 온 네이버페이 포인트 기프티콘, AI 브라우저 에이전트에게 등록시켜 봤습니다AI로 당근 커뮤니티 만들기: 무선 ADB 연결부터 영상 공지·일정·챌린지까지유료 문자 API 대신 내 안드로이드폰으로 무료 SMS 게이트웨이 만들기: Aside·무선 ADB·TextBee 실전 연동기API와 MCP 차이, 날씨 데이터 하나로 직접 확인하기: curl 한 줄에서 AI가 쓰는 도구까지 5단계Aside 커스텀 프로바이더 설정 가이드: 무료 스텔스 모델부터 Solar Pro 4까지 6단계로 연결하기ChatGPT 데스크톱 앱으로 실시간 통역하는 법Aside로 30분 안에 당근비즈니스에 내 물건 등록하기: 따라 하는 프롬프트와 화면 11장AI가 뽑은 "+124% 증가", 믿기 전에 확인할 7단계 — 데이터 분석 함정 체크리스트데이터팝콘 AX 상담 페이지 오픈: 신청 방법부터 성공 온보딩 사례까지목소리 한 번 학습시켜 영상 나레이션 만들기 — Fish Audio 세팅부터 영상에 얹기까지인스타 '댓글 남기면 DM 보내드려요', 유료 툴 없이 직접 만들기Jev, 누구에게 필요할까 — 댓글·카페 리뷰·채용공고·실종자 후보 220건으로 직접 돌려 봤습니다AI 영상 모션그래픽 참고 사이트 2곳: Prompt Motion과 Skillry 사용법공공데이터 수집에서 막히는 6가지와 해결법: 공공데이터포털·KOSIS·PDF 통계표 (Colab 노트북 포함)수퍼톤 서비스 종료 소식, 무엇이 확인됐고 무엇을 기다려야 할까이번 주 팝콘 줍줍 — 같은 주에 나온 Opus 5.5와 GPT-6, 값이 절반으로 (9월 4주)이번 주 팝콘 줍줍 — 데이터팝콘에 올린 7편과 함께 볼 것들 (10월 1주)이번 주 팝콘 줍줍 — GPT-6 대화형 UI, Claude Haiku 5.5, 말로 만드는 게임 (10월 2주)이번 주 팝콘 줍줍 — Gemini 4 Argon 정식 출시, 메타 뮤즈 원더, 애플 HomeView (10월 3주)Codex에 영상 넣고 "자막 따줘" 한마디|AI로 영상 자막 자동 생성하는 방법API 비용 0원, 내 Mac에서 영상 자막(SRT) 만들기 — faster-whisper 6단계 가이드

드래그로 이동 · 휠/두 손가락으로 확대 · 방향키로 글 선택 · 0으로 맞춤. 실선: 본문 링크, 점선: 시리즈·주제의 대표 연결.

표시된 글 21편 목록
전체 글 연결 탐색

Mac 터미널에 명령 몇 줄을 입력하면, 영상 파일을 외부 서버에 올리지 않고 내 컴퓨터 안에서 SRT 자막 파일로 바꿀 수 있습니다. API 키도 결제도 필요 없습니다. 이 글의 명령은 모두 2026년 10월 Apple Silicon Mac에서 직접 실행해 결과까지 확인했습니다.

로컬 컴퓨터에서 음성이 자막으로 변환되고 외부 전송을 막는 보안 방패가 함께 보이는 삽화

이 글은 이런 분께 필요합니다​

  • 영상 자막을 자주 만드는데 API 비용이나 유료 자막 서비스 요금이 부담되는 분
  • 강의·회의 녹화처럼 외부 서비스에 올리기 꺼려지는 영상을 자막으로 바꾸고 싶은 분
  • 터미널 창에 명령어를 복사해 붙여넣을 수 있는 분 (코드를 짤 줄 몰라도 됩니다)

AI 코딩 도구에 "자막 따줘"라고 맡기는 방식이 더 편하다면 1편: Codex에 영상 넣고 "자막 따줘" 한마디를 보세요. 1편은 OpenAI API를 쓰기 때문에 사용량만큼 비용이 나가고 음성이 OpenAI로 전송됩니다. 이 글은 그 대신 내 컴퓨터가 직접 일하는 방식입니다.

먼저 용어 두 개만 짚고 가겠습니다​

  • Whisper: OpenAI가 공개한 음성 인식 모델입니다. 모델 파일을 내려받으면 API 없이 내 컴퓨터에서도 돌릴 수 있습니다.
  • faster-whisper: Whisper를 더 빠르고 가볍게 돌려주는 무료 프로그램입니다. 이 글에서는 이걸 설치해 씁니다.
  • SRT: 자막 파일 형식입니다. "몇 초부터 몇 초까지 이 문장"이 줄줄이 적힌 텍스트 파일이라, 프리미어·캡컷·다빈치 리졸브·유튜브에 그대로 올릴 수 있습니다.

준비물​

항목조건이 글에서 확인한 환경
컴퓨터Apple Silicon Mac (M1 이후)M3 MacBook, RAM 16GB
Python3.10 이상Python 3.13
저장공간1GB 이상 여유모델 약 480MB + 프로그램 약 220MB
인터넷처음 설치하고 모델을 받을 때만 필요

ffmpeg 같은 영상 변환 프로그램은 따로 설치하지 않아도 됩니다. faster-whisper가 mp4 파일에서 소리를 직접 읽어냅니다. Windows와 NVIDIA 그래픽카드 환경은 이 글에서 직접 확인하지 못해 다루지 않습니다.

Step 1. 터미널을 열고 Python 버전을 확인합니다​

  1. Command + Space를 눌러 Spotlight를 열고 터미널을 입력해 엽니다.
  2. 아래 명령을 붙여넣고 Enter를 누릅니다.
python3 --version

Python 3.10 이상(3.11, 3.12, 3.13 등)이 나오면 다음 단계로 갑니다. 숫자가 3.9 이하이거나 command not found가 나오면 python.org 다운로드 페이지에서 최신 macOS 설치 파일을 받아 설치한 뒤, 터미널을 껐다 켜서 다시 확인합니다.

Step 2. 작업 폴더와 가상환경을 만듭니다​

가상환경은 이 작업에 필요한 프로그램만 따로 담아두는 상자입니다. 컴퓨터의 다른 Python 프로그램과 섞이지 않아서, 나중에 지우고 싶으면 폴더째 삭제하면 끝납니다.

mkdir -p ~/Desktop/local-subtitles
cd ~/Desktop/local-subtitles
python3 -m venv .venv
source .venv/bin/activate

마지막 줄을 실행하면 터미널 앞부분에 (.venv)가 붙습니다. 이 표시가 있어야 다음 단계의 설치가 이 상자 안에 들어갑니다. 터미널을 새로 열었을 때는 cd ~/Desktop/local-subtitles와 source .venv/bin/activate를 다시 입력합니다.

Step 3. faster-whisper를 설치합니다​

pip install faster-whisper "av<19"

설치가 끝났는지는 아래 명령으로 확인합니다.

pip show faster-whisper av

Version: 1.2.1(faster-whisper)과 Version: 18.1.0(av)처럼 두 개의 버전이 나오면 됩니다.

"av<19"를 붙이는 이유가 있습니다. av는 영상에서 소리를 꺼내는 부품인데, 2026년 10월 확인 기준으로 pip install faster-whisper만 입력하면 최신 av 19가 같이 깔립니다. 그런데 faster-whisper 1.2.1은 av 19와 맞지 않아서 실행하는 순간 TypeError: open() got an unexpected keyword argument 'metadata_errors' 오류가 납니다. av를 18 버전으로 고정하면 정상 작동합니다. 나중에 faster-whisper가 업데이트되면 이 고정이 필요 없어질 수 있습니다.

Step 4. 자막을 만드는 스크립트 파일을 만듭니다​

아래 블록은 "영상 파일을 받아서 같은 이름의 .srt 파일로 저장"하는 스크립트 make_srt.py를 작업 폴더에 만들어 줍니다. 첫 줄 cat >부터 마지막 줄 EOF까지 전체를 한 번에 복사해 터미널에 붙여넣고 Enter를 누르면 됩니다. 코드를 고칠 필요는 없습니다.

cat > make_srt.py <<'EOF'
import argparse
from pathlib import Path

from faster_whisper import WhisperModel


def to_srt_time(seconds: float) -> str:
ms = int(round(seconds * 1000))
h, ms = divmod(ms, 3_600_000)
m, ms = divmod(ms, 60_000)
s, ms = divmod(ms, 1000)
return f"{h:02}:{m:02}:{s:02},{ms:03}"


parser = argparse.ArgumentParser(description="영상·음성 파일을 SRT 자막으로 만듭니다.")
parser.add_argument("file", help="자막을 만들 영상 또는 음성 파일")
parser.add_argument("--model", default="small", help="tiny, base, small, medium, large-v3")
parser.add_argument("--device", default="cpu", help="cpu 또는 cuda")
parser.add_argument("--compute-type", default="int8", help="cpu는 int8, cuda는 float16")
parser.add_argument("--language", default="ko")
args = parser.parse_args()

model = WhisperModel(args.model, device=args.device, compute_type=args.compute_type)
segments, info = model.transcribe(args.file, language=args.language, vad_filter=True)

out_path = Path(args.file).with_suffix(".srt")
with open(out_path, "w", encoding="utf-8") as f:
for i, seg in enumerate(segments, start=1):
f.write(f"{i}\n{to_srt_time(seg.start)} --> {to_srt_time(seg.end)}\n{seg.text.strip()}\n\n")
print(f"[{to_srt_time(seg.start)}] {seg.text.strip()}")

print(f"완료: {out_path}")
EOF

제대로 만들어졌는지는 아래 명령으로 확인합니다. 사용법 안내가 나오면 성공입니다.

python make_srt.py --help
usage: make_srt.py [-h] [--model MODEL] [--device DEVICE]
[--compute-type COMPUTE_TYPE] [--language LANGUAGE]
file

영상·음성 파일을 SRT 자막으로 만듭니다.

Step 5. 영상을 넣고 실행합니다​

  1. 자막을 만들 영상(예: my-video.mp4)을 Finder에서 바탕화면의 local-subtitles 폴더로 옮깁니다. 파일 이름에 띄어쓰기가 없으면 입력이 편합니다.
  2. 터미널에 아래 명령을 입력합니다.
python make_srt.py my-video.mp4

처음 한 번은 음성 인식 모델(small, 약 480MB)을 내려받느라 몇 분 걸립니다. 모델은 ~/.cache/huggingface 폴더에 저장되고, 두 번째부터는 다시 받지 않습니다.

실행되는 동안 인식한 문장이 화면에 한 줄씩 나옵니다. 25초짜리 한국어 테스트 영상으로 실제 실행한 결과입니다.

[00:00:00,000] 안녕하세요 데이터 팝콘입니다.
[00:00:04,040] 오늘은 내 컴퓨터에서 무료로 영상 자막을 만드는 방법을 알아보겠습니다.
[00:00:11,400] 음성 파일을 인터넷에 올리지 않아도 자막 파일이 만들어집니다.
[00:00:18,040] 먼저 파일 선, 가상환경을 만들고 패키지를 설치합니다.
완료: my-video.srt

모델을 이미 받아둔 상태에서 M3 MacBook으로 이 25초 영상을 처리하는 데 약 21초가 걸렸습니다. 영상 길이와 컴퓨터에 따라 시간이 달라지니, 긴 영상은 먼저 1~2분짜리로 시험해 보길 권합니다.

옵션 바꾸기​

하고 싶은 것명령
기본값으로 실행 (한국어, small 모델)python make_srt.py my-video.mp4
영어 영상python make_srt.py my-video.mp4 --language en
영상 대신 음성 파일(mp3)python make_srt.py my-audio.mp3

모델 크기는 --model 뒤에 이름을 붙여 바꿉니다(예: --model medium). 모델은 tiny, base, small, medium, large-v3 순서로 커집니다. 클수록 정확해질 가능성이 높지만, 내려받을 파일과 처리 시간도 함께 늘어납니다. 이 글에서 실제로 돌려본 모델은 small이므로, 처음에는 small로 끝까지 해본 뒤 결과가 아쉬울 때만 키우길 권합니다.

Step 6. SRT 파일을 열어 틀린 글자를 고칩니다​

폴더에 영상과 같은 이름의 my-video.srt가 생깁니다. 텍스트 편집기로 열면 이렇게 생겼습니다.

1
00:00:00,000 --> 00:00:04,040
안녕하세요 데이터 팝콘입니다.

2
00:00:04,040 --> 00:00:11,400
오늘은 내 컴퓨터에서 무료로 영상 자막을 만드는 방법을 알아보겠습니다.

받아쓰기는 완벽하지 않습니다. 위 테스트에서도 "파이썬 가상환경"이 "파일 선, 가상환경"으로 잘못 나왔습니다. 특히 다음 세 가지는 꼭 눈으로 확인합니다.

  • 제품명·사람 이름·전문 용어 (위의 "파이썬"처럼 가장 자주 틀립니다)
  • 회사명 띄어쓰기 ("데이터팝콘"이 "데이터 팝콘"으로 나왔습니다)
  • 숫자와 단위

시간 줄(-->가 있는 줄)은 건드리지 말고 문장 줄만 고친 뒤 저장합니다. 고친 SRT를 편집툴로 가져가는 방법은 1편의 "편집툴로 생성된 자막(SRT) 가져가기"에 정리돼 있습니다.

오류가 나면 여기부터 확인하세요​

오류 메시지원인해결
TypeError: open() got an unexpected keyword argument 'metadata_errors'av 19가 설치돼 faster-whisper 1.2.1과 맞지 않음pip install "av<19"를 실행한 뒤 다시 실행합니다
ModuleNotFoundError: No module named 'faster_whisper'가상환경이 꺼진 상태에서 실행함 (앞에 (.venv) 표시가 없음)cd ~/Desktop/local-subtitles 후 source .venv/bin/activate를 실행합니다
No such file or directory: 'my-video.mp4'영상이 작업 폴더에 없거나 파일 이름이 다름Finder에서 파일 이름과 위치를 확인합니다. 이름에 띄어쓰기가 있으면 "내 영상.mp4"처럼 따옴표로 감쌉니다
command not found: python3Mac에 Python이 설치돼 있지 않음Step 1의 python.org 링크에서 설치합니다
첫 실행이 오래 멈춘 것처럼 보임모델(약 480MB)을 내려받는 중인터넷 연결을 확인하고 기다립니다. 두 번째 실행부터는 바로 시작합니다

정리​

Python 확인 → 가상환경 만들기 → pip install faster-whisper "av<19" → 스크립트 붙여넣기 → python make_srt.py 영상파일 → SRT 검수, 이 여섯 단계면 내 Mac에서 비용 없이 자막 파일이 나옵니다. 처음 한 번만 설치하면 그다음부터는 영상을 폴더에 넣고 Step 5의 명령 한 줄만 입력하면 됩니다. 대신 처리 시간은 내 컴퓨터 성능만큼 걸리고, 받아쓰기 결과는 사람이 한 번 검수해야 한다는 점은 API 방식과 같습니다.