文档
vMix TCP API提供与HTTP WEB API相同的功能,但具有较低的处理开销,这使得它适合在XML解析能力有限的嵌入式设备中使用。
它还提供了订阅将自动向客户端发送TALLY更新的TALLY事件的能力。
前言
vMix TCP API被设计成一个简单的协议,可以在未来进行扩展,而不会破坏与现有客户机的兼容性。
因此,它采用了一个简单的文本命令/响应体系结构,类似于其他标准协议(如SMTP)。
因此,避免了固定长度的二元结构。
这些符<>本规范中的符号表示强制命令/响应,而[]总是可选的。
连接
固定端口8099上的TCP连接
格式化
所有消息都是UTF8编码的,除非另有说明,否则将终止。
对于绝大多数命令,这只与ASCII设备兼容,但可能检索不兼容字符(如title)的命令除外。
反应
响应是空格分隔的\r\n终止字符串,带有可选的二进制数据,格式如下:
<command> <status/length> [response]\r\n
[data]
例子:
这是对MYCOMMAND\r\n的响应
这是响应MYCOMMAND\r\n的错误消息
MYCOMMAND 28 \ r \ n
这是可选的二进制数据
这是除二进制数据外的消息\r\n
这是可选的二进制数据
注:
a.可选二进制数据为status/length>中指定的确切长度;包括额外的终止字符,如\r\n它总是被追加到多行文本的末尾,比如XMLTEXT。
b.应该总是期望和处理像ER这样的单行响应,即使对于通常返回二进制数据的命令也是如此。
c. OK (Success), ER (Error)和length是仅有的三个预期状态。
事件
事件是可以在任何时候发送到客户端的响应,以响应状态的变化。
所有的客户端都应该在任何时候处理任何响应,因为这些可能在发送命令的过程中收到,但在发送命令之前
接收特定的命令响应。因此,建议客户端“异步”操作,无需等待特定的命令响应。
命令
统计
活动支持:是的
示例请求:统计\ r \ n
示例响应:TALLY OK 0121
描述:返回一个计数值列表,其中0 = off, 1 = program, 2 = preview。
该列表被填充到当前添加到vMix的输入总数,结果可能有多达1000个条目。
(可能长度= 9 + 1000 + 2 = 1011字节)
函数
格式:FUNCTION <Function> [QueryString]\r\n
示例请求:FUNCTION PreviewInput Input=5\r\n
请求示例:FUNCTION SetText Input=3&SelectedName=Headline&Value=Hello world\r\n
示例响应:FUNCTION OK PreviewInput\r\n
示例响应:FUNCTION ER错误消息\r\n
描述:调用带有可选查询字符串的快捷函数。这个查询字符串与语法完全匹配
以及HTTP WEB API的布局。应该使用标准的URL转义/编码字符。
ACTS
活动支持:是的
格式:ACTS <ActivatorName> [InputNumber]\r\n
请求示例:ACTS输入1\r\n
响应:ACTS OK输入1 1 1\r\n
描述:检索激活器的当前状态。即使vMix中没有添加特定的激活器,也可以使用它,而且很方便
用于检索用于自定义控制器的状态信息。
要订阅所有激活器事件,请使用subscribe ACTS命令。这将检索所有事件
因为不可能只订阅特定的激活器。
input number可以为input, InputPreview和Overlay1,2,3,4保留空白,以显示当前分配的输入,如果有,否则将返回ER No input。
返回值总是在0到1之间。与XML输出相反,这意味着布尔值True/False变成1/0,像Volume这样的整数值变成32位浮点值。
XML
示例请求:XML \ r \ n
响应:XML 37\r\n
<vmix><version>x.x.x.x</version></vmix>
描述:以UTF-8格式编码的二进制数据返回当前XML状态。
数据长度没有大小限制,可以非常大,因此嵌入式设备应该使用下面的XML解析命令来有效地检索值。
XMLTEXT
格式:XMLTEXT XPATH
请求示例:XMLTEXT vmix/inputs/input[1]/@title\r\n
这是一个输入的标题\r\n
请求示例:XMLTEXT vmix/inputs/input[6]/text[@name='Headline']\r\n
这是标题输入中标题文本字段的值,它是数字6(索引5)输入
描述:使用XPATH语法检索XML状态的单个文本值。
为了简化解析,多行文本将使用状态长度,而单行数据将始终使用单行响应。
订阅
格式:SUBSCRIBE <COMMAND>\r\n
请求示例:SUBSCRIBE TALLY\r\n
响应示例:SUBSCRIBE OK TALLY\r\n
描述:订阅事件/命令。匹配所选命令的事件响应可以立即开始,甚至在接收到SUBSCRIBE响应之前。
事件响应将继续接收,直到调用a. UNSUBSCRIBE或b.连接关闭。
退订
格式: UNSUBSCRIBE <COMMAND>\r\n
请求示例:UNSUBSCRIBE TALLY\r\n
回复:UNSUBSCRIBE OK TALLY\r\n
说明:由于vMix中的内部事件队列,事件响应可能在调用UNSUBSCRIBE命令后继续短暂接收。
关闭
描述:关闭连接
新浪微博
关注@vMixchina
官方微信公众号
新浪微博
关注@vMixhd
官方微信公众号