显示输出控制模块。包含:获取输出状态、操作输出接口,设置显示窗口布局、输出音频配置,窗口播放音频开关等功能。
文章目录
获取输出接口信息
API说明
获取制定输出接口的基本信息。
Request
- Method: GET/POST
- URL:
output/get.json
- Headers:
- 提交参数:
字段 | 类型 | 说明 |
---|---|---|
output | 字符串 | 输出接口ID(**必需参数)**,取值:1或者2 |
Response
- Body
{`` "result": "ok",`` "data": {`` "layout_id": "1",`` "layout": [`` {`` "manual_url": "srt://192.168.4.34:55123",`` "stream_name": "111",`` "srtStatus": {`` "liveStatus": "Connected",`` "byteRecvTotal": "2273920",`` "rtt": 0.462,`` "pktRcvLoss": 0,`` "pktRcvRetrans": 0,`` "srtMode": "caller",`` "bandwidth": 0.096,`` "pktRcvLossTotal": 0`` },`` "id": 1,`` "status": "view_pull",`` "imgUrl": "",`` "src": "UNKNOWN",`` "origin": "manual",`` "stream_id": "MANUAL.2",`` "source": 1,`` "bitrate": 88,`` "type": "srt",`` "volume": "off",`` "resolution": "[email protected]"`` }`` ],`` "bordercolor": 0,`` "output": "on",`` "bordercolor_enabled": false,`` "resolution_name": "1920x1080P 30Hz",`` "BGimgUrl": "",`` "hdmi_mode": "HDMI",`` "sampling": 48000,`` "colorspace": "AUTO",`` "layout_number": 1,`` "resolution": "1080P30",`` "bg_enable": 1`` }``}
- 返回说明:
字段 | 类型 | 说明 |
---|---|---|
resolution | 字符串 | 显示输出分辨率和刷新率,如:"3840×2160@60" |
resolution_name | 字符串 | 格式化后供前端显示的分辨率信息,如:"(4K)3840×2160@60Hz" |
layout_id | 字符串 | 布局模版ID,查看获取输出布局列表接口获取数据 |
hdmi_mode | 字符串 | HDMI接口工作模式,"AUTO"或"HDMI"或"DVI" |
colorspace | 字符串 | 色彩空间,"AUTO"或实际值,如:"YCBCR420" |
sampling | 数值 | 音频采样率 |
output | 字符串 | 输出状态,"on"或者"off" |
layout | 数组 | 布局模版窗口信息数组 |
layout.id | 字符串 | 布局窗口ID |
layout.stream_name | 字符串 | 该窗口当前播放的解码源名称,用于前端显示 |
layout.stream_id | 字符串 | 该窗口当前播放的解码源id(重要参数) |
layout.buffer | 字符串 | 缓冲区参数,如:live:200:200:500:0:0 |
layout.status | 字符串 | 解码源当前工作状态: view_pull 显示/推流、pull 推流、view 显示、on 在线、off 离线 reconnecting 重连中、connecting 正在连接、error 异常 |
layout.src | 字符串 | 解码源来源,如 "192.168.2.11" |
layout.bitrate | 数值 | 解码源码率,单位K bps,如: 3120 |
layout.type | 字符串 | 解码源类型,如:rtsp、rtmp、rtmps、rtp、http、srt |
layout.volume | 字符串 | 是否播放声音,"on"或"off" |
测试调用:
http://192.168.4.45/api/output/get.json?output=2
获取输出分辨率
PI说明
获取指定输出接口所支持的分辨率列表。
Request
- Method: GET/POST
- URL:
output/resolutions.json
- Headers:
- 提交参数:
- 提交参数:
字段 | 类型 | 说明 |
---|---|---|
output | 字符串 | 输出接口ID(**必需参数)**,取值:1或者2 |
Response
- Body
{`` "result": "ok",`` "data": [`` {`` "name": "(4K)3840x2160@60Hz",`` "value": "3840x2160@60"`` },`` {`` "name": "(4K)3840x2160@50Hz",`` "value": "3840x2160@50"`` },`` {`` "name": "(4K)3840x2160@30Hz",`` "value": "3840x2160@30"`` },`` {`` "name": "(4K)3840x2160@25Hz",`` "value": "3840x2160@25"`` },`` {`` "name": "1920x1080P 60Hz",`` "value": "1080P60"`` },`` {`` "name": "1920x1080P 59.94Hz (SDI only)",`` "value": "1080P59"`` },`` {`` "name": "1920x1080P 50Hz",`` "value": "1080P50"`` },`` {`` "name": "1920x1080P 30Hz",`` "value": "1080P30"`` },`` {`` "name": "1920x1080P 29.97Hz (SDI only)",`` "value": "1080P29"`` },`` {`` "name": "1920x1080P 25Hz",`` "value": "1080P25"`` },`` {`` "name": "1920x1080P 24Hz",`` "value": "1080P24"`` },`` {`` "name": "1920x1080P 23.98Hz (SDI only)",`` "value": "1080P23"`` },`` {`` "name": "1920x1080i 60Hz",`` "value": "1080I60"`` },`` {`` "name": "1920x1080i 59.94Hz (SDI only)",`` "value": "1080I59"`` },`` {`` "name": "1920x1080i 50Hz",`` "value": "1080I50"`` },`` {`` "name": "1280x720P 60Hz",`` "value": "720P60"`` },`` {`` "name": "1280x720P 59.94Hz (SDI only)",`` "value": "720P59"`` },`` {`` "name": "1280x720P 50Hz",`` "value": "720P50"`` },`` {`` "name": "576i/625i 50Hz",`` "value": "PAL"`` },`` {`` "name": "480i/525i 60Hz",`` "value": "NTSC"`` }`` ]``}
- 返回说明
字段 | 类型 | 说明 |
---|---|---|
name | 字符串 | 分辨率名称,供前端显示使用 |
value | 字符串 | 设备所支持分辨率值 |
测试调用:
http://192.168.2.123/api/output/resolutions.json
设置输出参数
API说明
设置输出接口参数。
Request
- Method: GET/POST
- URL:
output/set.json
- Headers:
- 提交参数:
字段 | 类型 | 说明 |
---|---|---|
output | 数字 | 输出接口ID(**必需参数)**,取值:1或者2 |
resolution | 字符串 | 输出分辨率参数,如:"1080P60",参数取值见前一个接口 |
hdmi_mode | 字符串 | 输出接口工作模式,"AUTO"硬件自适应工作模式 或强制设定"HDMI"或"DVI" |
colorspace | 字符串 | 色彩空间,默认"AUTO"、"RGB444"、"YCBCR444"、"YCBCR422"、"YCBCR420" |
sampling | 字符串 | 采样率数值,默认48000,可选:"48000"、"44100" |
Response
- Body
{`` result: "ok"``}
测试调用:
http://192.168.2.123/api/output/set.json?output=1&resolution=1080P60&hdmi_mode=AUTO&colorspace=AUTO&sampling=48000
获取输出布局列表/修改输出展示布局
API说明
该接口包含:
获取指定输出接口的便捷切换(前端页面输出窗口右下角显示的布局)布局列表;
设置指定输出接口切换快捷切换包含哪些布局。
Request
- Method: GET/POST
- URL:
output/icon.json
- Headers:
- 提交参数:
字段 | 类型 | 说明 |
---|---|---|
output | 字符串 | 输出接口ID(**必需参数)**,取值:1或者2 |
id | 数组 | 布局ID,如:id[]=1&id[]=2 |
注意:当参数包含id时,接口返回修改展示快捷切换布局的操作结果,否则返回布局列表信息。
Response
- Body
获取布局信息时返回:
{`` "result": "ok",`` "data": [`` {`` "number": "1",`` "position": [`` {`` "y": 0,`` "width": 100,`` "height": 100,`` "x": 0`` }`` ],`` "id": 1,`` "output_used": 1,`` "enable": 1,`` "name": "oneScreen",`` "img_id": 0`` }`` ]``}
修改布局模版时返回:
{`` "result": "ok"``}
测试调用:
http://192.168.2.123/api/output/icon.json?output=1`` ``http://192.168.2.123/api/output/icon.json?output=1&id%5B%5D=1&id%5B%5D=3
3.5 获取输出音频状态
API说明
获取指定输出接口的音频状态信息。
Request
- Method: GET/POST
- URL:
output/audio.json
- Headers:
- 提交参数:
字段 | 类型 | 说明 |
---|---|---|
output | 字符串 | 输出接口ID(**必需参数)**,取值:1或者2 |
Response
- Body
{`` "result": "ok",`` "data": {`` "audio_analog_gain": {`` "disable": 0,`` "localOutput": 0,`` "value": 0`` },`` "audio_digital_gain": {`` "disable": 0,`` "localOutput": 0,`` "value": 5`` }`` }``}
- 返回说明:
字段 | 类型 | 说明 |
---|---|---|
audio_analog_gain.value | 数值 | 模拟音频音量值 |
audio_analog_gain.disable | 数值 | 模拟音频是否禁用 |
audio_digital_gain.value | 数值 | 内嵌音频音量值 |
audio_digital_gain.disable | 数值 | 内嵌音频是否禁用 |
测试调用:
http://192.168.2.123/api/output/audio.json?output=1
设置输出音频参数
API说明
设置输出音频参数。
Request
- Method: GET/POST
- URL:
output/audio_set.json
- Headers:
- 提交参数:
字段 | 类型 | 说明 |
---|---|---|
output | 字符串 | 输出接口ID(**必需参数)**,取值:1或者2 |
audio | 字符串 | 输出接口音频接口选择:"analog" 模拟 "embedded"内嵌音频 |
disable | 字符串 | 数值字符串,"1" 禁用 "0" 启用 |
value | 字符串 | 数值字符串,音量参数,取值范围:-121 ~ 6 |
Response
- Body
{`` "result": "ok"``}
测试调用:
http://192.168.2.123/api/output/audio_set.json?output=1&audio=embedded&disable=0&value=6
开关输出窗口音频
API说明
开关指定输出接口指定窗口的音频。
Request
- Method: GET/POST
- URL:
output/window_audio_set.json
- Headers:
- 提交参数:
字段 | 类型 | 说明 |
---|---|---|
output | 字符串 | 输出接口ID(**必需参数)**,取值:1或者2 |
id | 字符串 | 数值字符串(**必需参数)**,布局窗口id |
volume | 字符串 | 音频是否输出(**必需参数)**,"on":开 、"off":关 |
Response
- Body
{`` result: "ok"``}
测试调用:
http://192.168.2.123/api/output/window_audio_set.json?output=1&id=1&volume=on
布局控制接口
API说明
该接口包含三个功能:
1)绑定窗口和解码源(设置某个解码源在指定窗口位置播放显示;
2)移除某个窗口当前播放的解码源;
3)设置输出切换成指定布局。
Request
- Method: GET/POST
- URL:
output/layout.json
- Headers:
- 提交参数:
字段 | 类型 | 说明 |
---|---|---|
output | 字符串 | 输出接口ID(**必需参数)**,取值:1或者2 |
action | 字符串 | 操作类型,取值: "set":绑定窗口和解码源 "remove":移除某个窗口当前播放的解码源 "change":切换指定布局 |
position | 字符串 | 布局窗口ID,当无action参数为"set"或"remove"时必须配置该参数,如:"1" |
layout_id | 字符串 | 布局ID,当action为"change"时必须配置该参数,如:"1" |
stream_id | 字符串 | 解码源ID,当action参数为"set"时必须配置该参数,如:"MANUAL.6" |
Response
- Body
{`` "result": "ok"``}
测试调用:
#输出1绑定窗口1和解码源14``http://192.168.2.123/api/output/layout.json?output=1&action=set&position=1&stream_id=MANUAL.14`` ``#移除输出1的1号窗口解码源``http://192.168.2.123/api/output/layout.json?output=1&action=remove&position=1`` ``#输出1切换2号布局``http://192.168.2.123/api/output/layout.json?output=1&action=change&layout_id=2
获取输出接口绑定状态
API说明
获取输出接口绑定端口状态
Request
- Method: GET/POST
- URL:
output/get_port.json
- Headers:
- 提交参数:
字段 | 类型 | 说明 |
---|---|---|
output | 字符串 | 输出接口ID(**必需参数)**,取值:1或者2 |
Response
- Body
{`` "result": "ok",`` "data": [`` {`` "bind": true,`` "enable": 1,`` "name": "HDMI",`` "id": "HDMI"`` },`` {`` "bind": false,`` "enable": 0,`` "name": "SDI",`` "id": "BT1120"`` },`` {`` "bind": false,`` "enable": 0,`` "name": "IP Stream",`` "id": "NET"`` }`` ]``}
- 返回说明
字段 | 类型 | 说明 |
---|---|---|
id | 字符串 | 端口ID, |
name | 字符串 | 端口显示名称 |
enable | 数值 | 是否启用,1:启用、0:未启用 |
bind | 字符串 | 是否和指定输出绑定,true:绑定、false:未绑定 |
测试调用:
http://192.168.2.123/api/output/get_port.json?output=1
设置输出接口绑定端口
API说明
设置指定输出当前绑定端口。
Request
- Method: GET/POST
- URL:
output/bind_port.json
- Headers:
- 提交参数:
字段 | 类型 | 说明 |
---|---|---|
output | 字符串 | 输出接口ID(**必需参数)**,取值:1或者2 |
id | 字符串 | 硬件输出接口ID(**必需参数)**,取值:"HDMI"、"BT1120"、"NET" |
enable | 字符串 | 是否板顶该端口(**必需参数)**,"1" :绑定, "0":不绑定 |
Response
- Body
{`` "result": "ok"``}
测试调用:
http://192.168.2.123/api/output/bind_port.json?output=1&id=HDMI&enable=1`` ``http://192.168.2.123/api/output/bind_port.json?output=1&id=BT1120&enable=1