JSON 配置文件样例
文件名:config.json 文件位置:$(workspace)/config.json 文件类型:json注意:"//"后注释在使用时要删除。最小节点如下 { "device_id":"dev1", //修改为控制台中创建的现场设备ID "device_name":"vin234", "device_streams":1, //如果是多路输入,修改这里的流数目,并增加streams_config数组中的元素个数 "cloud_mode":"public", "certificate":"./device.pem", "projectid" : "xxxxx", //修改为控制台中创建的项目ID "password": "xxxxx", //修改为控制台中创建的密码 "streams_config": [ { "fps":30, "bps":2000, "width":1920, "height":1080, "camera":0, //修改为实际接入的相机,对应/dev/videox "protocol":"v4l2" //如果为外部输入yuv数据,修改为outside。 如果为外部输入编码流数据,修改为outenc } ] }
JSON 配置根节点含义
节点名 | 类型 | 含义 | 缺省值 | 备注 | 参数范围 |
device_id | 字符串型(String) | 设备 ID,用于注册到服务器的唯一编码 | - | 必填 | - |
device_name | 字符串型(String) | 设备名称,用于辨识设备信息 | - | 必填 | - |
force_login | 数字型(Number) | 是否强制登录 | 0 | 同名 ID 登录是否剔除之前的设备登录 | 0 :已有相同 ID 登录时,当前设备登录被剔除 1: 已有相同 ID 登录时,当前设备会强制登录,将之前设备剔除 |
server_ip | 字符串型(String) | 信令服务端 IP | - | 公有云账号无需指定,私有化必填 | - |
server_port | 数字型(Number) | 信令服务端端口号 | - | 公有云账号无需指定,私有化必填 | - |
rtc_server_ip | 字符串型(String) | 媒体服务端 IP | - | 公有云账号无需指定,私有化必填 | - |
rtc_server_port | 数字型(Number) | 媒体服务端端口号 | - | 公有云账号无需指定,私有化必填 | - |
projectid | 字符串型(String) | 项目 ID | - | 公有云必填 | - |
cloud_mode | 字符串型(String) | 云模式 | "private" | 可选 | public:公有云 private:私有云 |
password | 字符串型(String) | 设备密钥 | - | 公有云必填 | - |
certificate | 字符串型(String) | 服务器公钥证书 | - | 公有云必填,device.pem 文件路径 | - |
log_enable | 布尔型(Boolean) | 日志开关 | 0 | 可选 | 0:不使能 1:info 日志 2:debug + info 日志 |
sdk_mode | 字符串型(String) | 流传输模式 | "server" | 可选 | - |
min_port | 数字型(Number) | 本地传输端口最小值 | 50000 | 可选 | - |
max_port | 数字型(Number) | 本地传输端口最大值 | 50100 | 可选 | - |
audio_enable | 数字型(Number) | 是否采集音频 | 0 | 可选 | 0:不采集 1:采集 |
audio_receive | 数字型(Number) | 是否接收音频 | 1 | 可选 | 0:不接收 1:接收 |
device_streams | 数字型(Number) | 设备视频流数目 | - | 必填 | 1-8 |
streams_config | JSON 数组(JSON Array) | 流配置数组 | - | 必选 | 数量与 device_streams 一致 |
network_bind | 字符串数组(String Array) | 指定网卡ip | - | 可选 | 有指定网卡或多网需求时设置, "network_bind":["ip1","ip2"] ,配置指定通信网卡的本地 IP |
output_path
| 字符串型(String) | 文件存储路径 | "./" | 可选 | 配置 sdk 运行过程中日志和临时文件的输出路径 |
log_file_num
| 数字型(Number) | 日志文件存储数目 | 7 | 可选 | - |
use_local_conf | 数字型(Number) | 是否使用本地配置 | 0 | 可选(仅限私有化) | 0:使用远端配置 1:使用本地配置 |
use_local_license | 数字型(Number) | 是否使用本地license | 0 | 可选(仅限私有化) | 0:使用远端 license 1:使用本地 license |
fec_enable | 数字型(Number) | 开启 FEC | 0 | 可选 | 0:关闭本地 FEC 1:开启本地 FEC |
up_fec_rate | 数字型(Number) | 指定上行 fec 冗余度 | 0 | 可选 | 0:自动冗余度 >0: 指定冗余度%,最大100 |
down_fec_rate | 数字型(Number) | 指定下行 fec 冗余度 | 0 | 可选 | 0:自动冗余度 >0: 指定冗余度%,最大100 |
streams_config 流配置含义
节点名 | 类型 | 含义 | 默认值 | 备注 | 参数范围 |
fps | 数字型(Number) | 视频帧率 | - | 必选 | - |
bps | 数字型(Number) | 流传输码率 | - | 必选,根据画质需求及实际网络负载配置。码率越高,画质越清晰,传输数据量越大 | - |
min_bps | 数字型(Number) | 期望最低传输码率 | 默认值与 bps 相同 | 可选,根据最低画质需求填写。 | - |
width | 数字型(Number) | 视频源宽度 | - | 必选,相机采集为相机分辨率,外部输入视频时,根据输入分辨率填写 | - |
height | 数字型(Number) | 视频源高度 | - | 必选,相机采集为相机分辨率,外部输入视频时,根据输入分辨率填写 | - |
encode_width | 数字型(Number) | 编码传输的视频宽度 | 默认与 width 一致 | 可选 | - |
encode_height | 数字型(Number) | 编码传输的视频高度 | 默认与 height 一致 | 可选 | - |
min_width | 字符串型(String) | 最小调整编码分辨率宽 | 与encode_width一致 | 可选 | 开启动态分辨率时设置 |
min_fps | 数字型(Number) | 最低 fps | 20 | 可选 | 调整动态帧率时设置 |
forece_min | 数字型(Number) | 是否开启强制最低码率 | 0 | 可选 | 0:动态控制最低码率 1:将期望最低码率作为最低码率 |
major | 数字型(Number) | 是否配置为主流 | 0 | 可选 | 0:否 1:是,高优先保障主流 |
protocol | 字符串型(String) | 采集协议 | “v4l2” | 可选 | “v4l2”:由SDK采集 v4l2相机数据 “outenc”:客户通过接口输入编码流数据 "outside":客户通过接口输入图像数据 |
camera | 数字型(Number) | v4l2相机编号 | 0 | 填写数字X对应设备 /dev/videoX ,当protocol 字段配置为“v4l2”时,此字段生效 | - |
codec | 数字型(Number) | 编码类型 | 0 | 可选 | 0:h264 1:h265 2:av1 |
encoder_type | 数字型(Number) | 视频编码方式 | 1 | 可选 | 0:软编优先 1:硬编优先 |
frame_type | 数字型(Number) | yuyv-uyvy 图像反转 | 0 | 可选 | 0:不反转 1:反转 |
record_on | 数字型(Number) | 是否开启本地存储 | 0 | 可选 | 0:不开启 1:开启 |
capture_acc | 数字型(Number) | 是否开启采集加速 | 0 | 可选 | 0:不开启 1:开启 |
need_mirror | 数字型(Number) | 是否开启镜像 | 0 | 可选 | 0:不开启 1:开启 |
always_push | 数字型(Number) | 是否开启强制推流 | 0 | 可选 | 0:不开启 1:开启 |
streams_config 流配置 protocol 扩展及网络相机采集配置
1. 拉取 rtsp 相机场景参见 streams_config 节点配置
参考配置: "streams_config": [ { "fps":25, "bps":2000, "width":1920, "height":1080, "protocol":"normal", "cameras": [ { "width":1920, "height":1080, "protocol":1, "url":"rtsp://xxxxx" } ] } ]
2. 多画面拼接场景参考 streams_config 节点配置
"streams_config": [{"fps":25,"bps":2000,"width":2560,"height":1440,"protocol":"combine","cameras": [{"width":640,"height":480,"camera":1,"protocol":2,"url":"/dev/video0"},{"width":640,"height":480,"camera":1,"protocol":2,"url":"/dev/video1"},{"width":640,"height":480,"camera":1,"protocol":2,"url":"/dev/video2"},{"width":640,"height":480,"camera":1,"protocol":2,"url":"/dev/video3"}],"combine_config": {"basic_width":1920,"basic_height":1080,"pattern": [{"x1":0,"y1":0,"x2":640,"y2":480},{"x1":640,"y1":0,"x2":1280,"y2":480},{"x1":0,"y1":480,"x2":640,"y2":960},{"x1":640,"y1":480,"x2":1280,"y2":960}]}}]
节点名 | 类型 | 含义 | 默认值 | 备注 | 参数范围 |
protocol | String | 图像处理类型 | "normal" | 默认不处理 | normal:解码后正常传输 rtsp_enc:透传编码流 combine:混流拼接 |
cameras | JSON Array | 视频源相机 | - | 涉及多个相机组合时,需配置多个相机节点 | - |
width (cameras 节点中) | Number | 相机采集宽度 | - | - | - |
height (cameras 节点中) | Number | 相机采集高度 | - | - | - |
protocol (cameras 节点中) | Number | 采集协议类型 | 1 | - | 1:rtsp 采集 2:v4l2 mmap 采集 3:v4l2 dma 采集 |
url (cameras 节点中) | String | 采集数据源地址 | - | 配合相机采集协议类型 | protocol=1:网络相机拉流 rtsp URL protocol=2/3:/dev/videox |