添加第三方服务参与的推流直接转发到国标功能
This commit is contained in:
@@ -37,4 +37,13 @@ public interface IStreamPushService {
|
||||
StreamPushItem transform(MediaItem item);
|
||||
|
||||
StreamPushItem getPush(String app, String streamId);
|
||||
|
||||
/**
|
||||
* 停止一路推流
|
||||
* @param app 应用名
|
||||
* @param streamId 流ID
|
||||
* @return
|
||||
*/
|
||||
boolean stop(String app, String streamId);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.genersoft.iot.vmp.service.bean;
|
||||
|
||||
public class ThirdPartyGB {
|
||||
|
||||
private String name;
|
||||
private String nationalStandardNo;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getNationalStandardNo() {
|
||||
return nationalStandardNo;
|
||||
}
|
||||
|
||||
public void setNationalStandardNo(String nationalStandardNo) {
|
||||
this.nationalStandardNo = nationalStandardNo;
|
||||
}
|
||||
}
|
||||
@@ -79,44 +79,38 @@ public class StreamProxyServiceImpl implements IStreamProxyService {
|
||||
StringBuffer result = new StringBuffer();
|
||||
boolean streamLive = false;
|
||||
param.setMediaServerId(mediaInfo.getId());
|
||||
boolean saveResult;
|
||||
// 更新
|
||||
if (videoManagerStorager.queryStreamProxy(param.getApp(), param.getStream()) != null) {
|
||||
if (videoManagerStorager.updateStreamProxy(param)) {
|
||||
result.append("保存成功");
|
||||
if (param.isEnable()){
|
||||
JSONObject jsonObject = addStreamProxyToZlm(param);
|
||||
if (jsonObject == null) {
|
||||
result.append(", 但是启用失败,请检查流地址是否可用");
|
||||
param.setEnable(false);
|
||||
videoManagerStorager.updateStreamProxy(param);
|
||||
}else {
|
||||
StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStream(
|
||||
mediaInfo, param.getApp(), param.getStream(), null);
|
||||
wvpResult.setData(streamInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
saveResult = videoManagerStorager.updateStreamProxy(param);
|
||||
}else { // 新增
|
||||
if (videoManagerStorager.addStreamProxy(param)){
|
||||
result.append("保存成功");
|
||||
streamLive = true;
|
||||
if (param.isEnable()) {
|
||||
JSONObject jsonObject = addStreamProxyToZlm(param);
|
||||
if (jsonObject == null) {
|
||||
streamLive = false;
|
||||
result.append(", 但是启用失败,请检查流地址是否可用");
|
||||
param.setEnable(false);
|
||||
videoManagerStorager.updateStreamProxy(param);
|
||||
}else {
|
||||
saveResult = videoManagerStorager.addStreamProxy(param);
|
||||
}
|
||||
if (saveResult) {
|
||||
result.append("保存成功");
|
||||
if (param.isEnable()) {
|
||||
JSONObject jsonObject = addStreamProxyToZlm(param);
|
||||
if (jsonObject == null) {
|
||||
streamLive = false;
|
||||
result.append(", 但是启用失败,请检查流地址是否可用");
|
||||
param.setEnable(false);
|
||||
videoManagerStorager.updateStreamProxy(param);
|
||||
}else {
|
||||
Integer code = jsonObject.getInteger("code");
|
||||
if (code == 0) {
|
||||
StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStream(
|
||||
mediaInfo, param.getApp(), param.getStream(), null);
|
||||
wvpResult.setData(streamInfo);
|
||||
}else {
|
||||
result.append(", 但是启用失败,请检查流地址是否可用");
|
||||
param.setEnable(false);
|
||||
videoManagerStorager.updateStreamProxy(param);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
result.append("保存失败");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}else {
|
||||
result.append("保存失败");
|
||||
}
|
||||
if (param.getPlatformGbId() != null && streamLive) {
|
||||
List<GbStream> gbStreams = new ArrayList<>();
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.genersoft.iot.vmp.service.IMediaServerService;
|
||||
import com.genersoft.iot.vmp.service.IStreamPushService;
|
||||
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
||||
import com.genersoft.iot.vmp.storager.dao.GbStreamMapper;
|
||||
import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper;
|
||||
import com.genersoft.iot.vmp.storager.dao.StreamPushMapper;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
@@ -32,6 +33,9 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||
@Autowired
|
||||
private StreamPushMapper streamPushMapper;
|
||||
|
||||
@Autowired
|
||||
private PlatformGbStreamMapper platformGbStreamMapper;
|
||||
|
||||
@Autowired
|
||||
private ZLMRESTfulUtils zlmresTfulUtils;
|
||||
|
||||
@@ -116,4 +120,18 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||
|
||||
return streamPushMapper.selectOne(app, streamId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean stop(String app, String streamId) {
|
||||
StreamPushItem streamPushItem = streamPushMapper.selectOne(app, streamId);
|
||||
int delStream = streamPushMapper.del(app, streamId);
|
||||
gbStreamMapper.del(app, streamId);
|
||||
platformGbStreamMapper.delByAppAndStream(app, streamId);
|
||||
if (delStream > 0) {
|
||||
MediaServerItem mediaServerItem = mediaServerService.getOne(streamPushItem.getMediaServerId());
|
||||
zlmresTfulUtils.closeStreams(mediaServerItem,app, streamId);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user