VobSub 자막을 SRT로
처음 실행하면 문자 인식기를 내려받습니다. 약 4 MB에 언어 모델이 더해지고, 이 사이트가 제공하며 이후에는 브라우저가 캐시합니다. 업로드되는 것은 없고 결과는 기계가 읽은 것이므로, 의존하기 전에 교정하세요.
옵션
비트맵 자막은 글자의 그림이라, 말을 다시 읽어 내야 합니다. 인식기에게 자막이 실제로 쓰인 언어를 알려 주세요. 목록에는 이 사이트가 제공하는 모든 언어가 있습니다. 러시아어 자막을 영어 모델로 읽으면 러시아어가 아니라 잡음이 나옵니다. 고른 모델만 내려받고(다른 것은 절대 받지 않습니다), 언어를 바꾸면 언어당 한 번 내려받은 뒤 캐시됩니다.
VobSub는 자막 한 트랙을 두 파일에 나눠 담고, 둘 다 있어야 합니다. .sub 파일에는 그림이 들어 있습니다. MPEG 프로그램 스트림 패킷의 연쇄이고, 패킷마다 2비트 런렝스 부호로 압축한 비트맵을 하나씩 담습니다. .idx 파일에는 나머지가 들어 있습니다. 16색 팔레트, 프레임 크기, 그리고 자막마다 시작 시각과 그 그림이 시작하는 .sub 안의 바이트 오프셋입니다. .sub만 넣으면 자막이 몇 개인지 알 방법이 없고, .idx만 넣으면 읽을 그림이 없습니다. 이 페이지는 그 한 쌍을 받아 .srt를 씁니다.
패킷은 그 바이트 오프셋으로 찾습니다. 그래서 인덱스는 편의 기능이 아니라 지도입니다. 패킷 안의 헤더 두 워드가 크기와 제어 시퀀스의 위치를 알려 주고, 그 시퀀스가 표시 영역을 정하고 픽셀이 팔레트의 네 항목 중 무엇을 가리키는지 고르며 압축 비트맵을 가리킵니다. 이어서 디코더가 런렝스 부호를 두 번 훑습니다. 짝수 행에 한 번, 홀수 행에 한 번입니다. VobSub가 비월 프레임의 두 필드를 따로 저장하기 때문입니다. 이 세부 때문에 순진한 디코더는 한 줄 걸러 빠진 그림을 만듭니다.
시각은 .idx에서 옵니다. 쓸 만한 형태로 존재하는 유일한 자리입니다. 자막 블록은 다음 블록이 시작하는 곳에서 끝나고, 마지막 블록에는 2초를 줍니다. 그 선택은 손실 목록에 기록합니다. 그림이 읽을 수 있는 글자를 내지 못한 자막은 빈 줄로 쓰지 않고 건너뛰며 개수를 셉니다.
글자 자체는 문자 인식(OCR)에서 옵니다. 전사가 아니라 읽기라는 뜻입니다. DVD 자막이 가장 어려운 지점이 여기입니다. 작은 비트맵 서체로 만들어지고 화면 밖 목소리에 기울임 태그를 쓰는데, 인식기는 기울어진 단어가 같은 단어라는 것을 모릅니다. 파일을 교정하세요. 자막이 쓰인 언어를 고르세요. 모델은 페이지별로 선택되고 한 번 내려받아 브라우저가 캐시합니다.
업로드는 없습니다. 한 쌍은 이 탭에서 파싱하고 인식합니다. 네트워크 요청은 이 사이트가 직접 제공하는 인식기 파일뿐입니다.
자주 묻는 질문
다른 도구는 파일 하나면 되는데 이 페이지는 왜 두 개를 요구하나요?
VobSub가 설계상 한 트랙을 두 파일에 나눠 저장하기 때문이고, 도구가 입력을 두 개 원해서가 아닙니다. .sub에는 비트맵이, .idx에는 16색 팔레트와 프레임 크기, 그리고 그림마다의 오프셋과 시작 시각이 들어 있습니다. 어느 한 파일만으로는 '자막이 몇 개이고 무엇이라고 말하는가'에 답할 수 없습니다. .idx 없이 .sub만 있다면 그 쌍은 어딘가에서 나뉜 것이고, 문자 인식을 하려면 원본 디스크나 VOB에서 인덱스를 되살려야 합니다.
.idx 파일의 filepos 숫자는 무엇을 가리키나요?
MPEG 프로그램 스트림 패킷의 시작을 가리키는 .sub 안의 바이트 오프셋입니다. 그 패킷의 스트림 id가 DVD 플레이어가 자막에 쓰는 사설 스트림임을 표시합니다. 오프셋은 자막 번호가 아니고, 특이한 디스크에서는 시각 순서와 일치하지 않을 수도 있습니다. 그래서 이 페이지는 파일에 줄이 나타난 순서를 믿지 않고 시각을 기준으로 항목을 정렬합니다.
글자 길이는 맞는데 철자가 틀린 줄이 나오는 이유는 무엇인가요?
팔레트와 글자 모양이 모두 그림에서 오고, 문자 인식은 정해진 크기에서 모양을 판별하기 때문입니다. DVD 자막은 작고 몹시 기울었거나 몹시 굵은 서체로 만드는 일이 흔합니다. 화면 밖 대사와 노래 가사에 쓰는 기울임 단어가 대표적인 피해자입니다. 사람에게는 기울어진 글자가 다른 글자가 아니지만 인식기에게는 다른 모양이기 때문입니다. 길이는 같고 글자만 다르다면 고칠 방법은 다른 도구가 아니라 교정입니다.
자막의 화면 위치가 SRT로 넘어오나요?
넘어오지 않고, 들어갈 자리도 없습니다. VobSub는 위치를 패킷마다 12비트 좌표의 표시 영역 사각형으로 저장하는데 SRT에는 위치 지정 문법이 아예 없습니다. 이 페이지는 그 사각형을 글자가 어디에 있는지 아는 데 쓰고, 그래서 문자 인식이 올바로 잘라 내고, 그다음 버립니다. 플레이어에 위치가 필요한 자막이 필요하면 그 정보를 담을 수 있는 형식은 ASS입니다. 위치 표시가 붙은 SRT는 어떤 플레이어는 받아들이고 어떤 플레이어는 글자 그대로 인쇄하는 관례일 뿐입니다.
도구가 .idx를 요구하는데 .sub만 있습니다. 인덱스를 다시 만들 수 있나요?
.sub만으로는 안 되고, 그림에서 안정적으로 복원할 수도 없습니다. 오프셋은 원칙적으로 사설 스트림 패킷을 훑어 찾을 수 있지만 시각은 복원할 수 없습니다. 시각은 이 쌍에서 .idx에만 있고 다른 어디에도 없기 때문입니다. 인덱스를 다시 만든다는 것은 쌍을 추출한 디스크나 VOB 파일로 돌아가거나, 다른 트랙 옆에 아직 남아 있는 원래 .idx를 쓰는 일입니다. 시각을 추측하면 파일은 맞아 보이면서 영상에 대해 어긋나게 되고, 그것은 파일이 없는 것보다 나쁩니다.
읽는 동안 두 파일이 어딘가로 전송되나요?
아니요. 두 파일은 이 탭의 메모리로 읽히고 여기서 디코드되고 여기서 인식됩니다. 내려받는 것은 이 사이트가 제공하고 브라우저가 이후 캐시하는 문자 인식기뿐입니다. 한 쌍을 처리하는 동안 네트워크 패널을 열어 보세요. 어느 파일도 실어 나르는 요청이 없습니다. VobSub에서는 특히 중요합니다. 이 파일들은 보통 사용자가 소유한 디스크에서 나오고, 변환 서비스에 맡기면 안 되는 바로 그런 자료이기 때문입니다.