From b6e604f2449bb65dfaafb0f0741ba54ff0d2f9c2 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 30 四月 2024 15:20:03 +0800
Subject: [PATCH] 修改云端录像详情页使用直接访问zlm的方式播放录像
---
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java | 78 ++++-----------------------------------
1 files changed, 8 insertions(+), 70 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
index e85ade6..1ed3197 100755
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
@@ -2,7 +2,6 @@
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.common.InviteInfo;
import com.genersoft.iot.vmp.common.InviteSessionType;
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.conf.UserSetting;
@@ -14,14 +13,11 @@
import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
-import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
-import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
+import com.genersoft.iot.vmp.media.bean.MediaServer;
+import com.genersoft.iot.vmp.media.service.IMediaServerService;
import com.genersoft.iot.vmp.service.IInviteStreamService;
-import com.genersoft.iot.vmp.service.IMediaServerService;
-import com.genersoft.iot.vmp.service.IMediaService;
import com.genersoft.iot.vmp.service.IPlayService;
import com.genersoft.iot.vmp.service.bean.InviteErrorCode;
-import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.utils.DateUtil;
import com.genersoft.iot.vmp.vmanager.bean.AudioBroadcastResult;
@@ -66,22 +62,13 @@
private IVideoManagerStorage storager;
@Autowired
- private IRedisCatchStorage redisCatchStorage;
-
- @Autowired
private IInviteStreamService inviteStreamService;
-
- @Autowired
- private ZLMRESTfulUtils zlmresTfulUtils;
@Autowired
private DeferredResultHolder resultHolder;
@Autowired
private IPlayService playService;
-
- @Autowired
- private IMediaService mediaService;
@Autowired
private IMediaServerService mediaServerService;
@@ -99,7 +86,7 @@
logger.info("[寮�濮嬬偣鎾璢 deviceId锛歿}, channelId锛歿}, ", deviceId, channelId);
// 鑾峰彇鍙敤鐨剒lm
Device device = storager.queryVideoDevice(deviceId);
- MediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device);
+ MediaServer newMediaServerItem = playService.getNewMediaServerItem(device);
RequestMessage requestMessage = new RequestMessage();
String key = DeferredResultHolder.CALLBACK_CMD_PLAY + deviceId + channelId;
@@ -152,7 +139,8 @@
wvpResult.setMsg(msg);
}
requestMessage.setData(wvpResult);
- resultHolder.invokeResult(requestMessage);
+ // 姝ゅ蹇呴』閲婃斁鎵�鏈夎姹�
+ resultHolder.invokeAllResult(requestMessage);
});
return result;
}
@@ -180,50 +168,6 @@
json.put("channelId", channelId);
return json;
}
-
- /**
- * 灏嗕笉鏄痟264鐨勮棰戦�氳繃ffmpeg 杞爜涓篽264 + aac
- * @param streamId 娴両D
- */
- @Operation(summary = "灏嗕笉鏄痟264鐨勮棰戦�氳繃ffmpeg 杞爜涓篽264 + aac", security = @SecurityRequirement(name = JwtUtils.HEADER))
- @Parameter(name = "streamId", description = "瑙嗛娴両D", required = true)
- @PostMapping("/convert/{streamId}")
- public JSONObject playConvert(@PathVariable String streamId) {
-// StreamInfo streamInfo = redisCatchStorage.queryPlayByStreamId(streamId);
-
- InviteInfo inviteInfo = inviteStreamService.getInviteInfoByStream(null, streamId);
- if (inviteInfo == null || inviteInfo.getStreamInfo() == null) {
- logger.warn("瑙嗛杞爜API璋冪敤澶辫触锛�, 瑙嗛娴佸凡缁忓仠姝�!");
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "鏈壘鍒拌棰戞祦淇℃伅, 瑙嗛娴佸彲鑳藉凡缁忓仠姝�");
- }
- MediaServerItem mediaInfo = mediaServerService.getOne(inviteInfo.getStreamInfo().getMediaServerId());
- JSONObject rtpInfo = zlmresTfulUtils.getRtpInfo(mediaInfo, streamId);
- if (!rtpInfo.getBoolean("exist")) {
- logger.warn("瑙嗛杞爜API璋冪敤澶辫触锛�, 瑙嗛娴佸凡鍋滄鎺ㄦ祦!");
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "鏈壘鍒拌棰戞祦淇℃伅, 瑙嗛娴佸彲鑳藉凡鍋滄鎺ㄦ祦");
- } else {
- String dstUrl = String.format("rtmp://%s:%s/convert/%s", "127.0.0.1", mediaInfo.getRtmpPort(),
- streamId );
- String srcUrl = String.format("rtsp://%s:%s/rtp/%s", "127.0.0.1", mediaInfo.getRtspPort(), streamId);
- JSONObject jsonObject = zlmresTfulUtils.addFFmpegSource(mediaInfo, srcUrl, dstUrl, "1000000", true, false, null);
- logger.info(jsonObject.toJSONString());
- if (jsonObject != null && jsonObject.getInteger("code") == 0) {
- JSONObject data = jsonObject.getJSONObject("data");
- if (data != null) {
- JSONObject result = new JSONObject();
- result.put("key", data.getString("key"));
- StreamInfo streamInfoResult = mediaService.getStreamInfoByAppAndStreamWithCheck("convert", streamId, mediaInfo.getId(), false);
- result.put("StreamInfo", streamInfoResult);
- return result;
- }else {
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "杞爜澶辫触");
- }
- }else {
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "杞爜澶辫触");
- }
- }
- }
-
/**
* 缁撴潫杞爜
*/
@@ -235,18 +179,12 @@
if (mediaServerId == null) {
throw new ControllerException(ErrorCode.ERROR400.getCode(), "娴佸獟浣擄細" + mediaServerId + "涓嶅瓨鍦�" );
}
- MediaServerItem mediaInfo = mediaServerService.getOne(mediaServerId);
+ MediaServer mediaInfo = mediaServerService.getOne(mediaServerId);
if (mediaInfo == null) {
throw new ControllerException(ErrorCode.ERROR100.getCode(), "浣跨敤鐨勬祦濯掍綋宸茬粡鍋滄杩愯" );
}else {
- JSONObject jsonObject = zlmresTfulUtils.delFFmpegSource(mediaInfo, key);
- logger.info(jsonObject.toJSONString());
- if (jsonObject != null && jsonObject.getInteger("code") == 0) {
- JSONObject data = jsonObject.getJSONObject("data");
- if (data == null || data.getBoolean("flag") == null || !data.getBoolean("flag")) {
- throw new ControllerException(ErrorCode.ERROR100 );
- }
- }else {
+ Boolean deleted = mediaServerService.delFFmpegSource(mediaInfo, key);
+ if (!deleted) {
throw new ControllerException(ErrorCode.ERROR100 );
}
}
--
Gitblit v1.8.0