2021-07-16 16:34:51 +08:00
|
|
|
package com.genersoft.iot.vmp.service;
|
|
|
|
|
2023-04-14 14:59:22 +08:00
|
|
|
import com.genersoft.iot.vmp.common.CommonCallback;
|
2021-07-16 16:34:51 +08:00
|
|
|
import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig;
|
|
|
|
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
|
2022-11-08 19:58:36 +08:00
|
|
|
import com.genersoft.iot.vmp.media.zlm.dto.ServerKeepaliveData;
|
2023-12-25 17:50:37 +08:00
|
|
|
import com.genersoft.iot.vmp.media.zlm.dto.StreamMediaInfo;
|
2022-10-24 15:20:35 +08:00
|
|
|
import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
|
2021-07-26 11:40:32 +08:00
|
|
|
import com.genersoft.iot.vmp.service.bean.SSRCInfo;
|
2023-08-11 09:12:19 +08:00
|
|
|
import com.genersoft.iot.vmp.vmanager.bean.RecordFile;
|
2021-07-16 16:34:51 +08:00
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 媒体服务节点
|
|
|
|
*/
|
|
|
|
public interface IMediaServerService {
|
|
|
|
|
2021-07-26 11:40:32 +08:00
|
|
|
List<MediaServerItem> getAll();
|
2021-07-16 16:34:51 +08:00
|
|
|
|
2021-08-04 18:00:22 +08:00
|
|
|
List<MediaServerItem> getAllFromDatabase();
|
|
|
|
|
2021-07-26 11:40:32 +08:00
|
|
|
List<MediaServerItem> getAllOnline();
|
2021-07-16 16:34:51 +08:00
|
|
|
|
2021-07-26 11:40:32 +08:00
|
|
|
MediaServerItem getOne(String generalMediaServerId);
|
|
|
|
|
2022-02-20 16:22:43 +08:00
|
|
|
void syncCatchFromDatabase();
|
2021-07-16 16:34:51 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 新的节点加入
|
|
|
|
* @param zlmServerConfig
|
|
|
|
* @return
|
|
|
|
*/
|
2021-12-07 17:43:55 +08:00
|
|
|
void zlmServerOnline(ZLMServerConfig zlmServerConfig);
|
2021-07-16 16:34:51 +08:00
|
|
|
|
2021-12-07 21:13:55 +08:00
|
|
|
/**
|
|
|
|
* 节点离线
|
|
|
|
* @param mediaServerId
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
void zlmServerOffline(String mediaServerId);
|
|
|
|
|
2023-01-10 11:36:54 +08:00
|
|
|
MediaServerItem getMediaServerForMinimumLoad(Boolean hasAssist);
|
2021-07-16 16:34:51 +08:00
|
|
|
|
2021-12-17 16:06:23 +08:00
|
|
|
void setZLMConfig(MediaServerItem mediaServerItem, boolean restart);
|
2021-07-16 16:34:51 +08:00
|
|
|
|
2022-03-03 12:09:28 +08:00
|
|
|
void updateVmServer(List<MediaServerItem> mediaServerItemList);
|
|
|
|
|
2023-04-19 16:21:28 +08:00
|
|
|
SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String ssrc, boolean ssrcCheck,
|
|
|
|
boolean isPlayback, Integer port, Boolean reUsePort, Integer tcpMode);
|
2022-07-29 11:57:04 +08:00
|
|
|
|
2022-09-14 16:11:18 +08:00
|
|
|
void closeRTPServer(MediaServerItem mediaServerItem, String streamId);
|
|
|
|
|
2023-04-14 14:59:22 +08:00
|
|
|
void closeRTPServer(MediaServerItem mediaServerItem, String streamId, CommonCallback<Boolean> callback);
|
2023-05-04 15:36:04 +08:00
|
|
|
Boolean updateRtpServerSSRC(MediaServerItem mediaServerItem, String streamId, String ssrc);
|
2023-04-14 14:59:22 +08:00
|
|
|
|
2022-09-14 16:11:18 +08:00
|
|
|
void closeRTPServer(String mediaServerId, String streamId);
|
2021-07-16 16:34:51 +08:00
|
|
|
|
2021-07-26 11:40:32 +08:00
|
|
|
void clearRTPServer(MediaServerItem mediaServerItem);
|
|
|
|
|
|
|
|
void update(MediaServerItem mediaSerItem);
|
2021-07-16 16:34:51 +08:00
|
|
|
|
|
|
|
void addCount(String mediaServerId);
|
|
|
|
|
|
|
|
void removeCount(String mediaServerId);
|
2021-07-26 11:40:32 +08:00
|
|
|
|
2022-03-07 01:17:45 +08:00
|
|
|
void releaseSsrc(String mediaServerItemId, String ssrc);
|
2021-07-26 11:40:32 +08:00
|
|
|
|
|
|
|
void clearMediaServerForOnline();
|
|
|
|
|
2022-08-21 22:22:34 +08:00
|
|
|
void add(MediaServerItem mediaSerItem);
|
2021-07-26 11:40:32 +08:00
|
|
|
|
2021-12-02 17:37:29 +08:00
|
|
|
int addToDatabase(MediaServerItem mediaSerItem);
|
|
|
|
|
2021-12-07 17:43:55 +08:00
|
|
|
int updateToDatabase(MediaServerItem mediaSerItem);
|
|
|
|
|
2021-07-26 11:40:32 +08:00
|
|
|
void resetOnlineServerItem(MediaServerItem serverItem);
|
2021-09-25 22:12:15 +08:00
|
|
|
|
2022-08-21 22:22:34 +08:00
|
|
|
MediaServerItem checkMediaServer(String ip, int port, String secret);
|
2021-09-25 22:12:15 +08:00
|
|
|
|
|
|
|
boolean checkMediaRecordServer(String ip, int port);
|
2021-09-25 22:48:03 +08:00
|
|
|
|
|
|
|
void delete(String id);
|
2021-11-22 17:29:16 +08:00
|
|
|
|
2022-03-02 18:29:02 +08:00
|
|
|
void deleteDb(String id);
|
|
|
|
|
2021-11-22 17:29:16 +08:00
|
|
|
MediaServerItem getDefaultMediaServer();
|
2021-12-07 21:13:55 +08:00
|
|
|
|
2022-11-08 19:58:36 +08:00
|
|
|
void updateMediaServerKeepalive(String mediaServerId, ServerKeepaliveData data);
|
2022-09-07 16:18:35 +08:00
|
|
|
|
|
|
|
boolean checkRtpServer(MediaServerItem mediaServerItem, String rtp, String stream);
|
2022-10-24 15:20:35 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取负载信息
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
MediaServerLoad getLoad(MediaServerItem mediaServerItem);
|
2023-08-11 09:12:19 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 按时间查找录像文件
|
|
|
|
*/
|
|
|
|
List<RecordFile> getRecords(String app, String stream, String startTime, String endTime, List<MediaServerItem> mediaServerItems);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 查找存在录像文件的时间
|
|
|
|
*/
|
|
|
|
List<String> getRecordDates(String app, String stream, int year, int month, List<MediaServerItem> mediaServerItems);
|
2023-12-25 17:50:37 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取媒体流的信息
|
|
|
|
*/
|
|
|
|
StreamMediaInfo getMediaInfo(String mediaServerId, String app, String stream);
|
2021-07-16 16:34:51 +08:00
|
|
|
}
|