更新时间:2024-06-17 08:22:21下载pdf
IPC SDK 支持多个摄像头一起显示,目前采用的是视频分割协议进行多目视频分割渲染,需要设备支持。
接口说明
获取设备是否支持 IPC 视频流分割高级能力,返回布尔类型。
boolean isSupportVideoSegmentation();
示例代码
IThingIPCCore cameraInstance = ThingIPCSdk.getCameraInstance();
if (cameraInstance != null) {
ICameraConfigInfo cameraConfig = cameraInstance.getCameraConfig(deviceId);
return cameraConfig != null && cameraConfig.isSupportVideoSegmentation();
}
接口说明
获取视频分割协议,返回 ThingVideoSplitInfo
封装模型。
ThingVideoSplitInfo getCameraVideoSegmentationModel();
ThingVideoSplitInfo
说明
参数 | 说明 |
---|---|
total_split_num | 视频分割路数 |
split_info | 视频分割信息数组 |
split_info.index | 镜头 ID |
split_info.type | 根据 type 值,选择绘制对应的视频流
|
split_info.res_pos | 视频分割坐标信息 |
align_info | 视频窗口组合及定位器位置信息,按需解析 |
align_info.align_type | 视频窗口排列组合标识,约定值:
|
align_info.align_group | 组合顺序,数组内的数字与 split_info.index 对应,数组内非数组独享一行(同行),嵌套的数组并列共享一行(同列) |
align_info.localizer_group | 包含具体定位器的位置 split_info.index ,不支持跨列配置 |
示例代码
IThingIPCCore cameraInstance = ThingIPCSdk.getCameraInstance();
if (cameraInstance != null) {
ICameraConfigInfo cameraConfig = cameraInstance.getCameraConfig(deviceId);
if(cameraConfig != null && cameraConfig.isSupportVideoSegmentation()){
ThingVideoSplitInfo videoSplitInfo = cameraConfig.getCameraVideoSegmentationModel();
}
}
设置渲染视图的类型,说明要渲染的是球机、枪机,还是分割前画⾯。
要在 ThingCameraView.createVideoView 之后调用 setType
。
void setType(int type);
入参说明
参数 | 说明 |
---|---|
type | 对应协议下面的 split_info.type
|
示例代码
ThingVideoSplitInfo.SplitInfo splitInfo = mThingVideoSplitInfo.getSplit_info();
ThingCameraView mVideoView = findViewById(R.id.camera_video_view);
...
mVideoView.setType(splitInfo.getType());
接口说明
给渲染视图设置绑定镜头 ID,指定要渲染的是哪个 IPC。
要在 ThingCameraView.createVideoView 之后调用 setIndex
。
void setIndex(int index);
入参说明
参数 | 说明 |
---|---|
index | 镜头 ID,对应协议下面的 split_info.index |
示例代码
ThingVideoSplitInfo.SplitInfo splitInfo = mThingVideoSplitInfo.getSplit_info();
ThingCameraView mVideoView = findViewById(R.id.camera_video_view);
...
mVideoView.setIndex(splitInfo.getIndex());
基于 ThingCameraView
二次封装的多目播放器,目前提供双目上下/左右排列,三目品字/倒品字排列共四种展示样式,并支持镜头上的定位器。
示例代码
IThingSmartCameraP2P mCameraP2P = null;
IThingIPCCore cameraInstance = ThingIPCSdk.getCameraInstance();
if (cameraInstance != null) {
mCameraP2P = cameraInstance.createCameraP2P(devId));
}
//可通过布局引入
ThingMultiCameraView thingCameraView = new ThingMultiCameraView(context);
//设置分割协议
thingCameraView.setThingVideoSplitInfo(videoSplitInfo);
//设置播放器宽度
thingCameraView.setCameraViewWidth(widthPixels);
thingCameraView.setViewCallback(new AbsVideoViewCallback() {
@Override
public void onCreated(Object view) {
super.onCreated(view);
//
渲染视图构造完成时,为 IThingSmartCameraP2P 绑定渲染视图
if (null != mCameraP2P){
mCameraP2P.generateCameraView(view);
}
}
});
thingCameraView.createVideoView(devId);
协议是和设备端的约定。SDK 对接时,请咨询涂鸦项目经理提供方案。
以下提供一份三目分割协议示例:
{
"total_split_num":3,
"split_info":[
{
"index":1,
"type":1,
"res_pos":[[0,0,640,720],[0,0,960,1080]]
},
{
"index":2,
"type":2,
"res_pos":[[0,720,640,720],[0,1080,960,1080]]
},
{
"index":3,
"type":2,
"res_pos":[[0,720,1280,720],[0,1080,1920,1080]]
}
],
"align_info":{
"align_type":32,
"align_group":[[1, 3],[2]],
"localizer_group":[1,3]
}
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈