본문으로 바로 가기
SubtitleMatrix

자막 빈 구간 찾기

품질 검사시간축의 빈 구간
또는 자막 텍스트를 붙여넣으세요

옵션

한 자막 블록이 끝나고 다음이 시작할 때 허용되는 빈 화면의 밀리초입니다. 빈 구간은 바로 앞 자막 블록이 아니라 지금까지 화면에 남아 있던 가장 늦은 끝에서부터 잽니다. 그래서 짧은 자막 블록 여러 개 아래에 깔린 긴 자막 블록이 화면에 없던 빈 구간을 만들어 내지 않습니다. 이 숫자가 하는 일은 페이지에 따라 다릅니다. 빈 구간 닫기 페이지에서는 이보다 넓은 구간을 닫고(0이 보통 값이며 두 자막이 정확히 맞닿는다는 뜻입니다), 검사 페이지에서는 이보다 넓은 구간을 모두 나열하고 파일은 건드리지 않습니다. 어느 쪽이든 이 값 이하는 그대로 둡니다.

타이밍을 어떤 프레임 레이트 기준으로 세는지 정합니다. 형식 안내 페이지에서는 MicroDVD가 이 값을 필요로 합니다. 시간을 프레임 번호로 저장하기 때문입니다. 프레임 레이트 페이지에서는 이 파일이 어느 프레임 레이트를 기준으로 만들어졌는지, 즉 자막을 만든 판본의 값을 뜻하며, 페이지의 두 번째 상자에는 이 자막을 사용할 영상의 프레임 레이트를 넣습니다. 흔히 쓰는 값은 23.976, 24, 25, 29.97, 30, 50, 59.94, 60입니다. 잘못 넣으면 시간축 전체가 어긋나고, 프레임 레이트 페이지에서는 고정된 양이 아니라 비율로 어긋납니다.

빈 구간은 두 자막 블록 사이의 빈 화면입니다. 화면에 있던 블록이 끝난 시각부터 다음 블록이 시작하는 시각까지의 구간입니다. 이 페이지는 직접 정한 한도보다 긴 빈 구간을 전부 밀리초 단위로 나열하고, 그 사이에 놓인 두 블록을 함께 지목합니다. 파일 자체는 건드리지 않으며, PDF로 읽거나 스프레드시트에서 CSV로 정렬할 수 있는 보고서를 내려받습니다.

빈 구간이 언제나 결함은 아닙니다. 장면 전환, 잠깐의 침묵, 다른 화자로의 컷은 모두 의도적으로 화면을 비웁니다. 숫자가 알려 주는 것은 그 비어 있음이 한도를 넘는지 여부입니다. 2초는 쉼으로 읽히지만, 40초는 보통 블록 하나가 사라졌거나 타임코드가 엉뚱한 곳에 붙어 뒤따르는 모든 것을 끌고 갔다는 뜻입니다. 한도는 직접 고르며, 비교는 입력한 숫자보다 엄격히 클 때만 성립합니다. 즉 한도는 허용하는 가장 넓은 쉼이고, 가장 긴 쉼이 정확히 그 값인 파일은 깨끗하게 돌아옵니다.

이 페이지가 의도적으로 하지 않는 일이 두 가지 있습니다. 첫째, 빈 구간은 바로 앞 블록이 아니라 지금까지 도달한 가장 먼 끝 시각과 비교합니다. 그래서 장면 전체에 걸친 긴 블록이 9초짜리 구멍으로 읽히지 않습니다. 둘째, 끝 시각을 저장하지 않는 LRC와 일반 텍스트는 아예 받지 않습니다. 잴 것이 없고, 답을 담을 수 없는 형식에 깨끗한 결과를 보고하는 것은 거짓 무죄 선고이기 때문입니다. 파일을 읽는 동안 복구한 내용은 보고서 머리말에 따로 나열되므로, 깨진 타임코드를 가진 블록이 조용히 검출 수에 섞이지 않습니다.

예시

한도보다 긴 쉼

자막

1
00:00:01,000 --> 00:00:02,000
Where were you?

2
00:00:06,000 --> 00:00:07,000
I was working late.

3
00:00:07,500 --> 00:00:08,500
Until when?

보고서가 찾아낸 것

Gaps between cues — 1 found

Severity   Cues   Start          End            Measured   Limit
Warning    1, 2   00:00:02.000   00:00:06.000   4000 ms    2000 ms

한도가 2000ms이므로 블록 1과 2 사이의 4초 빈 화면이 보고되고, 블록 3 앞의 0.5초는 보고되지 않습니다. 두 쉼 모두 파일에 있지만 사용자가 고른 숫자를 넘는 것은 하나뿐입니다.

한도와 정확히 같은 쉼

자막

1
00:00:01,000 --> 00:00:02,000
Where were you?

2
00:00:04,000 --> 00:00:05,000
I was working late.

보고서가 찾아낸 것

Gaps between cues — Nothing found

Cues         2
Checks run   1

빈 구간이 정확히 2000ms이고 한도도 2000입니다. 아무것도 보고되지 않지만 검사가 실행되었다는 사실은 남습니다. 한도는 여전히 허용되는 가장 넓은 쉼이고, 검출되는 가장 좁은 쉼이 아닙니다.

장면 전체를 덮는 블록

자막

WEBVTT

00:00:00.000 --> 00:00:10.000
Hold on.

00:00:01.000 --> 00:00:02.000
Wait.

보고서가 찾아낸 것

Gaps between cues — Nothing found

Cues         2
Checks run   1

10초짜리 블록 안에 짧은 블록이 중첩되어 있습니다. 지금까지 도달한 가장 먼 끝과 비교하면 구멍이 전혀 없지만, 바로 앞 블록과 비교하면 시청자가 본 적 없는 9초의 침묵을 보고하게 됩니다.

자주 묻는 질문

이 페이지에서 자막 사이 빈 구간은 무엇인가요?

화면에 있던 블록이 끝난 시각부터 다음 블록이 시작하는 시각까지이며, 밀리초로 재고 직접 정한 한도보다 길 때만 보고됩니다. 맞닿은 블록의 빈 구간은 0이라 절대 나열되지 않습니다. 한도와 정확히 같은 쉼도 나열되지 않습니다. 비교는 한도보다 큼이지 한도 이상이 아닙니다.

빈 구간 한도는 얼마로 잡아야 하나요?

무엇을 납품하는지에 달렸습니다. 방송 작업은 보통 쉼을 2초 아래로 두어 화면이 버려진 것처럼 보이지 않게 하고, 스트리밍과 온라인 영상은 더 너그럽습니다. 기본값은 1000ms입니다. 어떤 값을 고르든 실행 전체에 적용되므로 여러 파일이 같은 숫자로 판정되고, 보고서는 찾은 모든 빈 구간 옆에 한도를 인쇄합니다.

찾은 빈 구간을 채워 주나요?

아니요. 파일을 읽어 보고서만 만들고 타임코드를 하나도 움직이지 않습니다. 빈 구간 채우기는 블록을 늘려 빈 구간을 덮는 별도 도구입니다. 검사와 복구를 나누어 두면 보고서가 이 페이지가 이미 고친 판본이 아니라 실제 파일을 설명합니다.

블록이 겹치거나 중첩될 때 빈 구간은 어떻게 계산되나요?

파일에서 지금까지 도달한 가장 먼 끝 시각과 비교하며, 바로 앞 블록과는 비교하지 않습니다. 긴 블록 안에 들어앉은 짧은 블록은 가장 먼 끝을 바꾸지 않으므로 거기에 없는 구멍을 만들어 내지 않습니다. 다음 블록이 그 가장 먼 끝보다 늦게 시작할 때만 차이를 재며, 그 구간이 시청자가 실제로 빈 화면을 보는 구간입니다.

어떤 자막 형식에서 빈 구간을 검사할 수 있나요?

시작과 끝 시각을 모두 저장하는 열 가지입니다: SRT, WebVTT, ASS, SSA, SBV, SMI, MicroDVD, TTML, JSON, CSV. LRC와 일반 텍스트는 줄마다 시각이 하나뿐이라 빠집니다. 그 두 형식의 파일은 먼저 변환해야 빈 구간을 잴 수 있습니다.

보고서에 읽는 동안 잃은 것이 왜 나오나요?

리더가 표현할 수 없는 것을 복구하기 때문입니다. 끝이 시작보다 뒤가 아닌 블록에는 1ms를 주어야 파일을 메모리에 담을 수 있습니다. 그 복구를 검출 아래에 묻지 않고 머리말에 나열하므로, 아래의 빈 구간 수를 읽을 때 잰 시각이 전적으로 파일의 값은 아니라는 점을 알 수 있습니다.

한 시즌 분량을 한 번에 이 페이지로 돌릴 수 있나요?

네. 원하는 만큼 파일을 넣으면 차례로 검사하고 각각 보고서를 만들며, 보고서들은 하나의 zip으로 함께 내려옵니다. 대기열이 파일별 진행률을 보여 주고 중간에 멈출 수 있으며, 작업자가 뒤에 남지 않습니다.

관련 도구