vMix 강의 13편 | 쇼트컷과 컨트롤 서피스: 키보드, Stream Deck, MIDI, 태블릿
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
이 강의를 마치면 생방송 중 마우스로 입력을 찾아 클릭하는 일을 없애고, 키보드·Stream Deck·MIDI 컨트롤러·태블릿 중 손에 맞는 장비에 스위칭과 자막, 녹화 버튼을 배치할 수 있습니다. 버튼에 불이 들어오는 탈리까지 Activators로 붙입니다.
이 글은 vMix 강의 시리즈 13편입니다. 이전 편: Instant Replay: 스포츠·행사 중계 리플레이 운용 · 다음 편: 트리거·스크립팅·API: vMix 자동화 입문
1. Shortcuts 창: 키, 기능(Function), 입력, 값

Settings → Shortcuts. 키·MIDI·컨트롤러에 기능을 매핑하는 목록입니다.
Settings → Shortcuts → Add를 누르면 쇼트컷 하나를 만드는 창이 뜹니다. 다른 스위처에서 매크로라고 부르는 것과 같습니다. 칸은 네 개만 이해하면 됩니다.
- Key: 어떤 버튼인가. 직접 고르기보다 Find 버튼을 누르고 키보드 키를 치거나 컨트롤러 버튼을 누르면 자동으로 잡힙니다. MIDI 장비는 vMix를 켜기 전에 연결해 두고, Shortcuts 탭의 MIDI 설정 버튼에서 장치를 켜야 Find에 잡힙니다.
- Function: 무엇을 하는가. 드롭다운 옆 화살표를 누르면 카테고리별로 정리된 Select Function 창이 뜹니다.
- Input: 어느 입력에 하는가. 여기서 Assign Shortcut to Input Number를 체크하면 "현재 3번 자리에 있는 입력"에 동작하고, 체크를 풀면 "이 입력 자체"를 따라갑니다. 이 차이가 뒤에 나올 사고의 원인입니다.
- Value / Duration: 함수에 넘길 값(자막 텍스트, 볼륨 등)과 트랜지션 시간(ms).
그 아래 Title·Description은 Web Controller와 Stream Deck에 표시될 이름이고, Display는 버튼을 기본 글자·색상·이미지·입력 썸네일 중 무엇으로 보여 줄지입니다. **Local Shortcut (This Preset Only)**를 체크하면 쇼트컷이 프리셋 안에 저장되고, 안 하면 vMix 설정에 전역으로 저장됩니다. 같은 키에 둘 다 있으면 Local이 이깁니다. 행사별 자막 버튼은 Local, 녹화·FTB 같은 공통 버튼은 Global로 나누는 것이 제 원칙입니다.
버튼 하나에 여러 동작이 필요하면 같은 Key로 쇼트컷을 여러 개 만들면 됩니다. 목록 순서대로 실행되고, 위·아래 버튼으로 순서를 바꿉니다. 누르고 있는 동안만 동작하는 방식은 vMix 쇼트컷 창에 따로 없으니, 켜기와 끄기를 On·Off 함수 두 개(예: AudioOn과 AudioOff)로 나눠 버튼 두 개에 두는 편이 확실합니다.
2. 자주 쓰는 기능 20개
Select Function 창의 수백 개 함수 중 실제로 제 버튼에 올라가는 것은 이 정도입니다.
| 분류 | 함수 | 용도 |
|---|---|---|
| 스위칭 | Cut, Fade, Stinger1 | Preview를 Program으로 |
| 스위칭 | PreviewInput, ActiveInput | 특정 입력을 Preview·Program에 |
| 스위칭 | QuickPlay, FadeToBlack | 영상 바로 재생, 블랙 |
| 자막 | OverlayInput1In, OverlayInput1Out, OverlayInputAllOff | 오버레이 채널 올리기·내리기·전부 끄기 |
| 자막 | SetText, SelectTitlePreset, NextTitlePreset | 텍스트 바꾸기, 타이틀 프리셋 전환 |
| 자막 | SetCountdown, StartCountdown | 타이머 |
| 오디오 | AudioOn, AudioOff, Audio | 채널 켜기·끄기·토글 |
| 오디오 | SetVolume, SetMasterVolume, SetVolumeFade | 페이더와 서서히 줄이기 |
| 재생 | PlayPause, Restart | 영상 입력 제어 |
| 레이아웃 | SetLayer, SetZoom | 멀티뷰 레이어 교체, 줌 프리셋 |
| 운영 | StartStopRecording, StartStopStreaming, Snapshot | 녹화·송출·스냅샷 |
| 자동화 | ScriptStart, DataSourceNextRow, OpenPreset | 스크립트, 데이터 다음 행, 프리셋 열기 |
Audio는 토글이라 두 번 누르면 원래대로 돌아오지만, 지금 상태를 모르는 채 누르면 반대로 갑니다. 생방송 버튼에는 토글보다 AudioOn·AudioOff처럼 결과가 정해진 함수를 씁니다. 같은 이유로 녹화는 StartRecording과 StopRecording을 나눕니다.
버튼 수를 줄이고 싶으면 Dynamic Input을 씁니다. 입력 선택 버튼 한 줄(SetDynamicInput1에 Value로 입력 번호)과 동작 버튼 한 줄(Input을 Dynamic1로 지정한 Fade, Mute 등)을 두면, "입력 고르고 → 동작" 순서로 눌러 조합이 됩니다. SetDynamicValue1~4로 텍스트 값도 같은 방식으로 바꿀 수 있습니다.
3. Stream Deck / Companion 연동과 피드백
Stream Deck은 Stream Deck 소프트웨어의 플러그인 스토어에서 vMix Shortcuts 플러그인을 설치하고, 원하는 버튼에 끌어다 놓은 뒤 vMix의 Add Shortcut에서 Find로 그 버튼을 찾아 함수를 붙입니다. 입력과 관련된 함수면 Display를 Thumbnail로 두세요. 그 입력의 실시간 화면이 버튼에 초당 4회 정도 갱신되어 표시됩니다. 카메라 버튼에 카메라 화면이 보이면 번호를 외울 필요가 없습니다.
Bitfocus Companion은 Stream Deck을 vMix뿐 아니라 여러 장비의 공용 컨트롤러로 쓰게 해 주는 무료 소프트웨어입니다. vMix 모듈이 vMix의 API에 붙어 동작하므로 Settings → Web Controller 탭에서 API 접근이 열려 있어야 하고, 버튼 색을 Program·Preview 상태에 따라 바꾸는 피드백이 됩니다. 스위처 한 대로 vMix와 PTZ 카메라, 오디오 콘솔을 같이 다루는 현장이면 Companion이 낫고, vMix만 쓰면 공식 플러그인이 설정이 적습니다.
4. MIDI 컨트롤러로 오디오 페이더 잡기
MIDI 페이더는 0~127 값을 보내므로 SetVolume에 연결하면 그대로 볼륨이 됩니다. 쇼트컷 창에서 Find를 누르고 페이더를 움직이면 Channel과 Note가 잡히고, 입력을 지정하면 끝입니다. Templates에 있는 AudioLaunchControlXL 템플릿은 Novation Launch Control XL의 페이더 7개를 입력 1~7, 마지막을 Master에 매핑해 주니 그 장비라면 적용부터 해 보세요.
같은 버튼을 노브 위치에 따라 다르게 쓰려면 Value 체크 후 0~127 중 값을 지정하고, 조그 휠처럼 좌·우 신호만 보내는 컨트롤은 Type을 JogWheel(2X·5X·10X는 증분 크기)로 둡니다. SetMasterVolume을 JogWheel에 걸면 오른쪽으로 돌릴 때 커지고 왼쪽으로 돌릴 때 작아집니다. X-Keys의 셔틀·조그도 JogWheel로 설정합니다.
반대 방향, 즉 vMix의 볼륨이 바뀌었을 때 모터 페이더가 따라 움직이는 것은 Activators의 InputVolume·MasterVolume 이벤트가 담당합니다. 공식 예시에 Behringer X-Touch Compact의 모터 페이더가 있습니다. 게인 구조와 어디서 볼륨을 잡아야 하는지는 3편 오디오 믹서를 보세요.
5. vMix Web Controller: 태블릿·폰에서 스위칭

Settings → Web Controller. 태블릿·폰에서 접속할 주소와 보안 옵션입니다.
Web Controller는 기본으로 켜져 있고, Settings → Web Controller 탭에 적힌 주소를 같은 네트워크의 태블릿·폰 브라우저에 입력하면 됩니다. 페이지는 Shortcuts, Switcher, Tally Lights, Title Editor, LiveLAN, Telestrator 여섯 개입니다. Switcher는 하드웨어 스위처처럼 Preview·Program 줄과 트랜지션 버튼이 있고, Title Editor는 자막 담당자가 자기 폰에서 이름을 고쳐 넣는 용도로 그만입니다. 폰을 카메라맨에게 주고 Tally Lights 페이지를 열면 그대로 무선 탈리가 됩니다.
Shortcuts 페이지에는 Show in Web Controller가 체크된 쇼트컷이 Title·Description·Display 설정대로 나열됩니다. "쇼트컷 페이지 만들기"란 결국 태블릿에서 보일 쇼트컷만 골라 체크하고 이름과 색을 붙이는 일입니다. 저는 자막 담당자용 태블릿에는 자막 올리기·내리기와 타이틀 프리셋만 보이게 하고 나머지는 전부 체크를 풉니다.
보안 설정 세 가지는 꼭 봅니다. 비밀번호를 설정하면 로그인 없이 열 페이지를 따로 체크할 수 있고, Restrict access to LAN only는 기본으로 켜져 있어 인터넷에서 접근을 막으며, Enable enhanced security on Web and TCP API를 켜면 동적 스크립트 같은 위험한 기능이 꺼집니다. 행사장 와이파이에 태블릿을 붙여야 한다면 비밀번호는 필수입니다.
6. Activators: 탈리·버튼 조명·외부 장치 연동

Settings → Activators. 입력 상태를 컨트롤러 조명·탈리로 내보내는 설정입니다.

Settings → Tally Lights. 탈리 장치 연결 설정입니다.
쇼트컷이 "버튼 → vMix"라면 Activators는 "vMix → 버튼"입니다. Settings → Activators 탭에서 Enable Devices로 컨트롤러를 켜고 Add를 누르면, Control(버튼의 Channel·Note, Find로 자동 탐지)과 Event(vMix의 어떤 상태인가), Input, Type(불 색깔 등)을 정합니다. 이벤트는 Input(Program에 있을 때), InputPreview, InputPlaying, InputAudio·InputSolo·InputBusAAudio(해당 버튼이 켜졌을 때), Recording·Streaming·External·Fullscreen(출력이 켜졌을 때), FadeToBlack, 그리고 볼륨 값을 0~127로 보내는 InputVolume·MasterVolume 등입니다.
가장 흔한 구성은 입력 버튼 한 줄에 Input 이벤트를 빨간색, InputPreview 이벤트를 초록색으로 두 개씩 거는 것입니다. Default 이벤트로 아무것도 아닐 때의 색(예: 주황)을 정할 수도 있습니다. 여기서도 Assign Activator to Input Number를 체크해야 입력 순서가 바뀌어도 버튼 위치가 유지됩니다.
실제 탈리 램프는 Web Controller의 폰 탈리 외에 USB 탈리(tally-lights.com, metaSETZ), Arduino(StandardFirmata 펌웨어를 올리고 입력 설정의 Tally Light 탭에서 COM 포트와 번호 지정)를 지원하고, 직접 만든 장치는 TCP API의 TALLY 구독으로 상태를 받을 수 있습니다. API는 다음 편에서 다룹니다.
7. 컨트롤 레이아웃 설계 원칙: 생방송 중 눌러도 안전한 버튼만 앞에
제가 지키는 규칙은 네 가지입니다.
- 첫 페이지는 되돌릴 수 있는 버튼만. 카메라 Preview, Cut, Fade, 자막 올리기·내리기. 잘못 눌러도 다음 컷으로 복구됩니다.
- 되돌릴 수 없는 버튼은 다른 페이지, 다른 색, 구석. StopRecording, StopStreaming, FadeToBlack, OpenPreset. Stream Deck이면 폴더 안에 넣고, 키보드면 Ctrl 조합으로 둡니다.
- 상태가 보이는 버튼만 토글로. Activators나 썸네일로 현재 상태가 보이지 않는 버튼은 On·Off를 나눕니다.
- 카메라 버튼 순서는 무대 배치 순서. 입력 번호 순이 아니라 왼쪽 카메라부터 왼쪽 버튼에. 리플레이 앵글 버튼도 같습니다.
실습 과제
Stream Deck이 있으면 한 페이지에, 없으면 Web Controller의 Shortcuts 페이지에 다음 11개를 배치합니다. 카메라 1~4 Preview(Display는 Thumbnail), Cut, 로어서드 A 올리기(OverlayInput1In), 로어서드 B 올리기, 자막 내리기(OverlayInput1Out), StartRecording, StopRecording. StopRecording은 반드시 다른 색으로, 다른 줄 끝에 둡니다. 배치 후 눈을 감고 카메라 1 → 2 → 자막 올리기 → 내리기 → 카메라 3을 손으로만 눌러 보세요. 막히는 버튼이 재배치 대상입니다.
자주 하는 실수
- 쇼트컷 키가 다른 프로그램과 충돌합니다. 키보드 쇼트컷은 vMix 창이 활성 상태일 때 들어가므로, 자막 편집 중에 다른 창을 클릭해 두면 아무것도 안 눌리고, 반대로 vMix가 활성인데 채팅창에 글을 치면 스위칭이 됩니다. 글자 키 대신 F키와 숫자 키패드를 쓰고, 텍스트 입력은 Web Controller의 Title Editor로 분리하세요.
- 입력 번호 기준 쇼트컷이 프리셋 순서가 바뀌면 엉뚱한 입력을 잡습니다. Assign Shortcut to Input Number가 체크된 버튼은 "3번 자리"를 누르는 것입니다. 입력을 끌어 옮기거나 다른 프리셋을 열면 다른 입력이 그 자리에 옵니다. 프리셋 구조를 고정하거나 체크를 풀어 입력 자체에 묶으세요.
- 녹화 정지 버튼을 스위칭 버튼 옆에 둡니다. 한 번 실수하면 녹화가 두 파일로 갈라지고 사이 구간이 비게 됩니다. 2번 원칙대로 분리합니다.
핵심 요약
- 쇼트컷은 Key·Function·Input·Value 네 칸이고, Find로 버튼을 잡고 Local과 Global을 역할에 따라 나눕니다.
- 생방송 버튼에는 토글(Audio)보다 결과가 정해진 함수(AudioOn·AudioOff, StartRecording·StopRecording)를 씁니다.
- Stream Deck은 공식 플러그인에 Thumbnail 표시, 여러 장비를 묶으려면 Companion, 페이더는 MIDI에 SetVolume, 모터 페이더 피드백은 Activators입니다.
- Web Controller는 태블릿 스위칭·자막 편집·폰 탈리를 바로 제공하며, LAN 제한과 비밀번호를 확인합니다.
- 되돌릴 수 있는 버튼만 첫 페이지에, 되돌릴 수 없는 버튼은 다른 페이지와 색으로 분리합니다.
FAQ
Q1. 쇼트컷을 다른 PC로 옮기려면요? Shortcuts 탭의 Templates에서 Export로 내보내고 다른 PC에서 Import 후 Apply합니다. Apply는 같은 버튼을 쓰는 기존 쇼트컷을 덮어쓰니 먼저 백업하세요. 프리셋에 묶인 Local 쇼트컷은 프리셋 파일과 함께 이동합니다.
Q2. Stream Deck 없이 피드백이 있는 버튼을 쓸 수 있나요? MIDI 패드 컨트롤러(예: AKAI APC 계열)에 쇼트컷과 Activators를 함께 걸면 버튼 색으로 Program·Preview 상태가 표시됩니다. 지원되는 색과 Type은 컨트롤러 모델에 따라 다릅니다.
Q3. 쇼트컷 하나로 자막 텍스트를 바꾸고 바로 올리고 싶습니다. 같은 키에 SetText(Input은 타이틀, Value는 텍스트, 필드 이름 지정)와 OverlayInput1In 두 개를 순서대로 등록하면 됩니다. 텍스트를 매번 다르게 넣어야 하면 Data Sources나 Web Controller의 Title Editor가 더 편합니다.
질문이나 다른 현장 경험은 Threads로 알려 주세요. 다음 편에 반영하겠습니다.