
Excel·CSV·TXT로 QLab 자막을 빠르게 만드는 법
이미 QLab으로 공연을 운용하고 있다면, 병목은 대개 프로젝터가 아닙니다.
시간을 잡아먹는 일은 대본과 번역본, 스프레드시트, 일반 텍스트를 수백 개의 자막 큐로 바꾸는 과정입니다. 그것도 공연 파일을 망가뜨리지 않으면서 말입니다.
무대감독에게는 Word 대본이, 번역가에게는 Excel 시트가, 테크니션에게는 TXT 목록이 있을 수 있습니다. 그러나 QLab 오퍼레이터에게 필요한 것은 따로 있습니다. 바로 공연 타임라인에 넣어 리허설하고, 옮기고, 번호를 고치며, 긴박한 순간에도 확실히 실행할 수 있는 Text cue입니다.
이 글에서는 Excel, CSV, TXT로 QLab 5 자막을 빠르게 만드는 실무 흐름을 설명합니다. 동시에 QLab 공식 문서와 비교해 경계를 분명히 합니다. QLab이 직접 지원하는 범위, AppleScript로 자동화할 수 있는 범위, 그리고 공연 파일을 텍스트의 유일한 저장소로 삼기보다 검토를 마친 QLab Projection Pack을 쓰는 편이 안전한 시점을 구분합니다.
QLab에서 자막을 표시할 수 있나요?
네. QLab에서는 일반적으로 Text cue로 자막이나 서타이틀을 만듭니다.
QLab 5 공식 문서에 따르면 Text cue는 서식을 적용한 텍스트를 비디오 출력으로 표시하는 큐입니다. 글꼴, 크기, 스타일, 정렬, 글자색, 배경색을 지정할 수 있고, 큐를 실행하면 QLab이 텍스트를 비디오로 렌더링합니다. Text cue는 QLab 비디오 시스템에 속하므로 프로젝션에 사용할 Video Stage에도 배정할 수 있습니다.
공연팀의 관점에서 보면 자막도 일반적인 QLab 큐처럼 다룰 수 있다는 뜻입니다.
- 사운드, 비디오, 조명, Wait cue, 대기 지점과 같은 큐 리스트에 둘 수 있습니다.
- 프로젝터나 스크린에 연결된 Stage에 배정할 수 있습니다.
- 다른 영상 요소와 마찬가지로 서식을 지정할 수 있습니다.
- GO, cue trigger, Timeline Group, OSC, MIDI를 비롯한 쇼 컨트롤 로직으로 실행할 수 있습니다.
여기까지는 좋은 소식입니다.
다만 QLab은 번역 편집기도, 대본 분절 도구도, 다국어 관객용 Viewer도 아닙니다. 자막을 하나씩 QLab 안에서 손으로 만들다 보면 리허설을 시작하기도 전에 몇 시간을 써버릴 수 있습니다.
QLab 공식 문서가 지원하는 범위
작업 흐름을 설계하기 전에 QLab의 공식 기능과 제작 현장에서 쓰는 응용 방식을 구분해 둘 필요가 있습니다.
| 필요 사항 | QLab 공식 문서가 지원하는 기능 | 이 글에서 더하는 실무 방식 |
|---|---|---|
| 텍스트 프로젝션 | QLab Text cue는 서식이 적용된 텍스트를 비디오로 렌더링하며 Video Stage에 배정할 수 있습니다. | 자막 한 줄을 QLab Text cue 하나로 다룹니다. |
| 여러 큐 일괄 생성 | QLab AppleScript 사전은 make type "text"를 지원하고 text, text alignment, fixed width, stage name, translation x, translation y 같은 큐 속성을 제공합니다. |
스프레드시트의 각 행이나 텍스트 블록을 Text cue 하나의 원본으로 사용합니다. |
| 스프레드시트 활용 | QLab Cookbook에는 Excel의 행을 읽어 Group과 Text cue를 만들고, 텍스트와 서식을 지정한 뒤 큐를 Group 안으로 옮기는 예제가 있습니다. | 플래시카드용 예제를 자막과 서타이틀 제작에 맞게 응용합니다. |
| XLSX 자막 기본 가져오기 | QLab 공개 문서는 Excel 자동화 사례를 보여 주지만, XLSX 자막을 한 번에 불러오는 기본 기능을 제공하는 것은 아닙니다. | Excel, CSV, TXT를 원본 데이터로 삼고 스크립트나 importer로 QLab 큐를 생성합니다. |
| 관객 휴대폰 동기화 | QLab Text cue는 현장 프로젝션을 담당합니다. 그 자체로 브라우저 기반 자막 상태를 관객 휴대폰에 전송하지는 않습니다. | 공연 확정본용 SurtitleLive QLab Projection Pack은 원본 큐마다 로컬 Script child를 하나씩 추가할 수 있습니다. Viewer 상태를 전송하려면 오퍼레이터가 일반 ASM 콘솔을 명시적으로 연결하고 제어를 허용해야 합니다. |
이 구분은 검색 노출뿐 아니라 제작 정보의 정확성을 위해서도 중요합니다. “QLab은 Excel 자막을 기본 기능으로 가져온다”라고 말해서는 안 됩니다. 다음 표현이 더 안전하고 정확합니다.
스프레드시트 또는 스크립트 기반 작업 흐름을 이용하면 Excel, CSV, TXT로 QLab 자막 Text cue를 만들 수 있습니다.
이는 QLab Cookbook이 스프레드시트 자동화를 다루는 방식과도 일치합니다.
가장 빠른 구조: 한 행에 자막 하나
원본이 Excel이나 Google Sheets라면 한 행에 자막 하나만 넣는 구조로 시작하세요.
시트는 단순할수록 좋습니다. 단순한 구조는 테크 리허설에서도 쉽게 무너지지 않습니다.
이 AppleScript와 Excel 템플릿, 화면 예시를 모두 담은 패키지는 QLab 자막 데모 자료(ZIP)에서 내려받을 수 있습니다.
| 열 | 예시 | 필요한 이유 |
|---|---|---|
cue_number |
10 |
QLab에 지정할 큐 번호입니다. |
subtitle_text |
Welcome to the show. |
관객에게 보이는 문장입니다. |
operator_note |
After doorbell |
오퍼레이터가 확인할 큐 노트입니다. |
language |
en |
여러 언어 버전을 준비할 때 유용합니다. |
stage |
(비워 둠) | 비워 두면 QLab 기본 Stage를 사용합니다. Stage 이름 입력은 선택 사항입니다. |
alignment |
center |
보통 center를 쓰지만, 값은 명시해 두는 편이 좋습니다. |
첫 작업이라면 두 열만 있어도 충분합니다.
cue_number,subtitle_text
10,Welcome to the show.
11,Please turn off your phones.
12,The performance will begin shortly.번역가에게 자막을 받을 때에는 셀을 병합하거나, 색으로 의미를 구분하거나, 메모란에 제작 노트를 숨기지 않도록 요청하세요. 텍스트는 열에 넣어야 합니다. 스크립트는 열을 읽을 수 있고, 오퍼레이터도 열을 빠르게 검토할 수 있습니다.
방법 1: Excel에서 QLab Text cue 만들기
이 방법은 QLab 공식 Cookbook의 방식과 가장 가깝습니다.
원리는 간단합니다.
- Excel에서 자막 스프레드시트를 엽니다.
- 대상 QLab 5 Workspace를 엽니다.
- Text cue 하나를 직접 만들고 투사해 Video License, Stage, 출력 경로, 프로젝터가 모두 정상인지 확인합니다.
- 각 행을 읽는 AppleScript를 실행합니다.
- 행마다 자막 Text cue를 담은 최상위 Timeline Group을 만듭니다. 두 번째 자막부터는 이전 줄을 지우는 Fade cue도 함께 만듭니다.
- 오퍼레이터용 큐 번호와 이름, 자막 텍스트, 정렬, 너비, 노트, 필요하다면 Stage까지 지정합니다.
- 공연에서 쓰기 전에 현재 QLab 큐 리스트에 생성된 최상위 Group을 검토합니다.
QLab Cookbook의 공식 예제는 Excel을 이용해 Group과 여러 Text cue가 들어 있는 비교적 복잡한 시각 자료를 만듭니다. 자막에는 이 구조를 단순화할 수 있습니다. 스프레드시트 한 행이 자막 Text cue 하나가 되는 방식입니다.
최소한의 AppleScript 골격은 다음과 같습니다.
-- Official QLab 5 pattern:
-- https://qlab.app/docs/v5/scripting/examples/#create-and-move-a-new-cue
on makeCueInGroup(cueType, destinationContainer)
tell application id "com.figure53.QLab.5" to tell front workspace
make type cueType
set newCue to last item of (selected as list)
set q number of newCue to ""
set newCueID to uniqueID of newCue
set sourceList to parent of newCue
move cue id newCueID of sourceList to end of destinationContainer
return cue id newCueID of destinationContainer
end tell
end makeCueInGroup전체 예제 스크립트는 공연 중에도 QLab 큐 리스트를 한눈에 읽을 수 있도록 구성되어 있습니다.
- 모든 자막은 현재 큐 리스트의 최상위 Timeline Group으로 생성됩니다. 공연 큐 전체를 감싸는 별도의 import Group은 만들지 않습니다.
- 따라서 자막과 자막 사이 어느 지점에든 Sound, Light, Video, Wait 등 다른 공연 큐를 넣을 수 있습니다.
- Excel의
cue_number가 QLab의 Number가 됩니다. - Excel의
subtitle_text가 오퍼레이터에게 보이는 Timeline Group의 QLab Name이 됩니다. - 오퍼레이터 화면에는
20 | Subtitle 20만 뜨는 대신20 | Going on to the Hartlocks’ tonight, Margaret?처럼 실제 문장이 표시됩니다. - 두 번째 자막부터 각 Timeline Group에는
CLEAR PREVIOUS와DISPLAY en이 차례로 들어갑니다. 새 Text cue에는 0.05초의 pre-wait를 주어 새 문장이 나타나기 전에 이전 문장이 사라지고 정지하도록 합니다. - 첫 번째 자막에는 지울 이전 문장이 없으므로
DISPLAY en만 들어갑니다. - 자막 시퀀스 끝에는 마지막 문장을 없애는 최상위
CLEAR LAST SUBTITLE단계가 추가됩니다.
이 예시는 완성형 프로덕션 importer가 아니라, 내용을 파악하기 쉬운 출발점입니다.
실제 공연이라면 QLab Workspace에 데이터를 쓰기 전에 다음 검사를 추가하세요.
- 큐 번호가 비어 있으면 작업 중단
- 같은 큐 번호가 이미 있으면 작업 중단
- 자막 앞뒤의 불필요한 공백 제거
- 한 줄이 지나치게 길면 경고
- 초안 또는 미승인으로 표시된 행 제외
- 먼저 QLab Workspace의 일회용 복사본에 생성
- QLab Workspace의 타임스탬프 백업 보관
가장 안전한 방식은 QLab Workspace의 일회용 복사본에 큐를 생성하고 최상위 Group을 검토한 뒤, 실제 공연 Workspace에서 다시 import하거나 공연의 변경 관리 절차에 따라 검토를 마친 큐만 옮기는 것입니다.
방법 2: CSV로 QLab 자막 만들기
데이터를 주고받을 때에는 CSV가 XLSX보다 나은 경우가 많습니다.
Excel은 편집하기 편하고, CSV는 자동화하기 편합니다.
일반적인 CSV 작업 흐름은 다음과 같습니다.
- Excel, Google Sheets, Numbers, Airtable에서 자막을 편집합니다.
- CSV로 내보냅니다.
- CSV를 읽어 QLab Text cue를 만드는 작은 importer를 실행합니다.
- 리허설 전에 생성된 QLab 큐를 검토합니다.
importer가 Excel과 직접 통신할 필요 없이 일반 CSV 파일만 읽으면 된다는 것이 장점입니다. 덕분에 작업 흐름을 버전 관리하고, 테스트하고, 반복하기가 쉬워집니다.
CSV는 Git에도 저장할 수 있어 변경 내용을 비교하기 좋습니다. 예를 들어 제작감독은 QLab Workspace를 열지 않고도 42번 큐의 번역이 어떻게 바뀌었는지 확인할 수 있습니다.
자막은 공연 제작 과정에서 계속 달라지므로 이런 구조가 특히 유용합니다.
- 번역문이 더 짧게 다듬어질 수 있습니다.
- 배우가 쉼의 길이를 바꿀 수 있습니다.
- 농담의 호흡에 맞춰 줄바꿈을 고쳐야 할 수 있습니다.
- 막바지 삭제로 대본 한 쪽이 사라질 수 있습니다.
- 연출이 자막을 두 큐 앞당겨 달라고 할 수 있습니다.
원본 데이터가 구조화되어 있으면 QLab 큐 리스트를 손으로 다시 만드는 대신, 같은 규칙으로 재생성할 수 있습니다.
방법 3: TXT로 QLab 자막 만들기
아직 스프레드시트가 없다면 일반 텍스트가 가장 빠른 출발점입니다.
다음처럼 단순한 블록 형식을 사용하세요.
10
Welcome to the show.
11
Please turn off your phones.
12
The performance will begin shortly.이 형식에서 자막 블록 하나는 다음 세 부분으로 이루어집니다.
- 큐 번호
- 한 줄 이상의 자막 텍스트
- 다음 블록과 구분하는 빈 줄
TXT importer는 빈 줄을 기준으로 파일을 나누고, 각 블록의 첫 줄을 QLab 큐 번호로, 나머지 줄을 자막 텍스트로 읽을 수 있습니다.
빠르지만 쉽게 깨지는 방식이기도 합니다. 일반 텍스트는 소규모 행사나 초벌 리허설에는 충분합니다. 그러나 여러 언어, 승인 상태, 오퍼레이터 노트, 장면 번호, 화자 이름, 수정 이력이 필요해지면 한계가 드러납니다.
본격적인 서타이틀 작업이라면 구조가 복잡해지는 시점에 TXT를 스프레드시트나 전용 서타이틀 편집기로 옮기세요.
프로젝션 설정: Stage를 빼놓지 마세요
Text cue를 생성하는 일은 절반에 불과합니다. Text cue에서 Stage로, Stage에서 Output Route로, 다시 실제 디스플레이나 프로젝터로 이어지는 경로가 모두 정상이어야 합니다.
QLab 공식 문서에는 Text cue를 사용하려면 Video License가 필요하다고 명시되어 있습니다. 따라서 이 글은 활성화된 Video License 또는 Video가 포함된 Bundle License가 있다는 전제로 설명합니다. 라이선스가 없어도 importer가 Text cue를 만들 수는 있지만, QLab에서는 해당 큐가 broken 상태가 되어 투사할 수 없습니다. QLab 공식 Text Cues 문서와 라이선스별 기능표를 확인하세요.
계속하기 전에 QLab → Manage Your Licenses를 열어 Video가 활성화되어 있는지 확인하세요. Audio 전용 라이선스로는 Text cue를 사용할 수 없습니다.
처음 설정할 때: 프로젝터 한 대 연결하기
Excel importer를 실행하기 전에 다음 순서로 확인하세요.
- 프로젝터나 외부 디스플레이를 Mac에 연결하고 전원을 켭니다.
- macOS 시스템 설정 → 디스플레이에서 프로젝터가 인식되는지 확인합니다. 일반적인 서타이틀 운용에서는 오퍼레이터 화면을 미러링하기보다 확장 디스플레이로 설정합니다.
- QLab을 엽니다. 가능하다면 프로젝터를 연결한 뒤 새 Workspace를 만드세요. QLab은 Workspace 생성 시 연결된 디스플레이별 Stage를 자동으로 만드는 것이 보통입니다.
- Workspace Settings → Video를 엽니다.
- Video Outputs에서 프로젝터용 Stage를 찾습니다. Devices 열에 프로젝터 또는 외부 디스플레이 이름이 표시되는지 확인하세요. Device가 없는 Stage로는 자막을 투사할 수 없습니다.
- 알맞은 Stage가 없다면 Output Routing에서 프로젝터를 Device로 쓰는 Output Route를 만든 뒤 Video Outputs로 돌아갑니다. 이어서 New Video Stage → Stage with output을 선택하고 방금 만든 Route를 지정합니다.
- Stage에는
Surtitles처럼 간단한 이름을 붙이세요. Excel 시트에서 이름으로 참조한다면 import 후에는 이름을 바꾸지 않는 편이 안전합니다.
QLab 용어로 정리하면 신호는 다음 경로를 따라갑니다.
Text cue → Stage → Region → Output Route → 프로젝터
어느 한 연결이라도 빠지면 큐는 만들어져도 broken 상태가 되거나, 프로젝터에 아무것도 나타나지 않을 수 있습니다.
Excel을 가져오기 전에 Text cue 하나 시험하기
- QLab에서 Text cue 하나를 직접 만듭니다.
Subtitle test처럼 짧은 문장을 입력합니다.- Text cue의 I/O inspector에서 프로젝터용 Stage를 선택합니다.
- 큐를 실행합니다.
- QLab preview나 Stage monitor에만 보이는 것이 아니라 실제 프로젝터에도 문장이 나타나는지 확인합니다.
- 객석 맨 뒤에서도 읽을 수 있도록 글꼴, 크기, 색상, 너비, 정렬, 위치를 조정합니다.
이 수동 Text cue가 정상 작동한 뒤에만 Excel importer를 실행하세요.
Excel의 stage 열에는 무엇을 넣어야 하나요?
- 가장 간단하게 작업하려면
stage를 비워 두세요. 스크립트가 새 Text cue마다 QLab의 기본 Stage를 유지합니다. - 직접 만든 특정 Stage를 사용하려는 경우에만 이름을 입력하고, 철자가 QLab과 정확히 같은지 확인하세요.
- 스프레드시트에 QLab이 찾지 못하는 Stage 이름이 있으면 예제 스크립트는 기본 Stage를 유지하고 fallback 사실을 cue notes에 기록합니다.

importer는 실행됐지만 자막이 투사되지 않을 때
| 화면에 보이는 현상 | 뜻 | 해결 방법 |
|---|---|---|
QLab에 QLab Video License or output required가 표시됩니다. |
자막 큐는 생성됐지만 Text cue 하나 이상이 broken 상태입니다. | 먼저 Video 또는 Bundle License가 활성화됐는지 확인합니다. 그런 다음 Workspace Settings → Video를 설정하고 이미 생성된 큐를 시험하세요. 다시 import하지 마세요. |
| 생성된 모든 Text cue가 broken 상태이고 선택할 Video Stage가 없습니다. | 활성화된 QLab Video License가 없습니다. | Video 또는 Bundle License를 설치하거나 활성화하세요. 라이선스 없이는 Text cue를 투사할 수 없습니다. |
Text cue에 빨간 오류 표시가 뜨거나 broken이라고 나옵니다. |
해당 Stage, Route 또는 출력 Device를 사용할 수 없습니다. | Text cue의 I/O Stage를 확인한 뒤 Stage의 Region, Route, Device를 차례로 점검합니다. |
| 큐는 실행되지만 프로젝터에 아무것도 나타나지 않습니다. | 잘못된 Stage를 사용 중이거나 Route가 다른 디스플레이를 가리키고 있을 가능성이 큽니다. | Text cue에서 의도한 Stage를 선택하고 Route의 Device를 확인합니다. |
스크립트가 큐 번호 10이 이미 있다고 알립니다. |
이전 import 결과나 다른 공연 큐가 같은 번호를 사용하고 있습니다. | 새 Workspace 또는 복사본을 사용하거나, 안전함을 확인한 뒤 앞서 시험한 import 결과를 제거합니다. |
| QLab에는 생성된 자막 Group이 있는데 스크립트를 다시 실행하면 실패합니다. | 첫 import에서 구조 생성은 이미 성공한 상태입니다. | 중복 import를 하지 말고 비디오 출력을 고친 뒤 기존 큐를 사용합니다. |
자동화는 현재 설정을 그대로 반복합니다. 출력 경로나 Text cue 서식이 잘못되어 있다면 그 실수도 순식간에 수백 번 반복됩니다.
직접 만든 QLab 자막 흐름에서 흔히 깨지는 지점
문제가 단순할 때에는 직접 QLab 자막을 생성하는 방식도 잘 작동합니다.
텍스트가 있고, QLab Text cue가 필요하다.
그러나 실제 문제가 다음과 같다면 훨씬 복잡해집니다.
번역 대본과 막바지 수정, 여러 버전, 프로젝션 스크린, 관객 휴대폰, cue jump, 그리고 배우가 대본과 다르게 진행할 때 복구해야 하는 라이브 오퍼레이터가 있다.
흔한 문제는 다음과 같습니다.
- 중복된 큐 번호
- 누락된 Stage 배정
- 스크린 폭을 넘는 자막
- Excel에서는 괜찮았지만 프로젝터에서는 어색한 줄바꿈
- 큐를 가져온 뒤 다시 바뀐 번역
- 자막 텍스트가 QLab 공연 파일에만 남는 상황
- 번역 3판과 4판을 깔끔하게 비교할 방법의 부재
- 프로젝션과 모바일 자막의 진행 상태가 어긋나는 문제
- 배우가 대사를 건너뛰거나 반복하고 순서를 바꿀 때 커지는 오퍼레이터의 부담
바로 이 지점이 “빠른 QLab 자동화”와 실제 서타이틀 제작 흐름을 가르는 경계입니다.
SurtitleLive가 더 나은 선택이 되는 때
현장 프로젝션만 필요하다면 QLab Text cue만으로도 충분할 수 있습니다.
번역 검토, 변하지 않는 cue key, 모바일 관람, 프로젝션과 관객 휴대폰의 동시 운용이 필요하다면 자막을 QLab으로 넘기기 전에 SurtitleLive에서 별도로 관리하는 편이 낫습니다.
SurtitleLive의 QLab 흐름은 두 단계로 나뉩니다.
QLab Projection Pack
QLab에서 현장 프로젝션을 운용할 때 사용합니다.
작업 흐름은 다음과 같습니다.
SurtitleLive Editor → QLab Projection Pack → QLab Text cue → 프로젝터
SurtitleLive에서 대본과 자막 구간을 준비하고 번역과 큐 순서를 검토한 다음 QLab용 큐를 내보냅니다. 공연장 재생 환경은 계속 QLab이 맡습니다.
QLab이 이미 테크니컬 오퍼레이터의 중심 도구이지만, 자막 준비까지 QLab 안에서 하나씩 처리해서는 안 되는 공연에 적합합니다.
내려받은 Pack은 데이터와 실행 지시를 분리합니다. 1 - START HERE.txt에는 오퍼레이터 작업 순서가, 2a - Import into QLab.applescript에는 정적 importer가, 2b - QLab Cue Data.json에는 준비된 큐 데이터가 들어 있습니다. Editor에서 만든 Pack은 오프라인 프로젝션용 인계물입니다. Deployment를 만들거나 ASM을 열거나 Viewer에 상태를 전송하지 않습니다.
각 원본 자막에는 변하지 않는 SurtitleLive cue key가 유지됩니다. 수정본을 다시 import하면 같은 cue key를 가진 SurtitleLive Caption Group은 제자리에서 갱신되고, 새 원본 큐는 추가되며, SurtitleLive에서 삭제된 자막은 오퍼레이터 검토 대상으로 표시됩니다. 기존 Group을 조용히 삭제하거나, 관련 없는 Sound·Light·Video·Standby·무대진행 큐를 덮어쓰지 않습니다.
내보내기 설정에는 의도한 프로젝션 출력도 담깁니다. 원본 큐 하나에 언어나 스크린별 Text child를 여러 개 넣더라도 오퍼레이터에게는 하나의 큐 시점으로 남습니다. 같은 스크린을 공유하는 언어는 자막 위치를 서로 다르게 잡아야 하고, 서로 다른 프로젝터로 보내는 출력은 각각 다른 QLab Stage 이름을 써야 합니다. 실제 공연장에서 Stage 배정을 반드시 시험하세요.
공연 확정본용 QLab·Viewer 동기화
QLab이 공연 타임라인을 계속 운용하면서, 이미 배포된 SurtitleLive Viewer도 같은 원본 큐를 따라가야 할 때 사용합니다.
작업 흐름은 다음 두 갈래입니다.
QLab → 현장 프로젝션 → 프로젝터
그리고 같은 큐 시점에:
QLab Script child → loopback bridge → 열려 있는 ASM 콘솔 → 기존 control channel → Viewer
공연 확정본에서는 Deployment Cockpit의 QLab Projection Pack이 원본 자막 하나를 Timeline Group 하나로 가져올 수 있습니다. Group에는 선택한 언어나 프로젝터 출력에 맞춰 Text child가 하나 이상 들어갈 수 있지만, 로컬 Script child는 최대 하나만 들어갑니다. 모든 child는 같은 SurtitleLive cue key 아래에 유지됩니다.
Script child는 비밀 정보가 없는 JSON cue identity를 127.0.0.1:37621에 바인딩된 bridge로 보냅니다. bridge는 SurtitleLive backend를 직접 호출하지 않으며 ASM 비밀번호, Viewer 링크, runtime token, cloud credential도 담지 않습니다. 로컬 cue event를 이미 열려 있는 ASM 콘솔에 전달할 뿐이며, 기존 control channel을 통해 cue.jump 상태를 전송하는 책임은 계속 ASM에 있습니다.
이 경로는 오퍼레이터가 의도적으로 준비하고 허용해야만 작동합니다.
- Deployment Cockpit에서 공연 확정본의 QLab 기능을 켜고 새 QLab Projection Pack을 내려받습니다.
- Pack을 QLab으로 import한 다음
3 - Start Local Bridge.command를 더블 클릭하고 Terminal 창을 열어 둡니다. - 일반 ASM 콘솔을 열고 잠금을 해제합니다.
- QLab enabled를 클릭한 다음 Connect local bridge를 선택합니다.
- Viewer sync가 준비될 때까지 기다리고, 평소와 같이 Go Live를 명시적으로 실행한 뒤에만 Allow QLab control을 선택합니다.
bridge 연결만으로 공연이 자동 시작되지는 않습니다. 로컬 bridge를 사용할 수 없다면 QLab 제어를 끊고 일반 ASM 수동 조작으로 돌아가세요.
graph TD
%% Style Definitions
classDef qlab fill:#1a1c23,stroke:#5856d6,stroke-width:2px,color:#fff;
classDef hardware fill:#2a2b36,stroke:#8e8e93,stroke-width:2px,color:#fff;
classDef cloud fill:#0d2d5e,stroke:#007aff,stroke-width:2px,color:#fff;
classDef audience fill:#103823,stroke:#34c759,stroke-width:2px,color:#fff;
subgraph Venue ["Local Venue (Theatre)"]
QLab["QLab 5 Workspace
(Show Control Mac)"]:::qlab
Projector["Stage Projector"]:::hardware
Screen["Subtitle Screen / LED Wall"]:::hardware
Bridge["Loopback Bridge
(127.0.0.1:37621)"]:::qlab
ASM["Open, Unlocked ASM Console
(QLab Control Armed)"]:::qlab
end
subgraph CloudSpace ["Cloud Service"]
Cloud["SurtitleLive Cloud Platform
(Real-time Sync)"]:::cloud
end
subgraph Viewers ["Audience Devices"]
Phone1["Audience Phone A
(Web Browser)"]:::audience
Phone2["Audience Phone B
(Web Browser)"]:::audience
PhoneN["...Other Phones"]:::audience
end
%% Connection Logic
QLab -->|"1. Video Output (HDMI/SDI)"| Projector
Projector --> Screen
QLab -->|"2. Script Cue POST
(Non-secret JSON identity)"| Bridge
Bridge -->|"3. Local browser event"| ASM
ASM -->|"4. Existing control-channel cue.jump"| Cloud
Cloud -->|"5. Viewer update"| Phone1
Cloud -->|"5. Viewer update"| Phone2
Cloud -->|"5. Viewer update"| PhoneN
%% Subgraph Styling
style Venue fill:#f9f9fb,stroke:#ccc,stroke-width:1px;
style CloudSpace fill:#f0f7ff,stroke:#b3d7ff,stroke-width:1px;
style Viewers fill:#f2fff5,stroke:#c2f0cc,stroke-width:1px;관객의 기기가 QLab과 직접 통신해서는 안 되고, loopback bridge가 두 번째 클라우드 제어 경로가 되어서도 안 되기 때문에 이 구분이 중요합니다. QLab은 현장 타임라인을 실행하고, bridge는 공연용 Mac 안에서 제한된 cue identity만 전달합니다. ASM은 오퍼레이터가 허용한 제어 상태를 적용하고, 기존 SurtitleLive control channel이 Viewer를 갱신합니다.
가장 현실적인 권장 방식
하루짜리 소규모 행사라면:
Excel이나 TXT로 QLab Text cue를 만드세요. 단순하게 구성하고, 프로젝터를 시험하고, 백업을 남기세요.
번역 공연이라면:
QLab 밖에서 자막을 준비하고 텍스트 검토가 끝난 뒤 QLab으로 가져오세요.
다국어 또는 모바일 Viewer를 쓰는 공연이라면:
SurtitleLive QLab Projection Pack을 사용하세요. Viewer가 QLab을 따라가야 할 때에만 공연 확정본용 ASM 동기화 경로를 더하고, 공연 전에 의도적으로 제어를 허용하세요.
목표는 QLab을 대체하는 것이 아닙니다. QLab이 가장 잘하는 일, 즉 라이브 쇼 컨트롤에 집중하게 하는 것입니다.
자막 준비와 번역 검토, 모바일 관람, 큐 상태 동기화에는 각각에 맞는 작업 흐름이 필요합니다.
자주 묻는 질문
QLab에서 자막을 표시할 수 있나요?
네. QLab Text cue는 서식을 적용한 텍스트를 비디오 출력으로 표시할 수 있어 프로젝션 자막, 서타이틀, 접근성 자막, 안내 문구 같은 텍스트 영상에 널리 쓰입니다.
Excel 자막을 QLab으로 바로 가져올 수 있나요?
QLab 공식 Cookbook에는 AppleScript로 Excel 데이터를 읽어 큐를 만드는 예제가 있지만, 이는 XLSX 자막을 클릭 한 번으로 가져오는 기본 기능과는 다릅니다. 실제로는 Excel을 원본 데이터로 사용하고, 스크립트나 importer로 QLab Text cue를 생성합니다.
CSV로 QLab 자막을 만들 수 있나요?
네, importer를 사용하면 됩니다. CSV는 일반 텍스트라 XLSX보다 읽고 분석하기 쉬운 경우가 많습니다. 스크립트가 각 행을 읽어 자막마다 Text cue 하나를 만들 수 있습니다.
TXT로 QLab 자막을 만들 수 있나요?
네, TXT 파일의 구조가 일정하다면 가능합니다. 예를 들어 각 블록을 큐 번호로 시작하고 그 아래에 자막 텍스트를 적은 뒤, 빈 줄로 다음 큐와 구분할 수 있습니다. 스크립트가 이 블록을 QLab Text cue로 바꿀 수 있습니다.
자막에는 QLab Text cue와 Video cue 중 무엇을 써야 하나요?
공연 중에도 수정할 수 있는 텍스트라면 Text cue가 알맞습니다. 자막이 렌더링된 비디오나 그래픽에 이미 합쳐져 있다면 Video cue가 더 적합합니다. Text cue는 구조화된 텍스트로 생성하고, 서식을 바꾸고, 문장을 고치기가 쉽습니다.
QLab이 자막을 관객 휴대폰과 동기화하나요?
QLab은 Text cue를 현장에서 투사할 수 있지만, 관객 휴대폰으로 전달하려면 브라우저·모바일용 작업 흐름이 따로 필요합니다. 공연 확정본용 SurtitleLive QLab Projection Pack에는 같은 원본 큐를 명시적으로 연결되고 제어가 허용된 ASM 콘솔에 알리는 로컬 Script child가 포함될 수 있습니다. bridge는 공연용 Mac 안에 머물고, Viewer 상태는 QLab이나 bridge가 아니라 ASM이 기존 control channel을 통해 전송합니다.
직접 만든 QLab 자막 스크립트는 언제 그만 써야 하나요?
번역 검토, 여러 언어, 변하지 않는 cue key, 모바일 관람, 리허설 중 복구, import 후 반복 갱신이 필요해진다면 직접 만든 스크립트만으로 관리하기에는 위험이 큽니다. 그때부터는 QLab Workspace 안에서 모든 자막을 손으로 관리하기보다 전용 서타이틀 작업 흐름에서 준비한 뒤 QLab으로 내보내세요.
관련 자료
- QLab 5 Text Cues: https://qlab.app/docs/v5/video/text-cues/
- QLab 5 AppleScript Dictionary: https://qlab.app/docs/v5/scripting/applescript-dictionary-v5/
- QLab Cookbook — Grid: https://qlab.app/cookbook/grid/
- SurtitleLive QLab workflow: https://surtitlelive.com/qlab
- SurtitleLive QLab Import Pack 내보내기: https://surtitlelive.com/guides/export-qlab-import-pack
- SurtitleLive QLab 제어 및 ASM·Viewer 동기화 사용자 가이드: https://surtitlelive.com/guides/qlab-asm-viewer-sync-beta