핵심 요약
가장 먼저 정할 것은 자막을 영상 화면에 그대로 입힐지, 아니면 별도 파일로 따로 둘지입니다. 화면에 입힌(번인) 자막은 어디서든 보이고 절대 끌 수 없습니다. 보통
.srt형식으로 만드는 별도 자막 파일은 끄고 켤 수 있고 나중에 수정도 가능하며 검색엔진도 읽을 수 있지만, 플랫폼이 업로드를 지원해야만 쓸 수 있습니다. 방식을 정한 뒤로는 순서가 항상 같습니다. 텍스트를 확보하고, 타이밍에 맞춰 자막 단위로 나누고, 영상과 맞춰보며 확인한 다음, 업로드하거나 입혀서 내보내면 됩니다. 자막 파일은 일반 텍스트이기 때문에 고치는 건 어렵지 않습니다.
편집을 끝냈습니다. 이제 누군가 자막을 요청하거나, 대부분의 사람들이 소리를 끄고 영상을 본다는 걸 깨닫고 내보내기 창을 열어봤는데 자막 넣는 항목이 딱히 보이지 않습니다. 흔한 일입니다. 자막은 음악이나 색보정처럼 영상 자체에 포함되는 요소가 아닙니다. 대부분의 경우 완전히 별개로 존재하며, 자기만의 파일, 자기만의 형식, 자기만의 규칙을 가지고 있습니다.
그래서 자막 텍스트를 한 줄 쓰기 전에 정해야 할 것이 있고, 이 선택이 이후 모든 과정을 결정합니다. 거의 모든 사람이 이걸 무심코 정해버립니다. 여기서는 의도적으로 짚어보겠습니다.
화면에 입히기, 혹은 따로 두기
영상에 글자를 넣는 방법은 두 가지입니다.
번인(burned-in) 자막은 내보내기 할 때 화면에 그대로 그려 넣는 방식입니다. 자막 글자의 픽셀이 영상 픽셀이 되어 로고나 하단 자막바와 똑같이 취급됩니다. 항상 보이고, 시청자가 끄거나 크기를 바꾸거나 다른 스타일로 바꾸거나 번역할 수 없으며, 단어 하나를 잘못 썼다면 영상 전체를 다시 내보내야 고칠 수 있습니다. 그 대신 누구의 협조도 없이 어디서나 작동합니다. 모든 플레이어, 모든 플랫폼, 재업로드본, 누군가 화면을 녹화한 영상에서도 그대로 보입니다.
별도 자막 파일은 영상과 분리된 파일로 존재합니다. 플레이어가 이 파일을 읽어서 재생 시점에 맞춰 화면 위에 글자를 그립니다. 시청자가 켜고 끌 수 있습니다. 오타는 텍스트 파일만 고쳐서 다시 올리면 되고 영상은 건드릴 필요가 없습니다. 나중에 다른 언어 자막을 추가하려면 파일만 하나 더 추가하면 됩니다. 화면에는 아무것도 새겨지지 않으므로 원본 영상은 그대로 유지됩니다.
문제는 별도 파일 방식이 완전히 플랫폼에 달려 있다는 점입니다. 플랫폼마다 업로드한 자막 파일을 받아주는지가 다릅니다. 어떤 곳은 기꺼이 받아주고 시청자에게 자막 켜기 버튼을 보여줍니다. 어떤 곳은 어떤 경우에도 받아주지 않습니다. 플랫폼이 자막 파일을 지원하지 않는다면 내보내기 할 때 화면에 입혀 넣는 것이 유일한 방법이며, 파일 형식을 아무리 정확히 맞춰도 이 상황은 바뀌지 않습니다.
무언가를 만들기 전에 올릴 곳이 무엇을 지원하는지 먼저 확인하세요. 같은 영상을 두 곳에 올리는데 한 곳은 파일을 받고 한 곳은 받지 않는다면, 정말로 두 개의 내보내기 결과물이 필요할 수 있습니다. 자막 파일만 있는 깨끗한 버전과, 화면에 입힌 버전. 번거롭지만 이게 정직한 답입니다.
자막 파일에는 실제로 무엇이 담기나요
확장자 .srt를 쓰는 SubRip 파일은 가장 널리 지원되는 자막 형식이며, 특별한 이유가 없다면 이걸 쓰는 게 맞습니다. 내용은 단순할 정도로 간단합니다. 각 자막 단위(큐)는 순서대로 네 가지로 이루어집니다. 번호, 타이밍 한 줄, 한 줄 이상의 텍스트, 그리고 빈 줄. 그다음 다음 큐가 시작됩니다.
타이밍은 hh:mm:ss,mmm 형식으로 씁니다. 시, 분, 초, 그리고 쉼표 뒤에 밀리초입니다. 이 쉼표가 중요합니다. 쉼표를 기대하는 플레이어가 마침표를 만나면 파일을 거부하거나 해당 큐를 건너뛸 수 있는데, 이 오류는 대개 에러 메시지 없이 그냥 아무 일도 일어나지 않는 것처럼 보입니다. 형식을 항목별로 자세히 알고 싶다면 SubRip 형식을 자세히 풀어놓은 글을 한 번쯤 읽어볼 만합니다.
확장자 .vtt를 쓰는 WebVTT는 마주치게 될 또 다른 형식입니다. 첫 줄에 WEBVTT라는 단어만 단독으로 쓰고, 밀리초는 쉼표 대신 마침표로 구분합니다. 큐 번호는 선택 사항입니다. 그 외에도 SubRip이 못하는 걸 할 수 있는데, 큐를 화면 하단 중앙이 아닌 다른 위치에 놓을 수 있고 스타일 정보도 담을 수 있습니다. 자막이 화면 속 그래픽을 가리지 않도록 위치를 옮기고 싶다면 WebVTT가 그 방법입니다.
WebVTT 파일이 있는데 플랫폼이 SubRip을 요구한다면 변환은 어렵지 않지만, 무엇이 사라지는지는 분명히 알아야 합니다. 타이밍은 그대로 남습니다. 텍스트도 그대로 남습니다. 위치 정보, 스타일, 그 외 메타데이터는 사라지며, 영구적으로 사라집니다. SubRip에는 그걸 담을 자리가 없기 때문입니다. 이건 변환 도구의 버그가 아닙니다. 대상 형식 자체에 그 정보를 넣을 항목이 없는 것입니다. 가능하다면 아무것도 잃지 않는 방향으로 변환하고, 그게 불가능하다면 자막이 기본 위치인 화면 하단에 나타난다고 예상하면 됩니다.
순서: 텍스트, 타이밍, 확인, 업로드
어떤 방식을 쓸지 정했다면 실제 작업은 항상 같은 네 단계를 같은 순서로 거칩니다.
- 텍스트를 확보합니다. 말한 모든 단어를 글로 옮깁니다.
- 나누고 타이밍을 맞춥니다. 텍스트를 큐 단위로 쪼개고 각각 시작과 끝 시각을 정합니다.
- 영상과 맞춰보며 확인합니다. 자막을 켠 채로 재생해보고 틀린 부분을 고칩니다.
- 파일을 업로드하거나, 화면에 입혀서 내보냅니다.
직접 타이핑한다면 첫 단계가 가장 느립니다. 손으로 직접 받아쓰면 정확하지만 영상 길이의 몇 배가 걸리고, 오디오를 자동으로 받아쓰게 한 뒤 고치면 더 빠르지만 찾아서 고쳐야 할 오류가 생깁니다. 대개 인명, 전문 용어, 배경음이 큰 부분에서 틀립니다. 자동 받아쓰기 후 꼼꼼히 검토하는 방식이 대부분의 사람에게 맞는 기본값입니다. 텍스트가 있다면 브라우저에서 쓰는 자막 생성기가 나누고 타이밍 맞추는 작업을 처리해 줍니다.
SozAI는 iOS, Android, macOS에서 쓸 수 있는 받아쓰기 앱으로, 오디오 파일, 영상 파일, 녹음, 유튜브 링크를 화자 구분과 99개 이상 언어 간 번역이 포함된 텍스트로 바꿔줍니다. 사이트의 브라우저 도구들은 자막 파일 처리와 글자 수 계산 등을 담당하며 오디오 자체를 받아쓰지는 않습니다. 여러 선택지 중 하나일 뿐이니, 편집 소프트웨어가 이미 쓸 만한 대본을 만들어준다면 그걸 쓰고 이 단계를 건너뛰어도 됩니다.
타이밍 없이 텍스트만 통째로 있다면 일반 텍스트를 SRT로 바꿔주는 변환기가 큐로 나누고 타이밍 줄을 알맞은 형태로 써주는 기계적인 작업을 대신해 줍니다. 그다음에는 영상에 맞춰 타이밍을 미세하게 조정해야 합니다. 텍스트만 보고 화자가 어디서 멈췄는지 짐작하는 도구는 없습니다.
자막 한 줄은 화면에 얼마나 떠 있어야 할까요
타이밍은 어설픈 자막이 바로 드러나는 지점이고, 실패하는 방식은 정반대인 두 가지입니다.
1초도 안 되는 시간만 떠 있는 큐는 읽기 힘듭니다. 눈이 글자를 찾아서 읽고 다시 화면으로 돌아가는 데는 시간이 필요한데, 1초 미만이면 그럴 시간이 부족합니다. 시청자는 뭔가 스쳐 지나간 걸 느끼면서 뭔가를 놓쳤다는 애매한 감각만 남습니다. 대본을 쉼표마다 잘랐거나, 짧은 감탄사 하나(네, 이름, 웃음소리)에 그 소리 길이와 똑같은 큐를 붙였을 때 흔히 생기는 문제입니다.
8초쯤 넘게 유지되는 큐는 반대 문제이고, 거의 항상 두 문장이 하나로 합쳐졌다는 신호입니다. 긴 큐는 시청자가 다 읽고 난 뒤에도 계속 화면에 남아 있어서 살짝 거슬리는데, 진짜 문제는 두 번째 문장이 실제로 말하기도 전에 화면에 먼저 나타난다는 점입니다. 텍스트와 오디오가 서로 어긋나기 시작하고 시청자는 화면을 보는 대신 앞질러 읽게 됩니다.
이 두 경계 사이에 편안하게 들어가는 길이를 목표로 하고, 정해진 단어 수가 아니라 문장과 구의 자연스러운 끝에서 나누며, 큐 사이에 화면이 숨 쉴 틈을 주세요. 큐가 너무 긴지 헷갈릴 때는 실제 화자가 말하는 속도로 소리 내어 읽어보세요. 숨이 차면 두 개로 나눠야 한다는 뜻입니다.
업로드하기 전에 파일을 확인하는 법
자막 파일은 일반 텍스트입니다. 어떤 기기에서든 아무 텍스트 편집기로 열어서 처음부터 끝까지 읽고 원하는 대로 바꿀 수 있습니다. 이것이 자막에 관해 알아둘 만한 가장 유용한 사실인데, 잘못된 단어를 고치는 가장 빠른 방법이 편집 소프트웨어를 다시 열어서 타임라인에서 큐를 다시 찾아 다시 내보내는 것이 아니라는 뜻이기 때문입니다. 그냥 파일을 열어서 단어를 고치고 저장하면 됩니다.
잘못될 수 있는 부분은 두 종류이고, 확인하는 방법도 다릅니다.
구조적인 문제는 파일이 아예 열리지 않게 만듭니다. 큐 사이에 빈 줄이 빠졌거나, 타이밍에서 쉼표가 들어갈 자리에 마침표가 들어갔거나, 끝나는 시각이 시작 시각보다 빠르거나, 큐끼리 겹치는 경우입니다. 사람이 대충 훑어보면 눈에 띄지 않지만 기계는 바로 잡아내는데, 바로 이럴 때 쓰는 게 SRT 파일 검사기입니다. 업로드하기 전에 한 번 돌려보면 그렇지 않으면 자막이 그냥 조용히 나타나지 않는 형태로 드러날 오류를 미리 잡을 수 있습니다.
내용상의 문제는 직접 봐야만 드러납니다. 이름이 잘못 적혔거나, 자막이 처음부터 끝까지 0.5초씩 늦게 뜨거나, 문법적으로는 맞지만 읽기에는 어색한 줄이 그렇습니다. 자막을 켜고 정상 속도로 끝까지 재생하면서 화면 대신 글자를 보세요. 영상 길이만큼 시간이 걸리고 이걸 건너뛸 방법은 없습니다.
이걸로는 해결되지 않는 것
플랫폼이 자동으로 생성해주는 자막은 직접 만든 자막 파일과 같지 않습니다. 사용자의 개입 없이 오디오만으로 만들어지기 때문에 정작 중요한 단어들, 제품명, 인명, 전문 용어에서 자주 틀리고, 대개 이를 수정할 수 있는 여지도 제한적입니다. 직접 만든 파일을 올릴 수 있는 곳에서는 그렇게 하면 짐작 대신 직접 확인한 결과를 쓸 수 있습니다. 그럴 수 없는 곳에서는 화면에 입힌 자막이 화면에 뜨는 단어가 실제로 내가 고른 단어라는 걸 보장하는 유일한 방법입니다.
화면에 입힌 자막은 사람들이 생각하는 것보다 훨씬 더 되돌릴 수 없습니다. 한번 내보내고 나면 그 텍스트는 영상의 일부가 됩니다. 그 영상을 다른 언어로 번역할 수도 없고, 자막 없는 버전을 따로 제공할 수도 없으며, 작은 화면으로 보는 시청자가 글자를 키울 수도 없습니다. 영상을 나중에 재사용하거나, 다른 언어로 자막을 달거나, 다른 사람에게 넘겨 작업하게 할 가능성이 조금이라도 있다면, 오늘 올리는 버전에는 자막을 입혔더라도 원본 영상과 자막 파일은 따로 깨끗하게 보관해 두세요.
그리고 형식을 서로 바꿀 때마다 같은 손실이 매번 반복됩니다. WebVTT에서 SubRip으로 바꾸면 위치 정보와 스타일이 영구히 사라집니다. 담을 자리가 없기 때문입니다. 화면 속 그래픽을 피해가도록 자막 위치를 짜놓았는데 그걸 요구하는 플랫폼 때문에 SubRip으로 변환한다면, 그 자막은 기본 위치에 나타나 그래픽을 그대로 가리게 됩니다. 이걸 미리 아는 것이 이미 게시된 영상에서 발견하는 것보다 낫습니다.

