Browse Source

解决抓拍问题

master
王寅 4 weeks ago
parent
commit
12248c06cb
1 changed files with 11 additions and 15 deletions
  1. +11
    -15
      src/main/java/com/inspect/nvr/hik/service/HikNvrLiveStreamService.java

+ 11
- 15
src/main/java/com/inspect/nvr/hik/service/HikNvrLiveStreamService.java View File

@ -1870,27 +1870,23 @@ public class HikNvrLiveStreamService {
return "camera-" + cameraCode.trim().replaceAll("[^A-Za-z0-9_-]", "_"); return "camera-" + cameraCode.trim().replaceAll("[^A-Za-z0-9_-]", "_");
} }
/** 返回当前流的 HLS 浏览器地址。 */
/**
* 返回当前流的 HLS 浏览器地址。
*
* <p>只返回相对路径:页面会按现场约定对与本页面同源的 /live/ 地址改写媒体端口;
* 网关代理部署下按请求 Host 拼绝对地址会把流指向网关机器,浏览器无法拉流。</p>
*/
private String hlsUrl(String streamId, String baseUrl) { 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 浏览器地址。
* *
* <p>页面会对"与本页面同源且以 /live/ 开头"的相对地址强制改写媒体端口(现场约定),
* 因此只要解析出了基础地址就必须返回绝对地址;仅在完全无基础地址时保留相对路径。</p>
* <p>只返回相对路径,原因同 {@link #hlsUrl}。</p>
*/ */
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";
} }
/** /**


Loading…
Cancel
Save