您的当前位置:首页正文

SDK对接解码器接口调用及Demo使用流程(宇视科技)

2023-12-08 来源:步旅网
SDK对接解码器接口调用及Demo使用流程

更新日期:2020-03-24

说明:增加虚拟LED、场景、轮巡资源、场景计划、窗口轮巡配置接口。 一、 接口调用流程

说明:以下仅演示基本功能,不包含场景、轮巡、虚拟LED等业务。

初始化SDKNETDEV_Init登录NETDEV_Login获取能力集NETDEV_XW_GetCapability获取解码器通道数NETDEV_XW_GetChannelsNum获取解码器通道信息NETDEV_XW_GetChannelsInfoList注:灰色标记为可选流程获取电视墙配置列表NETDEV_XW_FindTVWallCfgListNETDEV_XW_FindNextTVWallCfgNETDEV_XW_FindCloseTVWallCfg创建电视墙NETDEV_XW_CreateTVWallCfg获取所有窗口配置信息NETDEV_XW_FindWndListNETDEV_XW_FindNextWndNETDEV_XW_FindCloseWnd获取电视墙关联业务流信息NETDEV_XW_FindStreamListNETDEV_XW_FindNextStreamInfoNETDEV_XW_FindCloseStreamInfo修改电视墙NETDEV_XW_ModifyTVWallCfg修改窗口NETDEV_XW_ModifyWnd创建窗口NETDEV_XW_CreateWnd绑定单个实况业务NETDEV_XW_CreateLiveBind删除实况业务绑定NETDEV_XW_DeleteLiveBind启动被动解码NETDEV_StartPassiveDecode发送数据NETDEV_SendPassiveData停止被动解码NETDEV_StopPassiveDecode删除窗口NETDEV_XW_DeleteWnd删除电视墙NETDEV_XW_DeleteTVWallCfg登出设备NETDEV_Logout释放SDKNETDEV_Cleanup* SDK对接解码器上墙流程 *

1、调用NETDEV_Init初始化SDK,程序每次启动仅需调用一次。结束时调用NETDEV_Cleanup接口。

2、登录设备。NETDEV_Login,填入IP地址、端口、用户名、密码信息。端口号默认80(如失败可使用81或者82尝试)。 3、获取设备能力集,NETDEV_XW_GetCapability,可选接口。如获取设备支持的最大电视墙个数、单个电视墙允许创建的最大行列数等。

4、获取设备编码通道信息。包含视频输入通道、视频输出通道、音频输入通道、音频输出通道,通过

NETDEV_XW_GetChannelsNum接口获取通道数量,通过NETDEV_XW_GetChannelsInfoList接口获取各类型通道的详细信息,如获取视频输出通道ID,在创建电视墙时会使用到。

5、创建电视墙。如果已经创建过电视墙,可以不需要再重新创建,调用NETDEV_XW_FindTVWallCfgList、NETDEV_XW_FindNextTVWallCfg、NETDEV_XW_FindCloseTVWallCfg接口查询已存在的电视墙信息。否则调用NETDEV_XW_CreateTVWallCfg创建电视墙。

6、获取电视墙已关联的业务流信息。如果已经存在上墙业务,可以使用NETDEV_XW_FindStreamList、NETDEV_XW_FindNextStreamInfo、NETDEV_XW_FindCloseStreamInfo接口获取业物流信息。

7、开窗,在已创建的电视墙上进行开窗操作。如果已经进行过开窗操作,可以通过接口NETDEV_XW_FindWndList、NETDEV_XW_FindNextWnd、NETDEV_XW_FindCloseWnd获取已存在的窗口信息。否则调用NETDEV_XW_CreateWnd接口创建电视墙。

8、实况上墙操作或被动解码操作。使用NETDEV_XW_CreateLiveBind接口,将视频源信息发送给解码设备,设备向该视频源获取视频流数据进行解码显示。使用NETDEV_StartPassiveDecode开启解码设备被动收流,使用NETDEV_SendPassiveData接口向设备发送流数据。 二、接口说明 注:

a、更加详细的接口说明请参见SDK用户手册,一般在SDK包doc目录下。 b、接口的使用示例请参见Demo,一般在SDK包demo目录下。

c、部分接口参数在使用时需要动态分配内存(如NETDEV_XW_GetChannelsInfoList),使用完成需要及时释放,避免内存泄漏。

2.1、初始化

接口名 NETDEV_Init NETDEV_Cleanup

2.2、登录

接口名 NETDEV_Login NETDEV_Logout

2.3、设备能力集

包括支持的分辨率、能够创建的最大电视墙个数、开窗的最大个数等。

登录设备 登出设备 功能 初始化SDK 反初始化SDK 功能 接口名 NETDEV_XW_GetCapability

2.4、编码通道信息

接口名 NETDEV_XW_GetChannelsNum NETDEV_XW_GetChannelsInfoList 功能 获取设备能力集 功能 获取本地编码通道数量 获取视频通道信息列表 创建电视墙时,需要使用到视频输出通道ID,m_stChannelsList.pstVideoOut字段。注意使用完后对new的内存进行释放。

2.5、电视墙相关接口

接口名 NETDEV_XW_CreateTVWallCfg NETDEV_XW_DeleteTVWallCfg NETDEV_XW_GetTVWallCfg NETDEV_XW_ModifyTVWallCfg NETDEV_XW_FindTVWallCfgList NETDEV_XW_FindNextTVWallCfg NETDEV_XW_FindCloseTVWallCfg 2.6、虚拟LED

接口名 NETDEV_XW_CreateVirtualLED NETDEV_XW_DeleteOneVirtualLED NETDEV_XW_SetVirtualLED NETDEV_XW_GetVirtualLED NETDEV_XW_FindVirtualLEDList NETDEV_XW_FindNextVirtualLED NETDEV_XW_FindCloseVirtualLED

2.7、窗口相关接口

接口名 NETDEV_XW_CreateWnd NETDEV_XW_FindWndList NETDEV_XW_FindNextWnd NETDEV_XW_FindCloseWnd NETDEV_XW_GetWnd 功能 创建单个窗口配置信息 获取场景下所有窗口配置信息 逐个获取查找到的窗口配置信息 关闭查找窗口配置,释放资源 获取单个窗口配置信息 功能 创建单个虚拟LED 删除单个虚拟LED 配置单个虚拟LED 获取单个虚拟LED 获取虚拟LED列表 逐个虚拟LED信息获取 关闭获取虚拟LED信息 功能 创建电视墙配置 删除电视墙配置 获取单个电视墙布局配置信息 修改电视墙配置 获取电视墙配置列表 逐个获取查找到的电视墙配置信息 关闭查找电视墙配置信息,释放资源 NETDEV_XW_ModifyWnd NETDEV_XW_DeleteWnd NETDEV_XW_DeleteBatchWnd 窗口和电视墙的关系:

修改单个窗口配置信息 删除单个窗口配置信息 批量关窗 比如创建了一个2*2的电视墙,分为四部分,每一部分的宽高均为10080,以左上角为原点,坐标(0,0),则右下角坐标为(10080*2, 10080*2),在这个坐标系中,可以任意创建窗口。 修改窗口信息时,需指定修改类型。 2.8、实况业务

接口名 NETDEV_XW_CreateLiveBind NETDEV_XW_FindLiveBindList NETDEV_XW_FindNextLiveBindInfo NETDEV_XW_FindCloseLiveBindInfo NETDEV_XW_GetLiveBind NETDEV_XW_DeleteLiveBind

2.9、被动解码

接口名 NETDEV_StartPassiveDecode NETDEV_SendPassiveData 开始被动解码 向被动解码通道发送数据,调用该接口发送的数据格式:需要封装成PS,TS,RTP+TS,RTP+PS,onvif格式 NETDEV_StopPassiveDecode 停止被动解码 功能 功能 绑定单个实况业务 获取场景下的实况业务绑定信息 逐个获取实况业务绑定信息 关闭实况业务绑定信息 获取单个实况业务绑定信息 删除单个实况业务绑定 端口说明:UDP协议时使用的端口号需要确保不能重复。 2.10、业务流信息

接口名 NETDEV_XW_FindStreamList NETDEV_XW_FindNextStreamInfo NETDEV_XW_FindCloseStreamInfo 2.11、轮巡资源配置

接口名 NETDEV_XW_GetSequenceResList NETDEV_XW_AddSequenceResource NETDEV_XW_DeleteSequenceResource NETDEV_XW_ModifySequenceResource NETDEV_XW_GetSequenceResource 功能 获取设备全部轮巡资源 添加单个轮巡资源信息到设备 删除单个轮巡资源信息 修改单个轮巡资源信息到设备 获取单个轮巡资源详细信息 功能 获取所有业务流信息 逐个业务流信息获取 关闭获取业务流信息 2.12、场景配置

接口名 NETDEV_XW_CreateSceneInfo NETDEV_XW_DeleteSceneInfo NETDEV_XW_ModifySceneInfo NETDEV_XW_GetSceneInfo NETDEV_XW_GetCurrentSceneInfo NETDEV_XW_FindSceneCfgList NETDEV_XW_FindNextSceneCfg NETDEV_XW_FindCloseSceneCfg

2.13、窗口轮巡-轮巡资源与当前场景窗口绑定

接口名 NETDEV_XW_BindSequenceResToScene NETDEV_XW_DeleteSequenceResToScene NETDEV_XW_ModifySequenceResToScene NETDEV_XW_GetCurrentSceneInfo 2.14、窗口轮巡控制

接口名 NETDEV_XW_SequencePlayControl 2.15、场景计划

接口名 NETDEV_XW_AddSencesSequencePlan NETDEV_XW_DeleteSencesSequencePlan NETDEV_XW_ModifySencesSequencePlan NETDEV_XW_FindSencesSequencePlanList NETDEV_XW_GetSencesSequencePlan NETDEV_XW_FindNextSencesSequencePlan NETDEV_XW_FindCloseSencesSequencePlan 2.16、场景轮巡计划播放控制

接口名 功能 功能 添加单个场景轮巡计划 删除单个场景轮巡计划 修改单个场景轮巡计划 获取场景轮巡计划列表 获取单个场景轮巡计划 逐个获取场景轮巡计划 释放获取场景轮巡计划资源 功能 轮巡播放控制,包括停止、启动、暂停、恢复、上一屏、下一屏 功能 绑定轮巡资源到当前场景布局 删除当前场景轮巡布局 修改当前场景轮巡布局 获取当前场景信息(包含轮巡布局信息) 功能 创建单个场景信息 删除场景信息 修改场景信息 获取指定场景信息 获取当前场景信息 获取场景配置列表 逐个获取查找到的场景配置信息 关闭查找场景,释放资源 NETDEV_XW_ScenesSeqPlanPlayControl 场景轮巡计划播放控制 三、Demo使用说明

编译环境:解码器Demo基于Qt 5.9.8开发。

Windows下参考下载地址:http://download.qt.io/official_releases/qt/5.9/5.9.8/qt-opensource-windows-x86-5.9.8.exe

3.1、添加解码器

3.2、电视墙配置

点击Add TVWall添加电视墙。拖动左侧解码器视频输出通道到右侧电视墙显示单元上,完成输出通道和显示单元的绑定。 点击OK新建电视墙。

在已经创建的电视墙选项上鼠标右键,可以修改或者删除电视墙。

3.3、开窗

在电视墙显示单元上,鼠标右键按下拖动进行开窗,注意,窗口的坐标范围不能超出电视墙显示单元范围,不能在未绑定视频输出通道的显示单元上开窗(无法显示)。

3.4、业务流上墙播放

首先需要添加视频源,demo目前支持两种方式添加视频源,第一种,通过SDK添加,第二种,通过rtsp自定义添加(手动配置)。

1)、通过SDK添加,输入IPC/NVR用户名、密码、端口、IP地址添加。

2)、通过rtsp地址手动配置,输入用户名,密码,rtsp地址。

3)、拖动视频源到窗口,完成上墙。

上墙播放成功后,可以鼠标右键选择开启预览、主被动解码切换、停止解码。点击窗口右上角关闭按钮可以关闭窗口。

4)、窗口分屏控制

鼠标选中要修改分屏模式的窗口,在下方切换分屏。

因篇幅问题不能全部显示,请点此查看更多更全内容