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"; } /**