From 12248c06cb08cd576d62e80c5d31cba212191c32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AF=85?= <97163845@qq.com> Date: Thu, 15 Oct 2026 10:03:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=8A=93=E6=8B=8D=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hik/service/HikNvrLiveStreamService.java | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/inspect/nvr/hik/service/HikNvrLiveStreamService.java b/src/main/java/com/inspect/nvr/hik/service/HikNvrLiveStreamService.java index 98901e3c..0004b335 100644 --- a/src/main/java/com/inspect/nvr/hik/service/HikNvrLiveStreamService.java +++ b/src/main/java/com/inspect/nvr/hik/service/HikNvrLiveStreamService.java @@ -1870,27 +1870,23 @@ public class HikNvrLiveStreamService { return "camera-" + cameraCode.trim().replaceAll("[^A-Za-z0-9_-]", "_"); } - /** 返回当前流的 HLS 浏览器地址。 */ + /** + * 返回当前流的 HLS 浏览器地址。 + * + *
只返回相对路径:页面会按现场约定对与本页面同源的 /live/ 地址改写媒体端口; + * 网关代理部署下按请求 Host 拼绝对地址会把流指向网关机器,浏览器无法拉流。
+ */ private String hlsUrl(String streamId, String baseUrl) { - return absoluteMediaUrl(baseUrl, "/live/" + streamId + "/hls.m3u8"); - } - - /** 返回当前流的 HTTP-FLV 浏览器地址。 */ - private String flvUrl(String streamId, String baseUrl) { - return absoluteMediaUrl(baseUrl, "/live/" + streamId + ".live.flv"); + return "/live/" + streamId + "/hls.m3u8"; } /** - * 拼接浏览器可达的绝对媒体地址。 + * 返回当前流的 HTTP-FLV 浏览器地址。 * - *页面会对"与本页面同源且以 /live/ 开头"的相对地址强制改写媒体端口(现场约定), - * 因此只要解析出了基础地址就必须返回绝对地址;仅在完全无基础地址时保留相对路径。
+ *只返回相对路径,原因同 {@link #hlsUrl}。
*/ - private String absoluteMediaUrl(String baseUrl, String path) { - if (!hasText(baseUrl)) { - return path; - } - return trimTrailingSlash(baseUrl.trim()) + path; + private String flvUrl(String streamId, String baseUrl) { + return "/live/" + streamId + ".live.flv"; } /**