LRC를 VTT로 변환하는 방법 — 무료 온라인 가이드 | AllSubConverter
블로그, 강의 사이트, YouTube 또는 모든 HTML5 <video> 요소에서 가사를 웹 비디오 플레이어 안에 표시하려면, 브라우저가 실제로 이해할 수 있는 형식은 VTT(WebVTT)입니다. 하지만 대부분의 동기화 가사는 웹이 아닌 오디오 플레이어용으로 만들어진 LRC 파일에 존재합니다. LRC를 VTT로 변환하는 것이 실용적인 연결고리이며, 이 가이드에서는 타임스탬프 변환이 어떻게 작동하는지, 누락된 종료 시간을 어떻게 처리하는지, 그리고 변환 결과를 웹 비디오에 어떻게 연결하는지 설명합니다.
LRC 가사를 웹 바로 사용 가능한 VTT 자막으로 변환 — 브라우저에서 완전히 실행되며 가입이 필요 없습니다.
LRC를 VTT로 변환 →LRC가 브라우저에서 작동하지 않는 이유
브라우저는 WebVTT 단 하나의 자막 형식만 네이티브로 렌더링합니다. HTML5 video 요소에는 LRC에 대한 내장 지원이 없으며, 강제로 로드하면 화면에 아무것도 표시되지 않습니다. LRC는 또한 종료 시간이 없지만, 웹 비디오 플레이어는 각 큐의 표시 시작과 숨김을 알기 위해 명시적인 시간 범위가 필요합니다. 또한 VTT는 파일 상단에 WEBVTT 헤더를 요구하고 큐 사이에 빈 줄을 넣어야 합니다.
따라서 변환은 실제로 세 가지 작업의 묶음입니다. 타임스탬프 형식 변환, 누락된 종료 시간 합성, 그리고 모든 것을 VTT가 요구하는 구조로 감싸는 것입니다.
LRC와 VTT의 타임스탬프 비교
가장 눈에 띄는 변화는 타임스탬프입니다. LRC는 컴팩트한 대괄호 표기법과 센티초 정밀도를 사용하지만, VTT는 완전한 타임코드와 밀리초 정밀도, 그리고 시작과 끝을 구분하는 화살표를 사용합니다.
| 항목 | LRC | VTT |
|---|---|---|
| 표기법 | [mm:ss.xx] |
hh:mm:ss.mmm --> hh:mm:ss.mmm |
| 종료 시간 | 암시적 (다음 줄) | 명시적, 필수 |
| 헤더 | 선택적 메타데이터 태그 | 첫 줄에 WEBVTT |
| 정밀도 | 센티초 | 밀리초 |
| 브라우저 지원 | 없음 | HTML5 네이티브 |
누락된 종료 시간을 채우는 방법
LRC는 각 줄에 시작 시간을 부여하지만 종료 시간은 없으므로, 변환기가 추론해야 합니다. 접근 방식은 LRC를 SRT로 변환과 동일합니다. 각 줄은 다음 줄이 시작될 때 끝나며, 마지막 줄에는 합리적인 기본 길이(보통 몇 초)가 부여됩니다. 최소 표시 시간은 밀집된 줄이 너무 빨리 지나가는 것을 방지합니다.
결과는 자연스럽게 느껴집니다. 왜냐하면 음악 플레이어가 이미 LRC를 그렇게 처리 — 한 줄이 다음 줄에 의해 밀려날 때까지 표시 — 하기 때문에, 비디오로의 전환이 시각적으로 매끄럽습니다.
단계별: 실제 예제
1. 원본 LRC 파일
[00:32.15]Music video production
[00:35.80]Sharing content online
[00:39.25]Reaching global audience
2. 변환된 VTT 출력
WEBVTT
00:00:32.150 --> 00:00:35.800
Music video production
00:00:35.800 --> 00:00:39.250
Sharing content online
00:00:39.250 --> 00:00:42.000
Reaching global audience
변환기는 WEBVTT 헤더를 추가하고, 타임스탬프를 밀리초 정밀도의 완전한 타임코드로 확장하고, 각 후속 줄에서 종료 시간을 계산하고, VTT가 요구하는 큐 사이의 빈 줄 구분자를 삽입했습니다.
VTT를 웹 비디오에 연결하기
VTT 파일이 준비되면, HTML5 비디오에 연결하는 것은 track 요소 하나면 됩니다. VTT를 비디오와 함께 호스팅하고 <track> 태그로 참조합니다:
<video controls>
<source src="song.mp4" type="video/mp4">
<track kind="subtitles" src="lyrics.vtt" srclang="en" label="English">
</video>
브라우저가 나머지를 처리합니다. 큐를 읽고, 각 줄을 시작 시간에 표시하며, 종료 시간에 숨깁니다. JavaScript 타이밍 로직이 필요 없습니다.
활용 사례
- 임베디드 웹 플레이어. 플러그인 없이 음악이나 강의 사이트에서 스크롤 가사를 표시.
- YouTube 업로드. VTT는 YouTube와 대부분의 스트리밍 플랫폼에서 자막 트랙으로 허용됩니다.
- 온라인 노래방. 반주 트랙에 맞춘 브라우저 기반 노래방 경험 구축.
- 가사 라이브러리 재활용. 기존 LRC 컬렉션을 수동으로 다시 타이밍하지 않고 웹으로 이동.
나중에 스타일을 추가할 수 있나요?
네. VTT는 큐의 스타일과 위치를 지원하므로, 변환된 파일을 편집하여 색상 클래스나 위치 힌트를 추가할 수 있습니다. 변환기는 이러한 맞춤 설정에 대비한 깨끗하고 유효한 VTT를 생성합니다.
LRC 메타데이터 태그는 어떻게 되나요?
[ar:Artist]나 [ti:Title] 같은 태그는 파일 상단에 VTT NOTE 주석으로 보존되어, 재생을 방해하지 않고 저작 정보를 유지합니다.
타임스탬프가 겹치면 어떻게 되나요?
두 줄이 거의 같은 시작 시간을 공유하면, 변환기가 종료 시간을 조정하여 겹침을 방지하므로 큐가 화면에 겹쳐 쌓이지 않습니다.
큐 식별자가 중요한가요?
VTT에서는 선택 사항입니다. 변환기는 출력을 간결하게 유지하기 위해 생략하며, 이는 스트레이 큐 식별자가 엄격한 플레이어를 혼란시키는 엣지 케이스를 방지합니다. 필요한 경우 — 예를 들어 JavaScript에서 특정 줄을 참조할 때 — 각 큐가 이미 빈 줄로 구분되어 있으므로 수동으로 쉽게 추가할 수 있습니다.
팁: VTT 파일 이름을 제공하려는 로케일에 맞게 지정하고,
<track>태그에srclang속성을 설정하면 플레이어가 올바른 자막 메뉴를 제공합니다.
지금 LRC를 VTT로 변환하세요
변환은 즉각적이고 무료이며 완전히 클라이언트 사이드에서 이루어집니다 — 가사가 기기를 떠나지 않습니다. LRC를 붙여넣고 VTT를 받아 비디오 플레이어에 바로 넣으세요.
마지막 업데이트: 2026년 3월 20일