SRT 는 메모장으로 열어 고칠 수 있는 가장 단순한 자막 포맷입니다. 단순한 만큼 규칙이 엄격해서, 한 글자만 어긋나도 플레이어가 파일을 통째로 못 읽는 일이 생깁니다.
고치기 전에. 원본을 한 벌 복사해 두세요. 그리고 저장할 때 인코딩을 꼭 확인하세요 — 메모장이 ANSI 로 저장해 버리면 고친 내용과 상관없이 글자가 전부 깨집니다. 자신 없으면 고친 다음 자막 변환기에 넣어 BOM 없는 UTF-8 로 한 번 통과시키면 됩니다.
1
00:00:01,000 --> 00:00:04,000
안녕하세요, 첫 번째 자막입니다.
2
00:00:05,500 --> 00:00:08,200
두 번째 자막입니다.
두 줄로 쓸 수도 있습니다.
| 줄 | 내용 | 규칙 |
|---|---|---|
| 1번째 | 자막 번호 | 1부터 차례로. 숫자만 있어야 합니다 |
| 2번째 | 시작 시각 --> 끝 시각 |
시:분:초,밀리초. 쉼표입니다 |
| 3번째~ | 자막 본문 | 여러 줄 가능. 관행은 두 줄까지 |
| 마지막 | 빈 줄 | 블록의 끝 표시. 빠지면 다음 블록과 붙습니다 |
자막 사이의 빈 줄은 장식이 아니라 구분자입니다. 이게 없으면 플레이어는 다음 자막의 번호를 앞 자막의 본문으로 읽습니다. 그때부터 블록 구분이 통째로 어긋나서, 보통 그 지점 이후가 전부 안 나옵니다.
1
00:00:01,000 --> 00:00:04,000
안녕하세요
2 ← 빈 줄이 없어 앞 자막에 붙는다
00:00:05,000 --> 00:00:08,000
두 번째
SRT 의 밀리초 구분자는 쉼표(00:00:01,000)입니다.
마침표(00:00:01.000)는 WebVTT 쪽 문법이라 SRT 에서는 타임코드로
인식되지 않습니다. 엑셀이나 자동 치환으로 한 번에 바꿔 버리는 사고가 흔합니다.
--> 는 하이픈 두 개 + 꺾쇠입니다. 워드나 한글 문서에
붙여 넣었다 돌아오면 자동 고침이 → 한 글자로 바꿔 놓습니다.
그러면 그 줄은 타임코드가 아니게 됩니다. 앞뒤 공백도 한 칸씩 있어야 안전합니다.
00:00:08,000 --> 00:00:05,000 처럼 뒤집히면 자막이 아예
안 뜨거나 한 프레임만 번쩍입니다. 싱크를 손으로 빼다가 음수가 되는 경우도
마찬가지입니다 — 시각은 00:00:00,000 아래로 못 내려갑니다.
가장 흔한 사고입니다. 내용은 잘 고쳤는데 메모장이 ANSI(CP949) 로 저장해서 한글이 깨지거나, 반대로 BOM 붙은 UTF-8 로 저장해서 첫 자막이 사라집니다. 자세한 것은 자막 글자가 깨질 때와 첫 자막만 안 나올 때에 적어 두었습니다.
SRT 규격에는 서식이 없지만, 플레이어 대부분이 HTML 식 태그 몇 개를 받아 줍니다.
| 태그 | 쓰임 | 지원 |
|---|---|---|
<i> | 기울임 — 속마음, 외국어, 내레이션 | 거의 전부 |
<b> | 굵게 | 거의 전부 |
<u> | 밑줄 | 대부분 |
<font color="#ffcc00"> | 색 | 갈립니다 — TV 는 무시하는 쪽이 많음 |
열었으면 같은 블록 안에서 닫아야 합니다. 블록을 넘어가면 그 뒤 자막이 전부 기울어지거나, 태그가 글자 그대로 화면에 찍힙니다.
자막 변환기로 포맷을 바꾸면 이 셋(<i>
<b> <u>)은 그대로 따라갑니다. 색과 글꼴은
담을 자리가 없어 빠집니다.
배포자 서명이나 사이트 주소가 첫 자막이나 마지막 자막에 들어 있는 경우입니다. 블록을 통째로 지우세요 — 번호 줄, 타임코드 줄, 본문, 빈 줄까지 네 덩어리 전부입니다. 본문만 지우고 타임코드를 남기면 빈 자막이 깜빡입니다.
번호는 다시 매기지 않아도 대체로 괜찮습니다. 요즘 플레이어는 번호를 참고만 하고 타임코드로 재생합니다. 다만 번호를 아예 비워 두면 블록 구분이 깨지니 그건 안 됩니다.
줄바꿈을 지우고 한 줄로 이으면 됩니다. 반대로 긴 한 줄을 두 줄로 나눌 때는 의미 단위로 끊는 게 읽기 좋습니다. 세 줄 이상은 화면을 너무 가려서 권하지 않습니다.
손으로 하지 마세요. 자막이 수백 개라 실수가 반드시 납니다. 자막 싱크 맞추는 법을 보고 변환기의 통째로 밀기를 쓰면 한 번에 끝납니다.
| 편집기 | 쓸 만한가 |
|---|---|
| 윈도우 메모장 | 됩니다. 저장할 때 인코딩 칸(화면 아래 또는 저장 대화상자)을 꼭 보세요 |
| 메모장++ · VS Code | 권합니다. 현재 인코딩과 줄바꿈이 상태 표시줄에 늘 보입니다 |
| 워드 · 한글 | 쓰지 마세요. 자동 고침이 --> 와 따옴표를 바꿔 놓습니다 |
| 엑셀 | 쓰지 마세요. 타임코드를 시간 서식으로 바꿔 버립니다 |
SRT · 자막 N개 뱃지를 봅니다. 고치기 전과 개수가 맞는지,
0 이 아닌지 확인합니다. 0 이면 구조가 깨졌거나 인코딩을 잘못 읽은 것입니다.UTF-8(BOM 없는 것), 줄바꿈을 CRLF 로
두고 전체 변환 — 메모장이 섞어 놓은 줄바꿈까지 한 번에 정리됩니다.요즘 플레이어는 대부분 괜찮습니다. 번호는 참고용이고 실제 재생은 타임코드로 합니다. 다만 아주 오래된 기기 중에는 번호가 이어지지 않으면 거기서 멈추는 것도 있으니, 많이 지웠다면 다시 매겨 주는 쪽이 안전합니다.
규격은 허용하지 않지만 실제로는 플레이어마다 다릅니다. 하나만 보여 주거나, 둘을 위아래로 겹쳐 그리거나, 뒤엣것이 앞엣것을 밀어냅니다. 화자 둘을 동시에 띄우려면 겹치는 블록 두 개 대신 한 블록에 두 줄로 쓰는 쪽이 안전합니다.
SRT 는 윈도우에서 태어난 포맷이라 CRLF 가 관행이고 가장 안전합니다.
PC 플레이어는 둘 다 읽지만, 오래된 TV·셋톱박스 중에 LF 만 있는 파일에서 블록
구분을 놓치는 것이 있습니다. 변환기의 줄바꿈 설정에서 CRLF 를
고르면 통째로 맞춰 줍니다.
편집기가 다른 인코딩으로 저장한 것입니다. 내용은 그대로이니 자막 변환기에 넣고 원본 인코딩을 바꿔 가며 미리보기로 맞는 것을 찾으면 됩니다 — 자막 글자가 깨질 때에 역추적하는 방법을 적어 두었습니다.
SMI 는 HTML 비슷한 태그 구조라 손으로 고치기가 훨씬 까다롭습니다. SRT 로 먼저 바꾼 뒤 고치는 쪽을 권합니다 — 요즘 플레이어 호환성도 그쪽이 낫습니다.