야동위키 자막 실험: 1.2초를 맞췄는데 왜 뒤에서는 또 어긋날까요?
중간 장면에서 자막을 딱 맞췄는데, 앞부분으로 돌아가니 너무 빨리 나오고 끝부분에서는 다시 늦어져요. 이런 경우에 ‘몇 초를 더 움직여야 하지?’만 생각하면 같은 조정을 반복하게 돼요. 이번에는 시간표 전체가 밀린 경우와 시간 간격이 달라진 경우를 일부러 따로 만들어 차이를 확인했어요.
결과부터 말하면, B 지점에서 똑같이 1.2초 늦었던 두 파일은 같은 문제가 아니었어요. 하나는 자막 전체를 앞당기면 맞았고, 다른 하나는 가운데를 맞춘 뒤에도 앞뒤에 각각 1초의 오차가 남았어요.
실험은 말소리 대신 흰 상자로 했어요
대사의 시작을 귀로 판단하면 사람마다 시점을 다르게 잡을 수 있어요. 그래서 60초짜리 무음 도형 영상을 만들고 A·B·C 표시의 시작을 5초, 30초, 55초로 정했어요. 흰 상자는 각 지점에서 12프레임 동안 나타나고, 자막은 같은 글자 A·B·C로 구분했어요.
기준 영상은 640×360, 24fps, 총 1,440프레임이에요. 완성된 영상 파일을 다시 디코딩해서 가운데 영역이 밝아지는 첫 프레임의 실제 표시 시각을 읽고, WebVTT 자막의 시작 시각과 비교했어요. 아래 표는 설정값을 그대로 옮긴 것이 아니라 이 과정에서 확인한 결과예요.
B에서는 둘 다 1.2초, A와 C에서는 다른 결과
| 조건 | A | B | C |
|---|---|---|---|
| 기준 영상 + 기준 자막 | 0.0 | 0.0 | 0.0 |
| 기준 영상 + 1.2초 늦춘 자막 | +1.2 | +1.2 | +1.2 |
| 빨라진 영상 + 기준 자막 | +0.2 | +1.2 | +2.2 |
고정 지연은 시작을 옮기면 함께 맞았어요
첫 비교에서는 영상에 손대지 않고 자막 시간만 1.2초씩 늦췄어요. 자막 시작이 6.2초, 31.2초, 56.2초가 됐고 세 지점의 차이는 모두 +1.2초였어요. 각 시작 시각에서 1.2초를 빼면 원래의 5초, 30초, 55초로 돌아가요.
실제로 볼 때 초반과 후반이 비슷하게 어긋난다면 이런 일정한 시간 보정을 먼저 시도할 수 있어요. 다만 플레이어의 ‘자막 지연’과 ‘앞당김’ 표기를 확인해야 해요. 이 글의 +표기는 측정 결과를 설명하기 위한 것이지, 모든 플레이어에 같은 부호를 입력하라는 뜻은 아니에요.
누적 오차는 같은 1,440프레임의 재생 시간을 바꿔 만들었어요
두 번째 비교에서는 영상 프레임을 유지한 채 25fps로 더 빨리 재생되도록 표시 시각을 바꿨어요. 길이는 60초에서 57.6초가 됐고, 실제 A·B·C 표시는 4.8초, 28.8초, 52.8초에 시작했어요. 자막은 여전히 5초, 30초, 55초에 시작하니 뒤로 갈수록 차이가 커졌어요.
영상 표시 시각 = 기준 시각 × 24 ÷ 25
55초에 있던 C 표시를 계산하면 55 × 24 ÷ 25 = 52.8초예요. 자막의 55초와는 2.2초 차이가 나요. 실제 파일에서 읽은 시각도 같았어요. 단순히 fps 정보가 다르다는 것만으로 이런 결과가 생기지는 않아요. 프레임 수를 바꿔 원래 길이를 유지하는 변환도 가능하므로 실제 재생 시간과 각 장면의 위치를 봐야 해요.
가운데만 맞추면 앞에서는 빨라지고 뒤에서는 늦어져요
B의 +1.2초를 보고 기준 자막 전체를 1.2초 앞당긴다고 해 볼게요. 자막 시작은 3.8초, 28.8초, 53.8초가 돼요. 보정한 자막 시각에서 영상 시각을 빼면 A는 −1초, B는 0초, C는 +1초예요. 아래는 앞서 측정한 값으로 계산한 보정 결과예요.
| 지점 | 보정 뒤 자막 | 영상 표시 | 남는 차이 |
|---|---|---|---|
| A | 3.8초 | 4.8초 | 1초 빠름 |
| B | 28.8초 | 28.8초 | 일치 |
| C | 53.8초 | 52.8초 | 1초 늦음 |
한 곳의 숫자를 맞추는 것과 전체 시간표가 맞는 것은 달랐어요. 이런 패턴이면 자막 파일이 같은 길이·같은 편집본용인지부터 확인하는 편이 좋아요. 시간 간격의 차이가 확인되고 사용하는 도구가 지원한다면 비율을 조정할 수 있지만, 아무 영상에나 24/25를 적용해서는 안 돼요.
세 지점을 봐도 설명되지 않는 경우
인트로나 특정 장면 뒤에서만 차이가 갑자기 생기면 일정한 속도 차이보다 편집 구간이 다른 경우를 먼저 의심할 수 있어요. 자막이 영상에 이미 붙어 있는 경우에는 별도 자막 시간 조정이 적용되지 않아요. 재생 화면이 멈추는 버퍼링도 이 실험에서 다룬 시간표 문제와는 달라요.
이번 결과는 직접 만든 무음 영상 두 개와 자막 두 개에 한정돼요. 브라우저가 자막을 화면에 그리는 데 걸리는 지연, 무선 이어폰의 소리 지연, 외부 사이트 플레이어의 기능은 측정하지 않았어요. 그래서 이 숫자를 특정 서비스의 품질 점수로 쓰지는 않아요.
직접 비교할 수 있는 영상과 원자료
영상은 도형으로만 만들었고 소리는 없어요. 파일 하나가 약 83KB라 부담이 작고, 아래 비교를 펼친 뒤 재생을 누르면 볼 수 있어요. 첫 영상의 자막 메뉴에서 ‘기준 자막’과 ‘1.2초 늦춘 자막’을 바꿔 비교해 보세요. A는 5초 부근, B와 C는 30초와 55초 부근에 있어요.
테스트 영상 두 개 펼쳐 보기
시간표 형식은 MDN WebVTT 문서, 표시 시각을 바꾸는 방식은 FFmpeg setpts 문서를 참고했어요. 위 측정 수치는 야동위키가 직접 생성한 파일에서 얻었어요.