JSON을 LRC로 변환
또는 자막 텍스트를 붙여넣으세요
이 변환에서 달라지는 것
5가지가 버려지거나 결정이 필요합니다
- 타이밍
자막 블록 종료 시간(결과 형식은 자막 블록이 시작하는 시점만 기록합니다)
- 스타일
모든 스타일(굵게, 기울임, 색, 외곽선, 그림자)
- 위치
화면 위치 지정(모든 자막 블록이 기본 위치로 돌아갑니다)
- 가라오케
가라오케 타이밍(음절 단위 강조)
- 정밀도
타이밍 정밀도 — 결과물의 시계가 더 거칠어 모든 타임스탬프가 가장 가까운 10 ms로 반올림됩니다
이 목록은 불러온 특정 파일이 아니라 두 형식의 기능 행렬에서 나옵니다. 어떤 파일은 형식이 허용하지만 행렬이 모델링하지 않는 기능을 쓰고 있다면 더 많이 잃을 수 있습니다.
JSON 자막을 LRC로 바꾸면 각 줄이 가사처럼 타임스탬프를 달고 나옵니다. 끝 시간과 스타일, 화면 위치, 노래방 표시가 모두 사라지고 시간 정밀도도 10ms로 낮아집니다. 가사 파일이나 노래방 자막을 만들 때 쓰는 방향입니다.
JSON은 start와 end를 4126 같은 밀리초 정수로 적고, LRC는 [00:04.12]처럼 줄이 시작하는 순간만 적습니다. 시작 시각은 유지되지만 끝 시각은 버려지고, 값은 10ms 단위로 반올림되어 한 줄이 5ms 넘게 움직이지 않습니다.
스타일은 전부 사라집니다. tags 배열의 색이든 styles 객체의 이름 있는 스타일이든 LRC에는 실을 곳이 없고, cue 위치도 마찬가지입니다. 노래방 구간은 표시가 빠진 채 글자만 남습니다. 두 줄짜리 자막은 같은 시각을 가진 두 줄로 나옵니다.
여러 파일을 넣으면 차례로 변환되어 ZIP 하나로 내려옵니다. LRC는 가사 재생기용이므로 자막 재생기에서 쓸 결과가 필요하다면 SRT나 VTT를 고르세요. 변환은 브라우저 안에서만 실행됩니다.
예시
일반적인 JSON 파일을 LRC로 변환
입력
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
결과물
[ti:Fixture: typical]
[00:00.00]Hello world.
[00:00.00]Second line.
[00:02.50]Plain line.
[00:02.50]Styled line.
[00:04.50]Roger: I am here.
이 결과에서 사라지는 것: 끝 시간, 스타일, 위치, 노래방, 정밀도. 나머지는 줄 단위로 같습니다.
까다로운 입력에 같은 변환 적용
입력
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
결과물
[00:00.00]First.
[00:01.00]Second.
[00:02.00]Third.
실제 파일에서 흔한 손상입니다. 줄 바꿈이 섞이고, 공백이 남고, 빈 필드가 있습니다. 위의 깔끔한 예시와 비교해 파서가 무엇을 넘겨주는지 보세요.
자주 묻는 질문
JSON 자막의 끝 시간은 LRC에서 어떻게 되나요?
버려집니다. LRC는 줄이 시작하는 순간만 기록하고, 가사 재생기는 다음 줄이 시작할 때까지 현재 줄을 유지합니다. 그래서 재생에는 문제가 없지만 자막의 표시 길이를 계산하려면 원본 JSON이 필요합니다.
JSON의 굵기·기울임·색은 LRC에서 남나요?
남지 않습니다. LRC는 어떤 종류의 스타일도 저장하지 않으므로 tags 배열의 서식과 styles 객체의 이름 있는 스타일이 모두 빠지고, 모든 줄이 평문으로 적힙니다. 글자 자체는 바뀌지 않습니다.
JSON의 화면 위치는 LRC로 넘어가나요?
넘어가지 않습니다. LRC에는 위치를 적는 자리가 없어 cue에 저장된 위치가 버려지고, 재생기가 기본 위치에 그립니다. 대부분 화면 아래쪽 가운데입니다.
JSON의 노래방 타이밍은 LRC에서 어떻게 되나요?
타이밍은 사라지고 글자는 남습니다. 노래방 정보는 음절이 언제 켜지는지를 적지만 LRC에는 줄 안의 순간을 기록할 방법이 없어, 표시가 빠지고 음절은 평범한 텍스트가 됩니다.
JSON을 LRC로 바꾸면 타임코드가 왜 0.01초 단위가 되나요?
LRC의 [00:04.12]가 0.01초까지이고 JSON의 4126이 0.001초까지이기 때문입니다. 모든 값이 가장 가까운 10ms로 반올림되어 4.126초는 4.13초가 되며, 순서가 바뀌거나 줄이 5ms 넘게 움직이지 않습니다.
두 줄짜리 JSON 자막은 LRC에서 어떻게 되나요?
같은 시각을 가진 두 줄로 나옵니다. LRC에서 두 줄이 한 묶음이라는 사실을 나타내는 방법이 같은 타임스탬프를 반복하는 것이라, 결과도 그렇게 적힙니다.