본문으로 바로 가기
SubtitleMatrix

TXT를 ASS로 변환

형식 변환일반 텍스트 전사
또는 자막 텍스트를 붙여넣으세요

옵션

원본에 종료 시간이 없을 때(일반 텍스트, LRC) 사용합니다. 결과물의 시간축은 변환되는 것이 아니라 여기서 새로 만들어지므로, 이 숫자가 그대로 결과가 됩니다.

이 변환에서 달라지는 것

2가지가 버려지거나 결정이 필요합니다

  • 타이밍

    시간축 자체 — 원본이 타이밍을 기록하지 않아 결과물의 시간축은 변환된 것이 아니라 새로 만든 것입니다

  • 정밀도

    타이밍 정밀도 — 결과물의 시계가 더 거칠어 모든 타임스탬프가 가장 가까운 10 ms로 반올림됩니다

이 목록은 불러온 특정 파일이 아니라 두 형식의 기능 행렬에서 나옵니다. 어떤 파일은 형식이 허용하지만 행렬이 모델링하지 않는 기능을 쓰고 있다면 더 많이 잃을 수 있습니다.

TXT를 ASS로 바꾸면 글자는 한 줄도 바뀌지 않지만 시간축은 새로 만들어집니다. TXT에는 시간이 전혀 없으므로 결과의 타임코드는 변환된 값이 아니라 여기서 배치한 값입니다. 입력에 있던 것을 잃는다기보다 결과에 시간이 더해지는 방향이고, 손실 목록의 시간 항목은 그 사실을 가리킵니다.

TXT는 줄의 순서만 담고, ASS는 Dialogue 줄에 0:00:04.13처럼 0.01초까지 적습니다. 첫 줄이 0에서 시작하고 다음 줄은 앞 줄이 끝난 지점에서 시작하므로 간격이 일정하며, 페이지의 표시 시간 옵션이 각 줄의 폭을 정합니다. 배치된 값은 ASS에 적히면서 10ms 단위로 반올림되고, 어느 줄도 5ms 넘게 움직이지 않습니다.

각 줄이 cue 하나가 되고, 빈 줄은 문단 구분으로만 쓰여 cue가 되지 않습니다. 여러 줄짜리 문단은 줄마다 따로 시간을 받으므로 대본을 그대로 넣으면 줄 수만큼 cue가 생깁니다. cue는 시작 시간순으로 정렬됩니다.

파일 하나든 시즌 전체든 대기열이 차례로 처리해 ZIP 하나로 내려 줍니다. 변환은 브라우저 안에서 실행되어 원본 텍스트가 업로드되지 않습니다.

예시

일반적인 TXT 파일을 ASS로 변환

입력

The quick brown fox jumps over the lazy dog.

Second paragraph, first line.
Second paragraph, second line.

결과물

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0,0,0,,The quick brown fox jumps over the lazy dog.
Dialogue: 0,0:00:02.00,0:00:04.00,Default,,0,0,0,,Second paragraph, first line.
Dialogue: 0,0:00:04.00,0:00:06.00,Default,,0,0,0,,Second paragraph, second line.

이 결과에서 사라지는 것: 시간과 정밀도. 나머지는 줄 단위로 같습니다.

줄 바꿈이 섞인 TXT를 같은 방식으로 변환

입력


Hello world.

Second block.

결과물

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0,0,0,,Hello world.
Dialogue: 0,0:00:02.00,0:00:04.00,Default,,0,0,0,,Second block.

실제 파일에서 흔한 손상입니다. 줄 바꿈이 섞이고, 공백이 남고, 빈 필드가 있습니다. 위의 깔끔한 예시와 비교해 파서가 무엇을 넘겨주는지 보세요.

자주 묻는 질문

TXT를 ASS로 바꾸면 타임코드는 어디서 나오나요?

새로 만들어집니다. TXT에는 시간이 전혀 없어서 결과의 시간축은 변환이 아니라 배치입니다. 첫 줄이 0에서 시작하고 다음 줄은 앞 줄이 끝난 지점에서 시작하며, 페이지의 표시 시간 옵션이 각 구간의 폭을 정합니다.

TXT에서 ASS로 가면 시간이 왜 0.01초 단위가 되나요?

ASS는 0:00:04.13처럼 0.01초까지 적기 때문입니다. 배치된 구간이 기록될 때 가장 가까운 10ms로 반올림되어, 줄이 5ms 넘게 움직이거나 순서가 바뀌는 일은 없습니다.

TXT를 ASS로 바꾸면 결과가 어떻게 생겼나요?

cue 번호 없이 자막마다 [Events] 구역의 Dialogue 줄 하나가 됩니다. SRT가 번호를 두는 자리에 ASS는 레이어 필드를 두고, TXT의 줄 하나가 ASS의 cue 하나가 되어 순서와 글자는 같습니다.

빈 줄은 ASS 결과에서 어떻게 되나요?

빈 줄은 cue가 되지 않습니다. TXT에서 문단 구분으로만 쓰이므로 결과의 시간축에도 빈 구간이 생기지 않습니다. 문단 사이에 쉼을 넣고 싶다면 표시 시간을 늘리거나 뒤 cue를 미는 편이 낫습니다.

TXT cue 순서는 ASS에서도 유지되나요?

유지되고, 변환 과정에서 시작 시간이 이른 순서로 정렬됩니다. TXT가 줄을 뒤섞어 두었다면 ASS 결과에서 순서가 바로잡히며, 이는 내용이 아니라 구조를 바꾸는 일입니다.

ASS를 다시 TXT로 바꾸면 무엇을 잃나요?

시간, 스타일, 위치, 노래방, 줄 묶음, 형식 고유 정보를 잃습니다. 이 방향의 손실 목록과 다른 이유는 두 형식이 서로 다른 것을 보관하기 때문입니다. ASS에서 TXT로 가면 시간축이 통째로 사라집니다.

TXT를 ASS로 바꾸면 결과 인코딩은 어떻게 되나요?

원본이 무엇이었든 결과는 UTF-8에 유닉스 줄 바꿈, 바이트 순서 표시 없음입니다. UTF-16이나 윈도우 단일 바이트 인코딩으로 들어온 파일은 읽는 과정에서 디코딩되며, 그 사실은 결과 패널에 표시됩니다.

관련 도구