본문으로 바로 가기
SubtitleMatrix

CSV를 ASS로 변환

또는 자막 텍스트를 붙여넣으세요

이 변환에서 달라지는 것

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

  • 정밀도

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

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

CSV를 ASS로 바꾸면 표의 행이 Dialogue 줄로 옮겨지고, 시간은 0.01초 단위로 반올림됩니다. CSV가 담지 못하는 스타일이나 위치를 새로 잃는 것은 아니고, 이미 밀리초로 적힌 시간이 ASS의 정밀도에 맞춰지는 것이 이 방향의 유일한 손실입니다.

CSV는 시간을 00:00:04.126처럼 천분의 1초까지 적고, ASS는 0:00:04.13처럼 백분의 1초까지 적습니다. 모든 타임코드가 가장 가까운 10ms로 반올림되어 4.126초는 4.13초가 되고, cue가 늘어나거나 순서가 바뀌지 않으며 어느 것도 5ms 넘게 움직이지 않습니다.

표의 행 하나가 ASS의 cue 하나가 되고, text 열에 여러 줄이 들어 있으면 \N으로 이어집니다. 번호 대신 레이어 필드가 오고, cue는 시작 시간순으로 정렬됩니다. 다른 파일과 정밀하게 맞춰야 하는 작업이라면 반올림 지점만 확인하세요.

여러 파일을 넣으면 대기열이 차례로 처리해 ZIP 하나로 내려 줍니다. 변환은 브라우저 안에서 실행되며 CSV 원본은 업로드되지 않습니다.

예시

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

입력

start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."

결과물

[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:01.00,0:00:03.50,Default,,0,0,0,,The quick brown fox.
Dialogue: 0,0:00:04.00,0:00:06.25,Default,,0,0,0,,Jumps over, the lazy dog.
Dialogue: 0,0:00:07.00,0:00:09.00,Default,,0,0,0,,Two lines here.\NAnd a second one.

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

머리글과 빈 칸이 섞인 CSV를 같은 방식으로 변환

입력

id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.

결과물

[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:01.00,0:00:04.00,Default,,0,0,0,,Hello there, friend.
Dialogue: 0,0:00:05.00,0:00:07.00,Default,,0,0,0,,Second line.
Dialogue: 0,0:00:10.00,0:00:10.01,Default,,0,0,0,,End before start.
Dialogue: 0,0:00:12.00,0:00:14.00,Default,,0,0,0,,Unquoted comma in text, right here.

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

자주 묻는 질문

CSV에서 ASS로 가면 타임코드가 왜 달라지나요?

ASS는 0:00:04.13처럼 0.01초까지, CSV는 00:00:04.126처럼 0.001초까지 적기 때문입니다. 모든 값이 가장 가까운 10ms로 반올림되어 4.126초는 4.13초가 되고, cue가 5ms 넘게 움직이거나 순서가 바뀌지 않습니다.

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

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

CSV 셀 안의 두 줄은 ASS에서 어떻게 되나요?

두 줄 사이에 \N이 들어간 한 자막으로 나옵니다. ASS가 강제 줄 바꿈을 적는 방식이고, 두 줄이 같은 자막이라는 사실이 유지되어 재생기가 함께 보여 줍니다.

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

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

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

스타일, 위치, 노래방, 형식 고유 정보를 잃습니다. 이 방향의 손실 목록과 다른 이유는 두 형식이 서로 다른 것을 보관하기 때문입니다. ASS의 스타일 표와 위치는 CSV에 열이 없어 그대로 사라집니다.

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

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

관련 도구