UNPKG

5.66 kBMarkdownView Raw
1ATEM Specification
2========
3This document is the unofficial specification of control Blackmagic Design(BMD) ATEM Switcher.
4
5Introduction
6--------
7Blackmagic ATEM Switcher can be controlled by UDP protocol, port 9910.
8
9Packet specification
10--------
11
12### Send packet structure
13```
14 0 1 2 3
15 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
16+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
17| Flags | Packet Length | Session Id |
18+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
19| Echo Data | ? |
20+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
21| ? | Packet Id |
22+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
23```
24
25### Receive packet structure
26```
27 0 1 2 3
28 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
29+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
30| Flags | Packet Length | Session Id |
31+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32| ? |
33+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
34| ? |
35+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
36| Commands... |
37+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
38```
39
40### Flags
41```
42Flags[0] = Pong
43Flags[1] =
44Flags[2] = Connected?
45Flags[3] = Hello
46Flags[4] = Ping
47```
48
49### Command structure
50```
51 0 1 2 3
52 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
53+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
54| Command Length | Checksum? |
55+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56| Command Name |
57+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
58| Command Data... |
59+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
60```
61
62----
63
64文字はヌル文字以降は適当な値が入っていることがある。
65
66### PrgI (Program Input)
67
68Packet structure
69```
700 1 2 3 4
71+---+---+---+---+
72| 0 |18 |Channel|
73+---+---+---+---+
74```
75
76Packet log
77```
78PrgI <Buffer 00 00 00 05>
79```
80
81### PrvI (Preview Input)
82
83Packet structure
84```
850 1 2 3 4 5 6 7 8
86+---+---+---+---+---+---+---+---+
87| 0 |18 |Channel| 0 |4d |49 |50 |
88+---+---+---+---+---+---+---+---+
89```
90
91Packet log
92```
93PrvI <Buffer 00 32 00 02 00 00 00 0a>
94```
95
96### InPr (Input Preference?)
97
98Packet structure
99```
1000 1
1010 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
102+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
103|Channel| Name |
104+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
105| Name | Label | InMsk | Input | - | - | - | - |
106+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
107| - | - | *Input = (0=Bar, 1=SDI, 2=HDMI, 256=None)
108+---+---+
109```
110
111Packet log after label
112```
113InPr 0 <Buffer 01 00 01 00 01 f0 12 01 00 dc>
114InPr 1 <Buffer 00 02 00 02 00 e0 12 01 01 a4>
115InPr 2 <Buffer 00 02 00 02 00 b4 12 01 01 40>
116InPr 3 <Buffer 00 03 00 02 00 00 12 01 01 e8>
117InPr 4 <Buffer 00 03 00 01 00 8c 12 01 01 b8>
118InPr 5 <Buffer 00 01 00 01 00 b8 12 01 01 80>
119InPr 6 <Buffer 00 01 00 01 00 3c 12 01 01 84>
120InPr 1000 <Buffer 00 00 01 00 02 a4 12 01 01 a2>
121InPr 2001 <Buffer 01 00 01 00 03 c8 02 01 00 dc>
122InPr 2002 <Buffer 01 00 01 00 03 00 02 01 00 14>
123InPr 3010 <Buffer 01 00 01 00 04 e8 12 01 00 c8>
124InPr 3011 <Buffer 01 00 01 00 05 8c 12 01 00 08>
125InPr 3020 <Buffer 01 00 01 00 04 14 12 01 00 00>
126InPr 3021 <Buffer 01 00 01 00 05 69 12 01 00 90>
127InPr 10010 <Buffer 01 00 01 00 80 28 02 00 00 74>
128InPr 10011 <Buffer 01 00 01 00 80 80 02 00 00 bc>
129InPr 7001 <Buffer 01 00 01 00 80 00 02 00 00 00>
130InPr 7002 <Buffer 01 00 01 00 80 6c 02 00 00 90>
131```
132
133### TrSS (Transition Style State)
134
135Packet structure
136```
1370 1 2 3 4 5 6 7 8
138+---+---+---+---+---+---+---+---+
139| Style | 1 | - | - | - | 0 | 0 |
140+---+---+---+---+---+---+---+---+
141```
142
143### FtbS (Fade to black State)
144```
145# Fade to black
146# buf0 = ?
147# 1 = blacking
148# 2 = working
149# 3 = frames
150```
151
152### AMLv (Audio Monitor Level)
153If you get audio monitor level, must send `SALN (Send Audio Level Number)` command.
154
155
156### AMIP (Audio Monitor Input Preference?)
157
158Packet structure
159```
1600 1
1610 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
162+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
163|Channel| 0 | 1 |Channel|Channel|Sta| 3 | Gain | Pan | 0 |
164+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
165| 5 | *Sta = (0=OFF, 1=ON, 2=AFV)
166+---+
167```
168
169Send command specification
170--------
171
172## Input mapping
173| # | Name |
174| ----- | ------------ |
175| 0 | Black |
176| 1 | Cam1 |
177| 2 | Cam2 |
178| 3 | Cam3 |
179| 4 | Cam4 |
180| 5 | Cam5 |
181| 6 | Cam6 |
182| 1000 | Color Bars |
183| 2001 | Color 1 |
184| 2002 | Color 2 |
185| 3010 | Media 1 |
186| 3011 | Media 1 Key |
187| 3020 | Media 2 |
188| 3021 | Media 2 Key |
189| 7001 | Clean Feed 1 |
190| 7002 | Clean Feed 2 |
191| 10010 | Program |
192| 10011 | Preview |