요약: 먼저 MP4에 실제로 자막 트랙이 들어 있는지 확인하세요 — 대부분은 없습니다. 무료 ffprobe 명령 하나가 몇 초 만에 알려줍니다. 트랙이 있다면 ffmpeg 명령 하나로 SRT 파일로 변환됩니다. 하지만 대다수 MP4 — 소셜 미디어 영상, CapCut·Premiere 내보내기, 다운로드한 클립 — 에서는 자막이 화면에 입혀져 있고, 이를 추출하는 유일한 방법은 프레임에서 텍스트를 읽어내는 OCR입니다. 이 가이드는 두 경로를 모두 다루고, 영상에 자막이 아예 없는 경우도 함께 설명합니다.
MP4에 자막 트랙이 있는지 어떻게 확인하나요?
ffmpeg가 설치되어 있다면(맥에서는 brew install ffmpeg) 다음을 실행합니다:
ffprobe -v error -select_streams s \
-show_entries stream=index,codec_name:stream_tags=language \
-of default=noprint_wrappers=1 input.mp4
가능한 결과는 두 가지입니다:
| 출력 | 무슨 뜻인가 | 추출 방법 |
|---|---|---|
codec_name=mov_text | MP4에 임베디드 텍스트 자막 트랙이 있음(플레이어에서 켜고 끌 수 있음) | ffmpeg 명령 하나 |
| 출력이 전혀 없음 | 자막 트랙 없음 — 보이는 자막은 화면에 입혀진 하드섭 | OCR |
ffprobe가 아무것도 출력하지 않는데 영상을 재생하면 자막이 보인다면, 그 자막은 영상 화면의 일부입니다 — 어떤 추출기나 변환기도 뽑아낼 수 없고, OCR이 유일하게 작동하는 방법입니다.
MP4의 자막 트랙을 SRT로 어떻게 추출하나요?
MP4는 텍스트 자막을 mov_text 형식으로 저장합니다. ffmpeg가 명령 하나로 이를 표준 SRT 파일로 변환합니다:
# 첫 번째 자막 트랙을 SRT로 추출
ffmpeg -i input.mp4 -map 0:s:0 subtitles.srt
# 트랙이 여러 개면 0:s:1이 두 번째, 이하 동일
ffmpeg -i input.mp4 -map 0:s:1 subtitles.srt
결과는 어떤 자막 편집기에서도 열리고 어떤 플랫폼에도 업로드되는 일반 SRT 파일입니다. 이게 전부입니다 — 작동했다면 끝났습니다. ffmpeg가 Stream map '0:s:0' matches no streams라고 알린다면 MP4에 자막 트랙이 없다는 뜻이고, 이 경우가 훨씬 더 흔합니다.
왜 대부분의 MP4 영상에는 자막 트랙이 없나요?
MP4의 자막 지원은 늘 뒷전이었습니다. 소셜 플랫폼은 업로드 시 자막 트랙을 제거하거나 재생 시 무시하고, 많은 플레이어는 MP4 파일에 자막 메뉴를 아예 표시하지 않습니다 — 그래서 크리에이터들은 이에 의존하지 않게 됐습니다.
플랫폼과 플레이어가 MP4 자막 트랙을 워낙 제각각으로 다루기 때문에, 대부분의 크리에이터는 자막을 화면에 직접 입혀 버립니다 — 이것이 전형적인 MP4의 자막을 ffmpeg나 어떤 변환기로도 추출할 수 없는 이유입니다. CapCut 내보내기, 다운로드한 릴, 재업로드된 클립에서 보이는 모든 자막은 거의 항상 트랙이 아니라 픽셀입니다. 두 가지 자막 유형에 대한 전체 설명은 여기 있습니다: 임베디드 자막과 하드섭 비교.
MP4에서 하드섭은 어떻게 추출하나요?
OCR로 합니다 — 영상 프레임에서 자막 텍스트를 읽어 타이밍이 있는 자막 파일로 재구성하는 소프트웨어입니다:
- 맥에서 MP4를 GeekLink에 가져옵니다.
- OCR 추출을 실행합니다. 자막 영역을 감지하고, 각 프레임의 텍스트를 읽고, 중복 프레임을 병합하여 깔끔하고 타이밍이 정확한 자막 줄로 만듭니다.
- SRT로 내보냅니다 — 또는 먼저 번역해서 이중 언어 파일로 내보냅니다.
OCR은 맥에서 로컬로 실행되고 — 영상은 절대 업로드되지 않습니다 — 폴더 전체의 영상을 한 배치로 처리할 수 있습니다. 단계별 과정은 여기 있습니다: OCR로 하드섭(화면에 입혀진 자막) 추출하는 법; 영상에 제외하고 싶은 워터마크나 채널 로고가 있다면 워터마크 없이 자막 추출하기를 보세요.
MP4에 자막이 아예 없으면 어떻게 하나요?
트랙도 없고 화면에 입혀진 것도 없다면 추출할 것이 없습니다 — 대신 자막을 생성합니다. 영상을 GeekLink에 가져와 맥에서 Whisper 음성 인식을 로컬로 실행하세요: 편집·번역하고 SRT로 내보낼 수 있는, 타이밍이 있는 자막이 나옵니다. Whisper 영상 전사: 완전 가이드를 보세요.
추출한 자막은 어떻게 번역하나요?
MP4에서 추출한 SRT 파일은 GeekLink로 바로 가져와 원본 타이밍을 유지한 채 AI로 40개 이상의 언어로 번역할 수 있습니다. 번역된 SRT, 이중 언어 SRT로 내보내거나, 자막 트랙을 무시하는 플랫폼을 위해 번역을 영상에 다시 입힐 수 있습니다. 전체 워크플로: 하드섭 번역하는 법.
FAQ
MP4 파일에서 자막을 어떻게 추출하나요?
먼저 자막 트랙이 있는지 확인하세요: ffprobe -v error -select_streams s -show_entries stream=codec_name input.mp4. mov_text가 출력되면 ffmpeg -i input.mp4 -map 0:s:0 subtitles.srt를 실행하면 SRT가 나옵니다. 아무것도 출력되지 않으면 자막이 화면에 입혀진 것이라 OCR이 필요합니다.
자막을 추출하려는데 ffmpeg가 "matches no streams"라고 하는 이유는 무엇인가요?
MP4에 자막 트랙이 없기 때문입니다. 재생 중 보이는 자막은 영상 화면에 입혀진 것이라 — 데이터가 아니라 픽셀이라 — ffmpeg가 매핑할 스트림이 없습니다. GeekLink 같은 OCR 소프트웨어가 대신 프레임에서 읽어냅니다.
온라인 도구로 내 MP4에서 자막을 추출할 수 있나요?
MP4에 임베디드 트랙이 있을 때만 가능한데 대부분은 없습니다 — 게다가 큰 영상을 웹사이트에 업로드하는 것은 느립니다. 하드섭이라면 맥에서 로컬로 실행되는 OCR이 더 빠르고 영상을 비공개로 유지합니다.
CapCut이나 Premiere 내보내기에서 자막을 추출할 수 있나요?
편집기의 내보내기는 거의 항상 하드섭입니다: 내보내는 동안 자막이 화면에 렌더링되므로 파일 안에 트랙이 없습니다. OCR이 정답입니다 — GeekLink는 자막 영역을 감지하고, 프레임 단위로 텍스트를 읽고, 타이밍이 있는 SRT로 내보냅니다.
MP4와 MKV에서 자막을 추출하는 것의 차이는 무엇인가요?
MKV는 임베디드 자막 트랙(SRT, ASS, 또는 블루레이 PGS)을 흔히 담고 있어서 추출이 보통 ffmpeg나 mkvextract로 성공합니다. MP4는 트랙 자체가 거의 없어서, 추출은 대개 하드섭에 대한 OCR을 뜻합니다. 함께 보면 좋은 가이드: MKV 파일에서 자막 추출하는 법.