영상에 자막 굽는 방법 (어디에도 업로드하지 않고)
내 컴퓨터에서 영상에 자막을 굽는 법을 정리했어요: 실제로 통하는 방법 네 가지를 비교하고, 그대로 쓸 수 있는 FFmpeg 명령어와 재인코딩으로 생기는 품질 손실을 피하는 방법까지 자세히 다뤄요.
영상에 자막을 굽는다는 건 텍스트를 화면 자체에 그려 넣고 다시 인코딩하는 일이에요. 그래서 캡션이 파일과 함께 픽셀로 옮겨 다녀요. 자막 파일을 전혀 받지 않는 TikTok, Reels, Shorts에는 이 방법이 꼭 필요하고, 캡션이 접근성 옵션이 아니라 디자인의 일부일 때도 마찬가지예요.
이 작업에는 아무것도 업로드할 필요가 없어요. FFmpeg는 명령어 한 줄이면 끝나고, HandBrake와 Subtitle Edit은 창에서 클릭으로 처리하고, Sablate 같은 데스크톱 자막 앱은 자막까지 함께 만들어줘요. 모두 내 컴퓨터에서 돌아가니 파일 크기 제한도, 업로드를 기다릴 일도 없어요.
여기서는 온라인 도구가 그래도 맞는 선택일 때는 언제인지, 자막을 굽는 네 가지 방법, 명령줄 없이 하는 방법, 긴 녹화에서 달라지는 점, 그리고 품질을 실제로 떨어뜨리는 두 가지 요인을 다뤄요.
온라인 도구와 오프라인 방식, 무엇을 써야 할까요?
이 주제로 검색하면 브라우저 편집기가 먼저 나오는데, 짧은 클립이라면 그걸로 충분해요. 차이는 길이, 파일 크기, 개인정보에서 드러나요.
| 온라인 편집기 | 오프라인(FFmpeg, HandBrake, 데스크톱 앱) | |
|---|---|---|
| 영상을 업로드함 | 네, 파일 전체를 | 아니요 |
| 파일 크기 | 요금제마다 상한이 있음 | 디스크 용량이 유일한 한계 |
| 긴 녹화 | 길이에 따라 업로드 시간이 늘어남 | 인코딩에만 시간이 걸림 |
| 기밀 영상 | 내 컴퓨터 밖으로 나감 | 내 컴퓨터 안에 그대로 있음 |
| 설치 필요 | 아니요 | 네 |
| 자막도 만들어줌 | 대개 네 | 데스크톱 앱은 네, FFmpeg와 HandBrake는 아니요 |
상한은 실제로 존재하고, 무료 요금제에서는 낮아요. 예를 들어 Kapwing의 저장 공간 정책은 무료 요금제에서 파일당 250 MB, 유료 요금제에서 6 GB까지 허용해요. 일반적인 1080p 비트레이트인 약 8 Mbps에서는 250 MB가 4분 남짓한 분량이에요.
그래서 온라인 편집기는 클립이 짧고, 기밀 내용이 없고, 지금 쓰는 컴퓨터에 소프트웨어를 설치할 수 없을 때 쓰세요. 몇 분보다 긴 영상, 고객사나 사내 영상, 여러 파일을 한꺼번에 처리할 때는 로컬에서 구워 넣으세요. 자막까지 만들어주는 데스크톱 앱은 오프라인 자막 생성기 비교에서 다뤄요.
구워 넣기가 정답인 순간
| 구워 넣기(하드서브) | 자막 파일 또는 트랙(소프트서브) | |
|---|---|---|
| 시청자가 끌 수 있음 | 아니요 | 네 |
| TikTok, Reels, Shorts에서 작동 | 네 | 아니요, 지원 안 됨 |
| YouTube, Vimeo에서 작동 | 네 | 네, 검색도 가능 |
| 접근성 준수로 인정됨 | 대부분 아니요 | 네 |
| 검색 엔진에 색인됨 | 아니요 | 네 |
| 나중에 오타 고치기 | 영상을 다시 렌더링 | 텍스트 파일을 편집 |
| 파일 하나에 여러 언어 | 아니요, 언어마다 렌더링 | 네, 언어마다 트랙 |
| 스타일이 정확히 유지됨 | 네 | ASS 트랙에서만 |
대부분에게 실용적인 답은 둘 다예요: 다른 방법이 통하지 않는 세로형 소셜 플랫폼에는 구워 넣고, 자막 파일을 받아주는 곳에는 어디든 파일을 함께 보내세요. 파일은 검색되고, 전환되고, 고칠 수 있으니까요. 작업 하나로 둘 다 얻고 싶다면 다국어 작업 흐름에서 같은 타임라인으로 두 결과물을 모두 만드는 방법을 다뤄요.
자막을 굽는 네 가지 방법
| FFmpeg | HandBrake | 브라우저 도구 | 데스크톱 자막 앱 | |
|---|---|---|---|---|
| 가격 | 무료 | 무료 | 무료 등급 이후 구독 | 일회성 또는 구독 |
| 영상을 업로드함 | 아니요 | 아니요 | 네, 파일 전체를 | 아니요 |
| 파일 크기/길이 제한 | 없음 | 없음 | 있음, 보통 엄격함 | 없음 |
| 자막을 만들어줌 | 아니요 | 아니요 | 네 | 네 |
| 스타일 제어 | ASS나 force_style을 통해 | 제한적 | 템플릿 | 완전함, 실시간 미리보기 포함 |
| 학습 곡선 | 명령줄 | 보통 | 없음 | 낮음 |
솔직하게 짚을 점 두 가지가 있어요. FFmpeg와 HandBrake는 이 작업에서 무료이면서도 훌륭해요. 완성된 자막 파일이 이미 있다면 FFmpeg는 명령어 한 줄로 끝나니 굳이 다른 걸 살 이유가 없어요. 이 둘이 못 하는 건 자막을 만드는 일이에요 — 이미 다른 곳에서 타이밍을 맞추고 교정한 파일을 구워 넣기만 해요. 브라우저 도구는 자막을 직접 만들어주지만 업로드가 선택이 아니라 필수라서, 기밀 자료나 용량 상한을 넘는 영상에는 쓸 수 없어요.
FFmpeg로 구워 넣기
일반 SRT라면:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:a copy output.mp4
스타일이 있는 ASS 파일이라면 스타일이 뭉개지지 않고 그대로 적용되도록 subtitles 대신 ass 필터를 쓰세요:
ffmpeg -i input.mp4 -vf "ass=subs.ass" -c:a copy output.mp4
기본값을 그대로 받는 대신 품질을 직접 지정하려면:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" \
-c:v libx264 -crf 18 -preset slow -c:a copy output.mp4
SRT를 다른 형식으로 바꾸지 않고 스타일만 다시 입히려면:
ffmpeg -i input.mp4 \
-vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,Outline=2'" \
-c:a copy output.mp4
Windows의 함정. 필터 안의 경로는 셸이 아니라 필터 자체가 해석하기 때문에 드라이브 문자의 콜론과 백슬래시를 이스케이프해야 해요. 파일이 분명히 있는데도 명령어가 "파일을 찾을 수 없다"는 오류로 실패하는 가장 흔한 원인이 바로 이거예요:
ffmpeg -i input.mp4 -vf "subtitles='C\:/Videos/subs.srt'" -c:a copy output.mp4
가능하면 자막 파일을 작업 디렉터리 안에 두고 파일명만 그대로 넘기세요 — 그러면 이 문제 자체가 생기지 않아요.
명령줄 없이 구워 넣기
터미널이 낯설다면 창에서 같은 일을 해주는 도구가 세 종류 있어요. 앞의 둘은 무료이고 이미 갖고 있는 자막 파일을 구워 넣어요. 세 번째는 자막 파일까지 만들어줘요.
HandBrake
HandBrake는 Windows, Mac, Linux에서 쓸 수 있는 무료 영상 변환기예요. 영상을 열고 Subtitles 탭으로 가서, Tracks 메뉴로 외부 SRT를 추가하고, 그 트랙을 영상에 구워 넣도록 설정한 다음 인코딩을 시작하세요. 알아둘 한계가 두 가지 있어요. HandBrake 문서에 따르면 MP4에는 구워 넣은 트랙을 하나만 넣을 수 있고, 스타일은 일반 SRT가 담을 수 있는 범위로 제한돼요.
Subtitle Edit
무료 자막 편집기인 Subtitle Edit에는 Video 메뉴에 구워 넣은 영상으로 내보내는 기능이 있고, FFmpeg를 대신 실행해줘요. FFmpeg가 없으면 내려받겠느냐고 물어보고요. 이미 거기서 타이밍을 고치고 있다면 가장 자연스러운 선택이에요.
데스크톱 자막 앱
교정된 자막 파일이 아직 없다면, 구워 넣기는 더 긴 작업의 마지막 단계일 뿐이에요: 전사하고, 교정하고, 스타일을 입히고, 렌더링하는 거죠. Sablate는 이 과정 전체를 내 컴퓨터 안에서 끝까지 처리해요 — 로컬에서 실행되는 Whisper 전사, 타임라인 재조정과 읽기 속도 경고가 있는 편집기, 13가지 캡션 프리셋, 그리고 미리보기와 똑같이 나오는 구워 넣기까지요. DaVinci Resolve로 편집한다면 무료 버전에서도 SRT를 불러와 내보낼 때 구워 넣을 수 있어요.
구워 넣기는 무료 요금제에서도 작은 워터마크와 함께 10분 이하 영상에 쓸 수 있고, Pro는 워터마크와 길이 제한을 없애고 .ass, 다중 트랙 .mkv, 일괄 내보내기까지 $29 한 번의 결제로 더해줘요. 다운로드하거나 전체 내용은 가격 페이지에서 확인하세요.
긴 영상이나 용량이 큰 영상에 자막 굽기
길이는 두 가지를 바꿔요. 파일을 도구까지 옮기는 일, 그리고 인코딩 자체예요.
업로드. 약 8 Mbps인 두 시간짜리 1080p 녹화는 용량이 7 GB쯤 돼요. 업로드 속도가 20 Mbps인 회선이라면 온라인 도구가 작업을 시작하기도 전에 50분 가까이 걸리고, 완성된 파일은 다시 내려받아야 해요. 로컬에서 구워 넣으면 이 단계가 통째로 사라져요.
인코딩. 구워 넣기는 모든 프레임을 다시 인코딩하기 때문에, 두 시간짜리 파일은 어떤 컴퓨터에서든 시간이 꽤 걸려요. 전체를 인코딩하기 전에 첫 1분만 렌더링해서, 한 시간을 기다린 뒤가 아니라 그 자리에서 폰트와 크기, 위치를 확인하세요:
ffmpeg -i input.mp4 -t 60 -vf "subtitles=subs.srt" -c:v libx264 -crf 18 -preset slow -c:a copy test.mp4
속도와 파일 크기. -preset medium은 slow보다 눈에 띄게 빠르고, 같은 CRF에서 파일이 조금 더 커요. 하드웨어 인코더(NVIDIA 그래픽카드의 h264_nvenc, Mac의 h264_videotoolbox)는 더 빠르지만, 같은 화질을 내려면 더 높은 비트레이트가 필요해요. 어느 쪽이든 -c:a copy는 그대로 두세요. 긴 파일의 오디오를 다시 인코딩하면 시간만 들고 얻는 건 없이 세대 손실만 한 번 더 생겨요.
Sablate는 Pro에 길이 제한이 없고, 렌더링은 진행률 표시줄과 취소 버튼이 있는 채로 로컬에서 돌아가요. 그래서 장편 영화 길이의 녹화도 파일을 조각내 나눌 필요 없이 기다리기만 하면 돼요.
실제로 품질을 깎아먹는 것
두 가지 요인이 있고, 구워 넣기 자체는 그 이유가 아니에요.
이미 압축된 파일을 다시 인코딩하는 것. 구워 넣기는 재인코딩을 거쳐야 하고, 그건 손실이 있는 과정이에요. 마스터 파일에 하면 눈에 보이는 손실이 거의 없어요. 플랫폼이 이미 압축한 파일에 하면 압축 손상을 또 압축하는 셈이 되고, 그 지점에서 블록 현상과 뭉개짐이 나타나요. 항상 갖고 있는 가장 고품질인 버전에서 시작하고, 이미 한 번 구워 넣은 파일에 캡션을 다시 굽지 마세요.
기본 인코더 설정을 그대로 받는 것. x264에서 -crf 18은 대부분의 콘텐츠에서 눈으로 거의 구분이 안 되고, 기본값인 23은 디테일이 많은 영상에서 눈에 띄게 뭉개져요. -preset slow는 시간을 더 쓰는 대신 같은 품질에서 파일을 더 작게 만들어줘요. 그리고 -c:a copy는 오디오 스트림을 그대로 두는데, 화면만 바꾸는 작업에서 오디오를 다시 인코딩할 이유는 없으니까요.
렌더링 결과가 미리보기와 다른 이유
원인은 두 가지이고, 둘 다 인코딩을 하기 전에 고칠 수 있어요.
폰트. 렌더러는 찾을 수 있는 폰트로 그려요. 선택한 폰트가 설치돼 있지 않거나 해당 문자를 그릴 수 없으면 — 대부분의 디스플레이 캡션 폰트는 라틴, 키릴, 그리스 문자만 지원하고 그 외에는 지원하지 않아요 — 다른 폰트로 대체되고, 아랍어, 태국어, 한글, CJK 문자는 빈 사각형으로 나올 수 있어요. 열두 개 언어를 렌더링하고 나서가 아니라 하기 전에 폰트를 확인하세요.
캔버스 크기. ASS의 위치와 폰트 크기는 영상의 픽셀 크기가 아니라 파일에 선언된 가상 캔버스를 기준으로 정해져요. 캔버스를 고정하지 않으면 같은 폰트 크기라도 1080p와 4K 소스에서 화면에 보이는 글자 크기가 달라져요. Sablate는 캡션 캔버스를 높이 1080의 가상 프레임으로 고정하고, 회전 메타데이터를 포함한 소스의 실제 비율에서 너비를 계산해요. 그래서 어떤 해상도로 찍었든 폰트 크기가 항상 같은 의미를 가지고, 편집기 미리보기도 렌더러가 쓰는 것과 정확히 같은 캔버스를 기준으로 스케일을 맞춰요.
도구마다 구워 넣기 품질이 이렇게까지 차이 나는 이유도 여기에 있어요. 많은 온라인 편집기는 캡션을 평평한 텍스트 오버레이로 합성하지만, Sablate의 구워 넣기는 미디어 플레이어가 ASS 자막에 쓰는 것과 같은 엔진인 libass로 렌더링해요. 그래서 외곽선, 그림자, 단어 단위 카라오케 타이밍, 문자 체계에 맞는 폰트까지 근사한 그래픽이 아니라 진짜 자막 타이포그래피로 나와요.
세로형과 정사각형 출력
영상이 Reels, Shorts, TikTok으로 갈 예정이라면 나중에 자르지 말고 렌더링하는 동안 비율을 변환하세요. 완성된 16:9 구워 넣기를 9:16으로 자르면 화면과 함께 캡션의 양쪽도 잘려나가요.
Sablate는 16:9(1920×1080), 9:16(1080×1920), 1:1(1080×1080)로 렌더링하는데, 목표 프레임에 맞춰 자르거나 소스를 블러 처리한 배경으로 채우고, 캡션은 최종 프레임에 맞춰 배치해요. 세로 프레임에서는 자막을 아래쪽 3분의 1보다 위에 두세요. Meta의 릴스 가이드는 아래쪽 35%를 비워 두라고 안내하는데, 플랫폼 자체의 텍스트와 버튼이 그 영역을 덮기 때문이에요. 릴스, TikTok, 쇼츠 자막 위치에 플랫폼별 세이프 존이 정리돼 있어요.
한 줄 요약
온라인 편집기는 기밀 내용이 없는 짧은 클립에만 쓰고, 나머지는 로컬에서 구워 넣으세요. 업로드도, 파일 크기 제한도, 길이 제한도 없으니까요. 플랫폼이 자막 파일을 전혀 읽지 못하거나 캡션이 그 자체로 디자인의 일부일 때는 구워 넣으세요 — 그 외에는 어디든 자막 파일을 함께 보내세요. 고칠 수 있는 텍스트가 고칠 수 없는 픽셀보다 나으니까요. 업로드용 복사본이 아니라 마스터 파일에서 렌더링하세요. CRF 18을 쓰고 오디오는 복사만 하세요. 긴 파일은 전체를 인코딩하기 전에 첫 1분을 테스트해 보세요. 그리고 그 인코딩에 시간을 쓰기 전에 폰트와 캔버스를 확인하세요 — 완벽한 자막 파일을 잘못 나오게 만드는 두 가지 원인이 바로 그거니까요.
자주 묻는 질문
영상에 자막을 굽는다는 게 실제로 무슨 뜻인가요?
텍스트를 영상 화면 자체에 그려 넣고 영상을 다시 인코딩하는 거예요. 그래서 캡션이 별도 트랙이 아니라 픽셀이 돼요. 아무도 끌 수 없고, 어떤 플레이어든 자막 형식을 지원할 필요가 없고, 자막 파일을 아예 읽지 않는 플랫폼에서도 제대로 나와요. 대가는 되돌릴 수 없다는 점과 재인코딩을 한 번 더 거쳐야 한다는 점이에요.
자막을 구워 넣으면 영상 품질이 떨어지나요?
영상을 다시 인코딩하니 손실이 조금은 불가피하지만 눈에 안 보이게 만들 수 있어요. 이미 압축된 결과물이 아니라 가장 고품질인 마스터 파일에서 인코딩하고, x264로 CRF 18처럼 품질을 직접 지정하는 설정을 쓰고, 오디오 스트림은 재인코딩 대신 복사하세요. 같은 파일을 두 번 구우면 그때는 눈에 보이게 나빠져요.
영상을 업로드하지 않고도 자막을 구워 넣을 수 있나요?
네. FFmpeg, HandBrake, 데스크톱 자막 앱은 모두 내 컴퓨터 안에서 전부 처리되고, 업로드도 파일 크기 제한도 없어요. 브라우저 기반 도구는 영상 전체를 서버에 먼저 올려야 하기 때문에 파일 크기와 길이에 상한선을 두는 거고, 그래서 두 시간짜리 녹화는 대부분 거기서 실패해요.
영상에 자막을 굽는 FFmpeg 명령어는 뭔가요?
일반 SRT라면: ffmpeg -i input.mp4 -vf subtitles=subs.srt -c:a copy output.mp4. 스타일이 있는 ASS 파일이라면 subtitles 대신 ass 필터를 쓰세요. Windows에서는 필터 안의 경로를 이스케이프해야 하는데, 파일이 분명히 있는데도 명령어가 파일을 찾지 못한다는 오류로 실패하는 가장 흔한 원인이에요.
구워 넣은 자막이 왜 미리보기와 다르게 보이나요?
보통 폰트나 캔버스 크기 때문이에요. 선택한 폰트가 없거나 해당 문자를 그릴 수 없으면 렌더러가 다른 폰트로 대체하고, 폰트 크기는 가상 캔버스를 기준으로 정해지기 때문에 같은 숫자라도 1080p와 4K 소스에서는 글자 크기가 다르게 나와요. 미리보기와 렌더링이 일치하려면 같은 폰트와 같은 캔버스를 써야 해요.
TikTok, Reels, Shorts에는 자막을 구워 넣어야 하나요?
네. 이 플랫폼들은 업로드할 때 자막 파일을 따로 받아주지 않아서, 캡션은 영상에 구워 넣거나 플랫폼이 직접 생성하는 것 중 하나예요. 플랫폼이 만들어주는 캡션은 무료지만 스타일이 플랫폼 것으로 고정되고 이름이나 전문 용어를 자주 틀리기 때문에, 대부분의 크리에이터가 직접 구워 넣는 걸 선택해요.
긴 영상에는 자막을 어떻게 구워 넣나요?
내 컴퓨터에서 로컬로 처리하세요. 두 시간짜리 1080p 녹화는 용량이 몇 기가바이트라서 대부분의 브라우저 도구가 받아주지 않고, 일반적인 회선으로는 업로드에만 한 시간 남짓 걸려요. FFmpeg, HandBrake, 데스크톱 앱은 내 기기에서 바로 다시 인코딩해요. 전체를 인코딩하기 전에 첫 1분만 테스트로 렌더링해 보고, 오디오는 재인코딩하지 말고 복사하세요.