SMI ↔ SRT 자막 변환기
SMI 자막과 SRT 자막을 인코딩 걱정 없이 일괄 변환합니다.
- 업로드
- 설정
- 변환
- 다운로드
변환 결과
아직 추가한 파일이 없습니다
자막 파일을 추가하면 감지한 인코딩, 자막 수, 미리보기를 여기에서 바로 확인할 수 있습니다.
SMI ↔ SRT 자막 변환기 이용 방법
- 파일 추가 — 자막 파일(.smi, .sami, .srt, .vtt)을 위 영역에 끌어다 놓거나 눌러서 고릅니다. 여러 파일을 한 번에, 여러 번 나눠서 추가해도 됩니다.
- 결과 확인 — 추가하는 즉시 변환됩니다. 파일마다 감지한 인코딩, 자막 수, 마지막 자막 시각과 처음 5개 자막 미리보기가 나타납니다. 미리보기 한글이 깨져 있으면 그 파일의 인코딩을 바꿉니다.
- 설정 조정 — 변환할 형식, 싱크(초), 프레임레이트, 출력 인코딩을 바꾸면 미리보기에 바로 반영됩니다.
- 다운로드 — 파일이 하나면 그대로, 여러 개면
converted_subtitles.zip하나로 내려받습니다. 파일별 다운로드 버튼도 있습니다.
설정은 주소(URL)에 저장되므로, 자주 쓰는 설정을 즐겨찾기해 두면 다음에도 그대로 쓸 수 있습니다. 파일은 서버로 전송되지 않고 브라우저 안에서만 처리합니다.
주요 기능
- 양방향·다형식 변환 — SMI → SRT, SRT → SMI는 물론 웹 표준 자막인 WebVTT(.vtt) 입출력도 지원합니다. 자동 모드는 파일 내용을 보고 형식을 판별하므로 확장자가 틀린 파일도 올바르게 처리합니다.
- 인코딩 자동 감지 — BOM → UTF-8 검사 → 문자 분포 분석(jschardet) → 한글 판별 순서로 EUC-KR(CP949)·UTF-8·UTF-16·Shift_JIS·GBK·Big5 등을 구분합니다.
- 실제 EUC-KR 저장 — UTF-8을 읽지 못하는 구형 기기를 위해 CP949 바이트로 저장할 수 있습니다. 이모지처럼 EUC-KR에 없는 문자는 SMI에서는
&#코드;, SRT·VTT에서는 ?로 바꿉니다. - 싱크·프레임레이트 보정 — 전체 자막을 0.1초 단위로 앞뒤로 옮기고, 23.976/24/25/29.97 fps 차이로 점점 어긋나는 자막의 시간을 늘이거나 줄입니다.
- 정확한 SMI 해석 — 대소문자·따옴표·추가 속성이 섞인 SYNC/P 태그,
<br>줄바꿈, 종료 SYNC, 여러 언어(KRCC·ENCC) 클래스를 처리합니다. - 일괄 처리 — 수십 개 파일도 한 번에 변환해 ZIP으로 받습니다. 이름이 같은 파일은 ZIP 안에서 “이름 (2).srt”처럼 자동으로 구분합니다.
SMI·SRT·VTT 형식 비교
| 구분 | SMI (SAMI) | SRT (SubRip) | VTT (WebVTT) |
|---|---|---|---|
| 시간 표기 | <SYNC Start=61000> (ms) | 00:01:01,000 | 00:01:01.000 |
| 끝 시각 | 다음 SYNC 또는 | 직접 표기 | 직접 표기 |
| 서식 | HTML·CSS (글꼴·색) | <i> <b> <u> <font color> | <i> <b> <u>, CSS |
| 여러 언어 | 한 파일에 가능 (클래스) | 언어별 파일 | 언어별 파일 |
| 주 사용처 | 국내 PC 플레이어 | 대부분의 플레이어·TV·편집기 | 웹 HTML5 동영상 |
싱크와 인코딩 팁
- 일정하게 어긋날 때: 대사보다 자막이 먼저 나오면 +, 늦게 나오면 −로 조정합니다. 예를 들어 자막이 2초 늦으면 −2를 입력합니다.
- 점점 어긋날 때: 영상 시작 부분은 맞는데 1시간 뒤 4~5초씩 벌어진다면 23.976 fps와 25 fps 차이(약 4.1%)입니다. 프레임레이트 보정을 먼저 맞추고, 남은 차이를 싱크 조정으로 맞춥니다.
- 한글 깨짐: 미리보기에서 한글이 ‘Çѱے이나 ‘�’처럼 보이면 그 파일의 인코딩을 EUC-KR(또는 UTF-8)로 바꿉니다. 내려받은 파일이 TV·구형 플레이어에서 깨지면 출력 인코딩을 ‘UTF-8 (BOM 포함)’이나 ‘EUC-KR’로 바꿉니다.
- 파일 이름: 플레이어가 자막을 자동으로 불러오게 하려면 영상과 같은 이름(예:
movie.mkv↔movie.srt)으로 같은 폴더에 둡니다.
변환 규칙
SMI의 끝 시각은 다음 SYNC(빈 자막 포함)의 시작 시각으로 정하고, 마지막 자막은 3초 동안 표시합니다. 싱크 조정 후 0초 이전으로 완전히 밀려난 자막은 제외하고, 일부만 걸친 자막은 0초부터 시작합니다. 모든 시각은 1ms 단위 정수로 저장합니다.
자주 묻는 질문
Q. SMI와 SRT의 차이점은 무엇인가요?
SMI(SAMI)는 마이크로소프트가 만든 HTML 비슷한 자막 형식으로, 국내에서 오래 쓰였습니다. 글꼴·색상과 여러 언어를 한 파일에 담을 수 있습니다. SRT(SubRip)는 번호·시간·대사만 적는 단순한 형식이라 거의 모든 플레이어, 스마트 TV, 영상 편집 프로그램, 유튜브가 지원합니다. 호환성이 필요하면 SRT를 권장합니다.
Q. 자막 파일이 서버로 전송되나요?
아니요. 파일 읽기, 인코딩 감지, 변환, ZIP 압축까지 모두 사용 중인 브라우저 안에서 처리합니다. 파일은 어떤 서버로도 업로드되지 않으며, 페이지를 닫으면 메모리에서 사라집니다.
Q. 변환한 자막의 한글이 깨져 보여요.
원본 인코딩을 잘못 읽은 경우입니다. 국내 SMI는 대부분 EUC-KR(CP949), 최근 파일은 UTF-8입니다. 이 변환기는 BOM, UTF-8 검사, 문자 분포 분석 순서로 인코딩을 자동 감지하고 파일마다 감지 결과를 보여 줍니다. 미리보기 한글이 깨져 있으면 해당 파일의 인코딩을 직접 바꿔 보세요. 저장한 파일이 구형 플레이어에서 깨지면 출력 인코딩을 ‘UTF-8 (BOM 포함)’이나 ‘EUC-KR’로 바꿔 다시 받으면 됩니다.
Q. 자막이 영상보다 빠르거나 느려요. 어떻게 맞추나요?
처음부터 끝까지 같은 간격으로 어긋나면 싱크 조정에 초 단위로 입력합니다. 자막이 늦게 나와야 하면 +, 빨리 나와야 하면 −입니다(예: 대사보다 1.5초 먼저 뜨면 +1.5). 앞부분은 맞는데 뒤로 갈수록 점점 어긋나면 프레임레이트 차이이므로 프레임레이트 보정에서 23.976 → 25 fps 같은 항목을 고르세요.
Q. 한국어와 영어가 함께 들어 있는 SMI는 어떻게 변환하나요?
SMI의 클래스(KRCC, ENCC 등)를 자동으로 찾아 기본으로 한국어만 변환합니다. 설정의 ‘자막 언어’에서 영어만 고르거나 ‘모든 언어 함께’를 선택하면 두 언어를 한 화면에 함께 표시하는 자막을 만들 수 있습니다.
Q. VTT는 언제 필요한가요?
WebVTT(.vtt)는 웹 표준 자막 형식입니다. 웹사이트의 HTML5 동영상(<track> 태그)에는 VTT만 쓸 수 있고, 유튜브 등 동영상 플랫폼도 SRT와 함께 VTT를 지원합니다. 변환 형식에서 VTT를 고르면 SMI·SRT를 한 번에 VTT로 바꿀 수 있습니다.