1. 主页
  2. 文档
  3. NDI 设备 HTTP API(Version 1.0)
  4. 6. NDI解码:Preset

6. NDI解码:Preset

我们的NDI解码设备有一个非常实用的功能:Preset。Preset所表示的意义是:您可以将发现的NDI Source添加到由 1 ~ 9 所代表的9个Presets中,这是您的"收藏夹(Favorites)"。当您需要快速选择添加在Preset中的NDI Source进行解码时,您只需要指定Preset的ID (1~9)即可。

Preset可以为我们的NDI解码设备带来一些额外的功能优势,比如我们会在将来支持外接物理键盘,通过按键盘上的 1~9 数字键来完成快速切换。

NDI解码设备上还有一个特殊的Preset – 0。这个Preset代表的意义为Blank,用于为屏幕填充一个可自定义的颜色。

Module name: decoder/preset

Basic URL: /api/v1/decoder/preset/

获得当前的Preset列表和状态


API URL

**/api/v1/decoder/preset/status**

Request

Method: **GET/POST**

Parameters: NONE

Response

Example:

{
    "result": "ok",
    "data": [
        {
            "id": "1",
            "enable": 1, /*or 0*/
            "group": "public",
            "name": "Spark_IO-1916001002 (Channel 1)",
            "device_name": "Spark_IO-1916001002",
            "channel_name": "Channel 1",
            "url": "192.168.100.168:5961",
            "ip": "192.168.100.168",
            "online": "on", /*or "off"*/
            "current": true /*or false*/
        },
        /*...*/
        {
            "id": "0",
            "current": true, /*or false*/
            "color": "#000000"
        }
    ],

    "data_size": 10
}

Data字段说明:

"data"是一个JSON数组,"data_size"是一个辅助描述"data"数组大小的字段(也许你用不上它)。

数组中的每一个item代表一个Preset:

Field Value 说明
id [STRING] 1 ~ 9 代表常规的NDI Source Preset;0 代表Blank
enable [INT] 1: 这个Preset有定义
0: 这个Preset没有定义NDI Source;在这种情况下,所有后续的字段都没有意义
group [STRING] Preset所定义的NDI Source的Group name
name [STRING] Preset所定义的NDI Source的名称
device_name [STRING] name字段中提取出来的NDI Source的Device Name
channel_name [STRING] name字段中提取出来的NDI Source的Channel Name
url [STRING] NDI Source的原始URL
ip [STRING] url字段中提出来的NDI Source的IP地址
online [STRING] 根据网络NDI发现的结果,检测出这个Preset所定义的NDI Source的在线状态:
on: 当前NDI Source在线(可被发现)
off: 当前NDI Source不在线(不能发现)

请注意: online状态是由NDI Discovery的结果而决定的,并不代表NDI Source是否可以连接和获取视频数据。所以,它只提供参考意义,不能作为设备确定在线的依据。

current [BOOLEAN] true: 这个Preset是当前正在解码的NDI Source
false: 这个Preset不是正在解码的NDI Source
color [STRING] 仅对于id = "0" 有效。
对于Preset 0 (Blank),它不包括 enable, group, name, device_name, channel_name, url, ip, online这些字段,而返回 color 代表当前的Blank填充颜色。具体格式请参见定义Preset 0 (Blank)的颜色 /api/v1/decoder/preset/set_blank 中的描述。

添加NDI Source到一个指定的Preset


API URL

**/api/v1/decoder/preset/add**

Request

Method: **GET/POST**
Parameter Value 说明
id [STRING], Required 指定Preset ID,有效范围 1 ~ 9
name [STRING], Required NDI Source Name,您可以通过 API /api/v1/decoder/discovery/get 获取发现的NDI Sources列表,并从中提取name字段
url [STRING], Required NDI Source原始的URL,您可以通过 API /api/v1/decoder/discovery/get 获取发现的NDI Sources列表,并从中提取url字段
group [STRING], Optional NDI Source所在的NDI group name。 这个参数是可选的。但如果您能通过 API /api/v1/decoder/discovery/get 获取并从中提取group字段,作为参数传递进来,将最好不过。

请注意:如果您指定的Preset ID原先已有NDI Source定义,那么新添加的NDI Source将会覆盖老的定义。

Response

Example:

{
    "result": "ok"
}

如果添加成功,将返回 result = "ok" 的消息;否则请参见HTTP响应和错误处理 的标准错误消息描述。

移除Preset的NDI Source定义


API URL

**/api/v1/decoder/preset/remove**

Request

Method: **GET/POST**
Parameter Value 说明
id [STRING], Required 指定要移除的Preset ID,有效范围 1 ~ 9

Response

Example:

{
    "result": "ok"
}

如果移除成功,将返回 result = "ok" 的消息;否则请参见HTTP响应和错误处理的标准错误消息描述。

定义Preset 0 (Blank)的颜色


API URL

**/api/v1/decoder/preset/set_blank**

Request

Method: **GET/POST**
Parameter Value 说明
color [STRING], Required 指定Preset 0 (Blank)的颜色。颜色的描述格式与HTML中对颜色的描述是保持一致的,即:
1. 使用RGBA色彩
2. 以#开头、十六进制分别描述R、G、B和A

我们常见的色彩描述形式:
#RGB (例如 #f00 表示红色)
#RRGGBB (例如 #ff00ff 表示紫色)
#RRGGBBAA (例如 #00ff0080 表示绿色、50%透明度)

请注意:目前的版本不支持Alpha功能。

Response

Example:

{
    "result": "ok"
}

如果设置成功,将返回 result = "ok" 的消息;否则请参见HTTP响应和错误处理 的标准错误消息描述。

我们要如何帮助您?