From cad5f97c2f23435783886b6b5a4f1182391c529f Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Tue, 26 Mar 2024 10:28:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B5=81=E5=8F=98=E5=8C=96?= =?UTF-8?q?=E5=A4=84=E7=90=86=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/media/zlm/dto/StreamPushItem.java | 23 ++++++++++++++- .../service/impl/StreamPushServiceImpl.java | 29 ++++++++++++++++--- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java index 85d481a2c..eda660ebd 100755 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java @@ -2,6 +2,7 @@ package com.genersoft.iot.vmp.media.zlm.dto; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.gb28181.bean.GbStream; +import com.genersoft.iot.vmp.media.event.MediaArrivalEvent; import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam; import com.genersoft.iot.vmp.utils.DateUtil; import io.swagger.v3.oas.annotations.media.Schema; @@ -151,7 +152,7 @@ public class StreamPushItem extends GbStream implements Comparable<StreamPushIte - DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(streamPushItem.getCreateTime())).intValue(); } - public StreamPushItem instance(StreamInfo streamInfo) { + public StreamPushItem getInstance(StreamInfo streamInfo) { StreamPushItem streamPushItem = new StreamPushItem(); streamPushItem.setApp(streamInfo.getApp()); streamPushItem.setMediaServerId(streamInfo.getMediaServerId()); @@ -172,6 +173,26 @@ public class StreamPushItem extends GbStream implements Comparable<StreamPushIte } + public static StreamPushItem getInstance(MediaArrivalEvent event, String serverId){ + StreamPushItem streamPushItem = new StreamPushItem(); + streamPushItem.setApp(event.getApp()); + streamPushItem.setMediaServerId(event.getMediaServer().getId()); + streamPushItem.setStream(event.getStream()); + streamPushItem.setAliveSecond(event.getMediaInfo().getAliveSecond()); +// streamPushItem.setOriginSock(streamInfo.getMediaInfo().getOriginSock()); + streamPushItem.setTotalReaderCount(event.getMediaInfo().getReaderCount() + ""); + streamPushItem.setOriginType(event.getMediaInfo().getOriginType()); +// streamPushItem.setOriginTypeStr(streamInfo.getMediaInfo().getOriginTypeStr()); +// streamPushItem.setOriginUrl(streamInfo.getMediaInfo().getOriginUrl()); + streamPushItem.setCreateTime(DateUtil.getNow()); + streamPushItem.setAliveSecond(event.getMediaInfo().getAliveSecond()); + streamPushItem.setStatus(true); + streamPushItem.setStreamType("push"); +// streamPushItem.setVhost(streamInfo.getVhost()); + streamPushItem.setServerId(serverId); + return streamPushItem; + } + public static class MediaSchema { private String schema; private Long bytesSpeed; diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java index 2c1a47674..c3128e820 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java @@ -13,7 +13,6 @@ import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent; import com.genersoft.iot.vmp.media.bean.MediaInfo; import com.genersoft.iot.vmp.media.event.MediaArrivalEvent; import com.genersoft.iot.vmp.media.event.MediaDepartureEvent; -import com.genersoft.iot.vmp.media.event.MediaServerChangeEvent; import com.genersoft.iot.vmp.media.service.IMediaServerService; import com.genersoft.iot.vmp.media.zlm.dto.MediaServer; import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo; @@ -114,8 +113,30 @@ public class StreamPushServiceImpl implements IStreamPushService { streamAuthorityInfo.setOriginType(mediaInfo.getOriginType()); } redisCatchStorage.updateStreamAuthorityInfo(event.getApp(), event.getStream(), streamAuthorityInfo); - - + StreamPushItem transform = StreamPushItem.getInstance(event, userSetting.getServerId()); + transform.setPushIng(true); + transform.setUpdateTime(DateUtil.getNow()); + transform.setPushTime(DateUtil.getNow()); + transform.setSelf(true); + StreamPushItem pushInDb = getPush(event.getApp(), event.getStream()); + if (pushInDb == null) { + transform.setCreateTime(DateUtil.getNow()); + streamPushMapper.add(transform); + }else { + streamPushMapper.update(transform); + gbStreamMapper.updateMediaServer(event.getApp(), event.getStream(), event.getMediaServer().getId()); + } +// ChannelOnlineEvent channelOnlineEventLister = getChannelOnlineEventLister(transform.getApp(), transform.getStream()); +// if ( channelOnlineEventLister != null) { +// try { +// channelOnlineEventLister.run(transform.getApp(), transform.getStream(), transform.getServerId());; +// } catch (ParseException e) { +// logger.error("addPush: ", e); +// } +// removedChannelOnlineEventLister(transform.getApp(), transform.getStream()); +// } + // 冗余数据,自己系统中自用 + redisCatchStorage.addPushListItem(event.getApp(), event.getStream(), event); } /** @@ -141,7 +162,7 @@ public class StreamPushServiceImpl implements IStreamPushService { String key = streamInfo.getApp() + "_" + streamInfo.getStream(); StreamPushItem streamPushItem = result.get(key); if (streamPushItem == null) { - streamPushItem = streamPushItem.instance(streamInfo); + streamPushItem = streamPushItem.getInstance(streamInfo); result.put(key, streamPushItem); } }