1078-优化录像回放开始和停止

This commit is contained in:
648540858 2024-04-06 00:42:54 +08:00
parent 26bbeac6c7
commit 984d8743be
2 changed files with 25 additions and 11 deletions

View File

@ -142,7 +142,12 @@ public class jt1078ServiceImpl implements Ijt1078Service {
} }
String stream = deviceId + "-" + channelId; String stream = deviceId + "-" + channelId;
MediaServerItem mediaServerItem = mediaServerService.getMediaServerForMinimumLoad(null); MediaServerItem mediaServerItem = mediaServerService.getMediaServerForMinimumLoad(null);
if (mediaServerItem == null) {
for (GeneralCallback<StreamInfo> errorCallback : errorCallbacks) {
errorCallback.run(InviteErrorCode.FAIL.getCode(), "未找到可用的媒体节点", streamInfo);
}
return;
}
// 设置hook监听 // 设置hook监听
HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", stream, true, "rtsp", mediaServerItem.getId()); HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", stream, true, "rtsp", mediaServerItem.getId());
subscribe.addSubscribe(hookSubscribe, (MediaServerItem mediaServerItemInUse, HookParam hookParam) -> { subscribe.addSubscribe(hookSubscribe, (MediaServerItem mediaServerItemInUse, HookParam hookParam) -> {
@ -259,8 +264,8 @@ public class jt1078ServiceImpl implements Ijt1078Service {
// 发送请求录像列表命令 // 发送请求录像列表命令
J9205 j9205 = new J9205(); J9205 j9205 = new J9205();
j9205.setChannelId(Integer.parseInt(channelId)); j9205.setChannelId(Integer.parseInt(channelId));
j9205.setStartTime(DateUtil.yyyy_MM_dd_HH_mm_ssToUrl(startTime)); j9205.setStartTime(DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(startTime));
j9205.setEndTime(DateUtil.yyyy_MM_dd_HH_mm_ssToUrl(endTime)); j9205.setEndTime(DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(endTime));
j9205.setMediaType(0); j9205.setMediaType(0);
j9205.setStreamType(0); j9205.setStreamType(0);
j9205.setStorageType(0); j9205.setStorageType(0);
@ -306,9 +311,16 @@ public class jt1078ServiceImpl implements Ijt1078Service {
// 清理数据 // 清理数据
redisTemplate.delete(playbackKey); redisTemplate.delete(playbackKey);
} }
String stream = deviceId + "-" + channelId + "-" + startTime + "-" + endTime; String startTimeParam = DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(startTime);
String endTimeParam = DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(endTime);
String stream = deviceId + "-" + channelId + "-" + startTimeParam + "-" + endTimeParam;
MediaServerItem mediaServerItem = mediaServerService.getMediaServerForMinimumLoad(null); MediaServerItem mediaServerItem = mediaServerService.getMediaServerForMinimumLoad(null);
if (mediaServerItem == null) {
for (GeneralCallback<StreamInfo> errorCallback : errorCallbacks) {
errorCallback.run(InviteErrorCode.FAIL.getCode(), "未找到可用的媒体节点", streamInfo);
}
return;
}
// 设置hook监听 // 设置hook监听
HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", stream, true, "rtsp", mediaServerItem.getId()); HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", stream, true, "rtsp", mediaServerItem.getId());
subscribe.addSubscribe(hookSubscribe, (MediaServerItem mediaServerItemInUse, HookParam hookParam) -> { subscribe.addSubscribe(hookSubscribe, (MediaServerItem mediaServerItemInUse, HookParam hookParam) -> {
@ -339,15 +351,15 @@ public class jt1078ServiceImpl implements Ijt1078Service {
J9201 j9201 = new J9201(); J9201 j9201 = new J9201();
j9201.setChannel(Integer.parseInt(channelId)); j9201.setChannel(Integer.parseInt(channelId));
j9201.setIp(mediaServerItem.getSdpIp()); j9201.setIp(mediaServerItem.getSdpIp());
j9201.setRate(1); j9201.setRate(0);
j9201.setPlaybackType(0); j9201.setPlaybackType(0);
j9201.setPlaybackSpeed(0); j9201.setPlaybackSpeed(0);
j9201.setTcpPort(ssrcInfo.getPort()); j9201.setTcpPort(ssrcInfo.getPort());
j9201.setUdpPort(ssrcInfo.getPort()); j9201.setUdpPort(ssrcInfo.getPort());
j9201.setType(0); j9201.setType(0);
j9201.setStartTime(DateUtil.yyyy_MM_dd_HH_mm_ssToUrl(startTime)); j9201.setStartTime(DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(startTime));
j9201.setEndTime(DateUtil.yyyy_MM_dd_HH_mm_ssToUrl(endTime)); j9201.setEndTime(DateUtil.yyyy_MM_dd_HH_mm_ssTo1078(endTime));
String s = jt1078Template.startBackLive(deviceId, j9201, 6); String s = jt1078Template.startBackLive(deviceId, j9201, 20);
System.out.println("111ssss=== " + s); System.out.println("111ssss=== " + s);
} }

View File

@ -49,6 +49,7 @@ public class DateUtil {
* wvp内部统一时间格式 * wvp内部统一时间格式
*/ */
public static final String URL_PATTERN = "yyyyMMddHHmmss"; public static final String URL_PATTERN = "yyyyMMddHHmmss";
public static final String PATTERN1078 = "yyMMddHHmmss";
/** /**
* 日期格式 * 日期格式
@ -65,6 +66,7 @@ public class DateUtil {
public static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(PATTERN, Locale.getDefault()).withZone(ZoneId.of(zoneStr)); public static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(PATTERN, Locale.getDefault()).withZone(ZoneId.of(zoneStr));
public static final DateTimeFormatter DateFormatter = DateTimeFormatter.ofPattern(date_PATTERN, Locale.getDefault()).withZone(ZoneId.of(zoneStr)); public static final DateTimeFormatter DateFormatter = DateTimeFormatter.ofPattern(date_PATTERN, Locale.getDefault()).withZone(ZoneId.of(zoneStr));
public static final DateTimeFormatter urlFormatter = DateTimeFormatter.ofPattern(URL_PATTERN, Locale.getDefault()).withZone(ZoneId.of(zoneStr)); public static final DateTimeFormatter urlFormatter = DateTimeFormatter.ofPattern(URL_PATTERN, Locale.getDefault()).withZone(ZoneId.of(zoneStr));
public static final DateTimeFormatter formatter1078 = DateTimeFormatter.ofPattern(PATTERN1078, Locale.getDefault()).withZone(ZoneId.of(zoneStr));
public static String yyyy_MM_dd_HH_mm_ssToISO8601(String formatTime) { public static String yyyy_MM_dd_HH_mm_ssToISO8601(String formatTime) {
@ -86,8 +88,8 @@ public class DateUtil {
public static String urlToyyyy_MM_dd_HH_mm_ss(String formatTime) { public static String urlToyyyy_MM_dd_HH_mm_ss(String formatTime) {
return formatter.format(urlFormatter.parse(formatTime)); return formatter.format(urlFormatter.parse(formatTime));
} }
public static String yyyy_MM_dd_HH_mm_ssToUrl(String formatTime) { public static String yyyy_MM_dd_HH_mm_ssTo1078(String formatTime) {
return urlFormatter.format(formatter.parse(formatTime)); return formatter1078.format(formatter.parse(formatTime));
} }
/** /**