648540858
2024-03-26 cad5f97c2f23435783886b6b5a4f1182391c529f
优化流变化处理位置
2个文件已修改
52 ■■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java
@@ -2,6 +2,7 @@
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 @@
                - 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 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;
src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
@@ -13,7 +13,6 @@
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 @@
            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 @@
                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);
                }
            }