SRT 자막 도구란
영상 자막에서 가장 널리 쓰이는 SRT(SubRip) 파일과 웹 표준 자막 형식인 WebVTT(.vtt)를 다루는 도구입니다. 자막이 영상과 어긋날 때 모든 타임코드를 한 번에 초 단위로 이동해 싱크를 맞추고, SRT와 WebVTT를 서로 변환할 수 있습니다. 자막 텍스트를 직접 붙여넣거나 .srt 파일을 업로드해 사용하며, 입력한 자막은 외부로 전송되지 않고 브라우저 안에서만 처리됩니다.
사용법
- .srt 파일을 업로드하거나 입력창에 자막 텍스트를 붙여넣습니다.
- 싱크 이동: 이동할 초(예:
1.5,-2)를 입력하고 버튼을 누르면 모든 타임코드가 그만큼 이동합니다. - 변환: SRT → WebVTT 또는 WebVTT → SRT 버튼으로 형식을 바꿉니다.
- 결과는 아래 창에 표시되며, 복사 또는 .srt / .vtt 다운로드로 저장할 수 있습니다.
- 한 번 처리한 결과를 이어서 다시 처리하려면, 결과를 입력창에 붙여넣고 다시 실행하세요.
파일은 업로드 버튼으로 고르는 대신 점선 영역이나 입력창 위로 끌어다 놓아도 불러올 수 있고, .srt와 .vtt는 물론 .txt로 저장된 자막도 열립니다. 파일을 읽으면 이전 결과는 비워지고 파일 이름이 상태 줄에 표시됩니다. 각 기능을 실행하면 상태 줄에 몇 개의 타임코드를 처리했는지 함께 나오므로, 예상한 자막 수와 맞는지 바로 확인할 수 있습니다. '지우기'를 누르면 입력·결과·이동 값·선택한 파일이 한 번에 비워집니다.
어긋난 자막을 맞추는 세 가지 방법
싱크 이동은 자막 전체가 같은 크기만큼 밀려 있을 때 씁니다. 이동할 초를 넣고 버튼을 누르면 모든 타임코드가 그만큼 앞뒤로 움직입니다. 0.1초 단위 소수도 되고, 음수를 넣으면 자막이 앞당겨집니다. 계산 결과가 0초보다 작아지면 00:00:00,000으로 고정되므로 영상 시작 부분의 자막이 음수 시간이 되는 일은 없습니다.
프레임레이트 변환은 같은 영상이라도 23.976fps용으로 만든 자막을 25fps 영상에 쓰는 것처럼, 재생 속도 기준이 달라 자막이 점점 벌어지거나 좁아질 때 사용합니다. 원본 fps와 변환 fps를 고르면 모든 타임코드에 (원본 fps ÷ 변환 fps) 비율이 곱해집니다. 23.976과 25, 29.97과 30처럼 가까운 값끼리 자주 쓰이며, 두 값이 같으면 변환할 것이 없다는 안내가 표시됩니다.
2점 앵커 선형 보정은 시작 부분과 끝부분의 어긋난 정도가 서로 다를 때 쓰는 가장 정확한 방법입니다. 영상 앞쪽 대사 하나와 뒤쪽 대사 하나를 골라 자막에 적힌 '현재 시각'과 실제로 들려야 하는 '올바른 시각'을 각각 입력하면, 두 점을 지나는 1차식으로 전체 타임코드를 다시 계산합니다. 이동과 배속 보정이 한 번에 이루어지므로, fps를 모르는 상태에서도 어긋남을 잡을 수 있습니다. 두 기준의 현재 시각이 같으면 기울기를 구할 수 없어 안내 메시지가 나옵니다.
SRT와 WebVTT의 차이
SRT(SubRip)는 자막 번호, 타임코드, 자막 내용이 빈 줄로 구분되어 반복되는 단순한 텍스트 형식입니다. 대부분의 동영상 플레이어가 지원해 가장 널리 쓰입니다. WebVTT(.vtt)는 웹 브라우저의 video 태그에서 쓰는 표준 형식으로, 파일 맨 앞에 WEBVTT 한 줄이 들어가고 타임코드의 밀리초 구분자가 쉼표(,)가 아니라 점(.)이라는 점이 다릅니다.
'SRT → WebVTT' 버튼을 누르면 기존 헤더를 정리한 뒤 맨 앞에 WEBVTT 줄을 붙이고 모든 타임코드를 점 형식으로 바꿉니다. 'WebVTT → SRT'는 반대로 헤더를 없애고 쉼표 형식으로 되돌립니다. 자막 번호와 대사는 그대로 두고 타임코드 부분만 손대므로, 변환 후에도 내용이 바뀌지 않습니다. 싱크 이동이나 보정을 실행할 때는 입력한 자막의 화살표 줄을 보고 원래 형식을 자동으로 판별해 같은 형식으로 결과를 만들어 줍니다.
주의점
인식 대상은 HH:MM:SS,mmm 또는 HH:MM:SS.mmm 형태의 타임코드입니다. 이 형식이 하나도 없으면 처리하지 않고 안내 메시지가 나오므로, 자막이 아닌 텍스트나 손상된 파일은 걸러집니다. 파일은 UTF-8로 읽기 때문에 EUC-KR 등 다른 인코딩으로 저장된 오래된 자막은 글자가 깨져 보일 수 있습니다. 이럴 때는 메모장 등에서 UTF-8로 다시 저장한 뒤 사용하세요.
각 기능은 항상 위쪽 입력창의 내용을 대상으로 동작하고 결과는 아래 결과창에 나옵니다. 싱크 이동을 한 뒤 프레임레이트 변환까지 이어서 적용하려면 결과를 복사해 입력창에 붙여넣고 다시 실행해야 합니다. 처리가 끝나면 결과창의 복사 버튼을 쓰거나 '.srt 다운로드' 또는 '.vtt 다운로드'로 파일을 받을 수 있으며, 파일 이름은 subtitle.srt와 subtitle.vtt로 저장됩니다. 원본 파일은 그대로 남으니, 결과가 마음에 들지 않으면 다시 불러와 처음부터 시도하면 됩니다.
자주 묻는 질문
업로드한 자막 파일이 서버로 전송되나요?
아니요. 모든 처리는 브라우저 안에서만 실행되며 붙여넣거나 업로드한 자막 데이터는 서버로 전송되거나 저장되지 않습니다.
자막이 화면보다 빠르거나 느릴 때 어떻게 맞추나요?
싱크 이동 기능에서 초 단위 값을 입력합니다. 자막이 너무 빨리 나오면 양수(+)로 늦추고, 너무 늦게 나오면 음수(-)로 당깁니다. 0.5 같은 소수도 입력할 수 있습니다.
SRT와 WebVTT(VTT)의 차이는 무엇인가요?
둘 다 자막 형식이며 구조가 비슷합니다. WebVTT는 파일 첫 줄에 WEBVTT 헤더가 있고 타임코드의 밀리초 구분자가 쉼표(,)가 아닌 점(.)입니다. 이 도구가 두 형식을 자동으로 변환합니다.
타임코드 형식이 맞지 않으면 어떻게 되나요?
표준 형식(HH:MM:SS,mmm 또는 HH:MM:SS.mmm)의 타임코드만 처리됩니다. 인식할 타임코드가 하나도 없으면 안내 메시지가 표시되고 처리는 진행되지 않습니다.
앞부분은 맞는데 뒤로 갈수록 어긋납니다.
전체가 같은 크기로 밀린 것이 아니라 속도 기준이 다른 경우입니다. '2점 앵커 선형 보정'에서 앞쪽 대사와 뒤쪽 대사의 현재 시각과 올바른 시각을 각각 입력하면 전체 타임코드가 1차식으로 다시 계산되어 어긋남이 잡힙니다.
프레임레이트 변환은 언제 쓰나요?
23.976fps 영상용 자막을 25fps 영상에 쓰는 것처럼 재생 속도 기준이 다를 때 사용합니다. 원본 fps와 변환 fps를 고르면 모든 타임코드에 (원본 ÷ 변환) 비율이 곱해집니다. 두 값이 같으면 변환할 것이 없다는 안내가 나옵니다.
여러 기능을 이어서 적용할 수 있나요?
각 기능은 입력창의 내용을 대상으로 실행되고 결과는 결과창에 나옵니다. 싱크 이동 뒤에 프레임레이트 변환까지 하려면 결과를 복사해 입력창에 붙여넣고 다시 실행하세요.
결과를 파일로 저장할 수 있나요?
네. 결과창의 복사 버튼으로 전체를 복사하거나, '.srt 다운로드'와 '.vtt 다운로드' 버튼으로 subtitle.srt·subtitle.vtt 파일을 받을 수 있습니다.