WebVTT(.vtt)를 Advanced SubStation Alpha로 변환하기
.vtt 캡션 파일을 제대로 된 스타일 정의와 센티초 단위 타이밍을 갖춘 스타일 적용 .ass 자막 트랙으로 바꿔보세요. ASS를 요구하는 플레이어와 편집기에 바로 사용할 수 있습니다. 업로드 없이 진행됩니다.
파일이 서버에 전송되지 않습니다. 이 페이지의 모든 변환은 JavaScript FileReader API를 사용하여 브라우저에서 로컬로 실행됩니다. 아무것도 업로드, 기록, 저장되지 않습니다. 기밀 Zoom/Teams 녹화본, 미공개 영상, 법률 인터뷰에도 안전하게 사용할 수 있습니다.
VTT to ASS 변환은 이렇게 작동합니다
WebVTT(.vtt)는 브라우저 캡션용으로 만들어진 형식입니다: WEBVTT 헤더로 시작한 뒤, HH:MM:SS.mmm --> HH:MM:SS.mmm 형식의 타임코드 범위와 한두 줄의 텍스트로 큐를 나열하며, 선택적으로 큐 설정이나 <v Speaker> 음성 태그가 붙을 수 있습니다. Aegisub, 수많은 팬섭 그룹, MPV나 VLC 같은 고급 플레이어가 사용하는 Advanced SubStation Alpha(.ass)는 구조가 전혀 다릅니다: [Script Info] 헤더, 글꼴·색상·외곽선·화면 위치를 정의하는 [V4+ Styles] 섹션, 그리고 줄마다 그 스타일을 참조하는 [Events] 섹션으로 이루어집니다.
SubToolDesk의 VTT to ASS 변환기는 사용자의 브라우저에서 로컬로 WebVTT 큐를 분석하고, WEBVTT 헤더와 음성 태그를 모두 버린 뒤, 모든 타임코드를 ASS의 센티초 H:MM:SS.cc 형식으로 변환하고, 작동하는 [Script Info] 블록, 단일 Default 스타일, 큐당 하나의 Dialogue: 줄이 담긴 완전하고 유효한 .ass 파일을 작성합니다.
VTT를 ASS로 변환하는 방법 (단계별 안내)
- 위 변환기에
.vtt파일을 끌어다 놓거나, “파일 업로드”를 클릭해 파일을 찾아보세요. - 자동 감지된 형식 배지가 VTT로 표시되는지 확인하세요.
- 원본에
<v Speaker>태그나 옮기고 싶지 않은 선행 이름 레이블이 있다면 화자 레이블 제거를 켜세요. - 다운로드를 눌러 원본 파일과 이름이 일치하는 유효한
.ass파일을 저장하세요.
VTT를 ASS로 변환하는 이유
.vtt 캡션 파일은 스타일이 적용된 텍스트를 렌더링하는 편집기가 아니라 브라우저의 네이티브 플레이어를 위해 만들어집니다. ASS로 변환하는 이유는 거의 항상 대상 플레이어나 편집기가 그 텍스트로 무엇을 해야 하는지에서 비롯됩니다:
- 팬섭을 위한 가라오케 스타일 타이밍: 원본 캡션이 브라우저에서 내보낸 WebVTT 트랙으로 시작되었더라도, ASS의 음절 단위 재정의 태그는 팬섭 및 애니메이션 릴리즈 그룹이 가라오케 효과를 만드는 표준적인 방법입니다.
- 화면에 대사 위치 지정: ASS는 여백과 정렬 재정의를 통해 프레임의 어디든 줄을 배치할 수 있으며, 이 변환기가 자동으로 옮겨주지 않는 WebVTT 자체의
align/position큐 설정보다 더 유연한 대안입니다. - 접근성이나 스타일을 위한 색상·외곽선 텍스트: 이 변환기가 자동으로 작성하는 색상과 외곽선이 있는 Default 스타일은 밝거나 복잡한 영상 위에서도 평범한 WebVTT 텍스트로는 보장할 수 없는 가독성을 유지합니다.
- Aegisub, MPV, VLC 작업 흐름: Aegisub는 특별히 ASS 형식을 중심으로 만들어졌고, MPV와 VLC 모두 그 스타일 재정의를 렌더링하므로, 여기서 시작하는 프로젝트는 브라우저 캡션 파일이 아니라 ASS가 필요합니다.
- 줄 단위 글꼴·크기 재정의: ASS는 기본 스타일을 건드리지 않고도 개별 Dialogue 줄에서 글꼴, 크기, 색상을 재정의할 수 있게 해주는데, WebVTT의 큐 설정으로는 이를 표현할 수 없습니다.
- 작업할 스타일 기반 파일 마련하기: 변환을 하면
[Script Info],[V4+ Styles],[Events]구조가 갖춰지므로, Aegisub에서 남은 작업은 스타일 자체를 추가하는 것뿐입니다.
변환 전후 비교: 실제 예시
큐 설정, 음성 태그, 기울임 태그가 포함된 짧은 두 큐짜리 WebVTT 발췌문을 서식 태그 제거는 켜고 화자 레이블 제거는 끈 상태(이 페이지의 기본 상태)로 변환한 예시입니다:
WEBVTT 00:00:03.500 --> 00:00:06.120 align:start position:10% <v Jordan>오늘 통화에 참여해 주셔서 감사합니다. 00:00:06.500 --> 00:00:09.800 <v Priya><i>네, 시작해 볼까요.</i>
[Script Info] Title: SubToolDesk Export ScriptType: v4.00+ ... [V4+ Styles] Format: Name, Fontname, Fontsize, ... Style: Default,Arial,20,&H00FFFFFF,... [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:03.50,0:00:06.12,Default,,0,0,0,,Jordan: 오늘 통화에 참여해 주셔서 감사합니다. Dialogue: 0,0:00:06.50,0:00:09.80,Default,,0,0,0,,Priya: 네, 시작해 볼까요.
WEBVTT 헤더와 align:start position:10% 큐 설정이 모두 사라졌습니다. 이 변환기는 큐 설정에 대응하는 ASS 요소가 없어서 번역하는 대신 그대로 버립니다. 각 타임코드는 WebVTT의 마침표로 구분된 밀리초에서 ASS의 마침표로 구분된 센티초로 바뀌었습니다(00:00:03.500이 0:00:03.50이 되었습니다). 서식 태그 제거가 켜져 있었기 때문에 <i> 태그는 사라졌습니다. <v Jordan>과 <v Priya> 음성 태그도 사라졌지만, 화자 레이블 제거가 꺼져 있었기 때문에 각 이름은 완전히 삭제되는 대신 이름: 접두사로 대사 텍스트에 포함되었습니다. 옮겨갈 별도의 ASS Name 필드가 없어 그 필드는 비어 있습니다.
생성된 .ass 파일에 담기는 내용
결과물은 완전하고 플레이어에서 바로 사용 가능한 ASS 파일입니다. 실제 [Script Info] 블록, Default라는 이름의 스타일 하나가 담긴 [V4+ Styles] 섹션(흰색 텍스트, 영상 위에서 가독성을 위한 얇은 외곽선과 그림자, 하단 중앙 정렬), 그리고 모든 큐에 대한 Dialogue: 줄이 있는 [Events] 섹션이 포함됩니다. 이후 Aegisub에서 결과물을 열어 글꼴, 색상, 위치를 조정할 수 있습니다.
WebVTT 전용 기능은 어떻게 처리되나요
WebVTT의 큐 설정(align:start position:10%와 같은)과 <v Speaker Name> 음성 태그는 이 변환기의 결과물에서 직접적인 ASS 대응이 없습니다. 큐 설정은 버려지고, 음성 태그는 이 사이트의 다른 모든 변환기와 마찬가지로 화자 레이블 제거 토글에 의해 제거됩니다. ASS에서 같은 정보가 필요하다면 그곳에서는 줄 단위 MarginL/MarginR/MarginV 재정의나 전용 스타일을 통해 다르게 표현되며, 기본 파일을 확보한 뒤 수동으로 진행할 후속 단계입니다.
ASS에서 타임코드가 다르게 보이는 이유
WebVTT는 마침표 구분자를 사용해 밀리초 단위로 시간을 측정합니다(00:00:09.400). ASS는 센티초, 즉 100분의 1초 단위로 측정하며 시(hour)에 0을 채우지 않습니다(0:00:09.40). 변환기가 이 반올림을 자동으로 처리하므로, 원본에서 9.4초에 시작하는 큐는 결과물에서 올바른 센티초에 위치합니다.
사람들이 VTT에서 ASS로 옮기는 이유
- 팬섭과 애니메이션 릴리즈 그룹: 원본 캡션이 WebVTT로 내보내졌더라도, ASS의 스타일 및 위치 지정 재정의가 사실상의 표준입니다.
- Aegisub에서 작업하는 편집자: 일반 VTT 가져오기가 아니라 네이티브 프로젝트 형식으로 ASS를 기대합니다.
- 스타일 재정의를 렌더링하는 플레이어와 파이프라인: MPV나 일부 스트리밍 인코더처럼, WebVTT의 큐 설정이 ASS가 제공하는 것과 같은 수준의 위치 지정 및 글꼴 제어로 대응되지 않는 경우입니다.
- 웹에서 내보낸 캡션 트랙에서 스타일이 적용된 자막 프로젝트 시작하기: 이 변환기를 사용해 손으로 스타일을 추가하기 전에 구조적으로 유효한 ASS 파일을 먼저 마련합니다.
정책이 아닌 구조로 보장하는 개인정보 보호
VTT를 분석하고 ASS 파일을 작성하는 과정 모두 사용자의 브라우저 탭에서 실행되는 JavaScript 안에서 이루어집니다. 이 기능이 호출할 업로드 엔드포인트 자체가 존재하지 않으며, 이는 원본이 공개된 YouTube 캡션 내보내기든 기밀 녹음이든 똑같이 중요합니다.
이 변환기가 유지하는 것과 제거하는 것
유지되는 것:
- 원래의 순서와 문장부호를 그대로 유지한 모든 발화 텍스트.
- WebVTT의 밀리초 정밀도에서 ASS의 센티초 정밀도로, 어긋남 없이 다시 서식이 지정된 각 큐의 타이밍.
- VTT 파일에 등장한 순서와 동일하게, 원본 큐당 하나의
Dialogue:줄. - 화자 레이블 제거가 꺼져 있을 때, 접두사로 대사 텍스트에 포함된
Jordan과 같은 음성 태그 이름.
제거되는 것:
WEBVTT헤더 줄, 그리고 모든NOTE,STYLE,REGION블록.align:start position:10%와 같은 타임스탬프 줄의 큐 설정. 이 변환기의 결과물에서 ASS는 직접적인 대응이 없습니다.- 서식 태그 제거가 켜져 있을 때
<i>,<b>,<u>와 같은 인라인 서식 태그. - 화자 레이블 제거가 켜져 있을 때 이름까지 포함해 통째로 제거되는
<v Speaker Name>과 같은 음성 태그.
자주 발생하는 문제와 해결 방법
- 결과물에 여전히 대사 텍스트 안에
<i>나<b>태그가 남아 있습니다: 서식 태그 제거를 켜세요. 변경하지 않았다면 기본값으로 켜져 있습니다. Jordan:과 같은 이름이 여전히 대사 텍스트에 붙어 있습니다: 화자 레이블 제거를 켜세요. 이 페이지에서는 기본적으로 꺼져 있어, 켜지 않으면 음성 태그의 이름이 텍스트 접두사로 그대로 통과됩니다.- 큐의 위치 지정이나 정렬이 사라진 것처럼 보입니다: 정상적인 현상입니다. WebVTT의
align/position큐 설정은 ASS로 자동으로 옮겨가지 않습니다. 필요하다면 Aegisub에서 여백이나 정렬 재정의로 그 위치 지정을 다시 만드세요. - Aegisub에서 모든 줄이 같은 글꼴, 크기, 색상으로 표시됩니다: 정상적인 현상입니다. 이 변환기는 단일 Default 스타일을 작성합니다. 이후 Aegisub에서 파일을 열어 추가 스타일이나 줄 단위 재정의를 만드세요.
- 변환 후 자막이 약간 어긋나 보입니다: ASS는 센티초 정밀도만 저장하므로, 정확히 밀리초 단위로 맞춰진 큐는 최대 100분의 1초까지 어긋날 수 있으며, 이는 눈에 띄는 정도보다 훨씬 작습니다. 그보다 더 큰 어긋남이라면 원본 VTT의 타임코드를 확인하세요.
- 발음 기호가 있는 문자나 비영어 텍스트가
é처럼 깨진 문자로 표시됩니다: 원본.vtt가 UTF-8로 저장되지 않은 것입니다. UTF-8로 다시 내보내거나 저장한 뒤 다시 업로드하세요.
이 도구가 의도적으로 하지 않는 일
단일 Default 스타일만 작성하며, 가라오케 타이밍이나 캐릭터별 색상, 위치 재정의를 추측하려 하지 않습니다. 이는 유효한 기본 파일을 확보한 뒤 수동으로(또는 Aegisub의 도움을 받아) 진행할 단계입니다. 또한 WebVTT 큐 설정을 ASS의 여백이나 정렬 재정의로 자동으로 번역하지도 않습니다. 그 대응 관계는 일대일이 아니므로, 필요하다면 사용자가 직접 의도적으로 적용하도록 남겨 둡니다.
자주 묻는 질문
VTT 파일을 ASS로 변환하려면 어떻게 하나요?
위 변환기에 .vtt 파일을 끌어다 놓거나, 내용을 왼쪽 패널에 붙여넣으세요. 형식 배지가 VTT임을 확인한 뒤 다운로드를 누르세요. 완전하고 유효한 .ass 파일이 브라우저에서 생성됩니다.
ASS 파일이 Aegisub, VLC, MPV에서 제대로 열리나요?
네. 결과물에는 유효한 [Script Info] 헤더, Default 스타일이 포함된 [V4+ Styles] 섹션, 올바르게 서식이 지정된 Dialogue 줄이 있는 [Events] 섹션이 포함되어 있으며, 이는 세 프로그램 모두가 기대하는 구조입니다.
WebVTT 음성 태그와 큐 위치 지정은 어떻게 되나요?
<v Speaker Name>과 같은 음성 태그는 화자 레이블 제거 토글에 의해 제거됩니다. align이나 position 같은 큐 위치 지정 설정은 자동으로 옮겨가지 않으며, ASS는 그 정보를 스타일과 줄 단위 여백 재정의를 통해 다르게 표현합니다.
ASS 출력에서 타임코드가 다르게 보이는 이유는 무엇인가요?
ASS는 WebVTT의 밀리초 타임코드와 다른 형식인 센티초 정밀도를 씁니다(00:00:09.400 대신 0:00:09.40). 변환기가 이 변환을 자동으로 처리합니다.
이 변환을 위해 제 캡션 파일이 어딘가에 업로드되나요?
아니요. VTT 분석과 ASS 파일 생성 모두 전적으로 브라우저의 JavaScript 엔진 안에서 이루어집니다. 서버로 전송되는 것은 없습니다.
YouTube나 Vimeo가 .ass 자막 파일을 받아주나요?
아니요. YouTube와 Vimeo를 포함한 대부분의 업로드 양식은 SRT나 VTT를 받지만 ASS는 받지 않습니다. 스타일을 렌더링하는 편집기와 플레이어(Aegisub, MPV, VLC)를 위해서는 ASS로 변환하되, 플랫폼 업로드용으로는 VTT나 SRT 사본을 따로 보관하세요.
ASS가 VTT보다 나은가요, 아니면 그냥 VTT를 쓰는 게 좋을까요?
필요에 따라 다릅니다. ASS는 VTT의 큐 설정으로는 완전히 표현할 수 없는 위치 지정, 가라오케 타이밍, 줄 단위 글꼴·색상 재정의를 지원합니다. VTT는 브라우저와 HTML5 <track> 요소가 실제로 요구하는 형식입니다. Aegisub나 MPV 같은 플레이어에서 작업 흐름에 스타일이 특별히 필요할 때는 ASS를 쓰고, 웹 재생에는 VTT를 쓰세요.