Commit b92289812907fb49f32c377dfc128e971eec7562

Authored by 648540858
1 parent da44fae9

修复wvp使用https时播放流地址使用wss,以使用ssl播放

src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
@@ -9,15 +9,25 @@ public class StreamInfo { @@ -9,15 +9,25 @@ public class StreamInfo {
9 private String deviceID; 9 private String deviceID;
10 private String channelId; 10 private String channelId;
11 private String flv; 11 private String flv;
  12 + private String https_flv;
12 private String ws_flv; 13 private String ws_flv;
  14 + private String wss_flv;
13 private String fmp4; 15 private String fmp4;
  16 + private String https_fmp4;
14 private String ws_fmp4; 17 private String ws_fmp4;
  18 + private String wss_fmp4;
15 private String hls; 19 private String hls;
  20 + private String https_hls;
16 private String ws_hls; 21 private String ws_hls;
  22 + private String wss_hls;
17 private String ts; 23 private String ts;
  24 + private String https_ts;
18 private String ws_ts; 25 private String ws_ts;
  26 + private String wss_ts;
19 private String rtmp; 27 private String rtmp;
  28 + private String rtmps;
20 private String rtsp; 29 private String rtsp;
  30 + private String rtsps;
21 private String rtc; 31 private String rtc;
22 private String mediaServerId; 32 private String mediaServerId;
23 private JSONArray tracks; 33 private JSONArray tracks;
@@ -174,4 +184,84 @@ public class StreamInfo { @@ -174,4 +184,84 @@ public class StreamInfo {
174 public void setMediaServerId(String mediaServerId) { 184 public void setMediaServerId(String mediaServerId) {
175 this.mediaServerId = mediaServerId; 185 this.mediaServerId = mediaServerId;
176 } 186 }
  187 +
  188 + public String getHttps_flv() {
  189 + return https_flv;
  190 + }
  191 +
  192 + public void setHttps_flv(String https_flv) {
  193 + this.https_flv = https_flv;
  194 + }
  195 +
  196 + public String getWss_flv() {
  197 + return wss_flv;
  198 + }
  199 +
  200 + public void setWss_flv(String wss_flv) {
  201 + this.wss_flv = wss_flv;
  202 + }
  203 +
  204 + public String getWss_fmp4() {
  205 + return wss_fmp4;
  206 + }
  207 +
  208 + public void setWss_fmp4(String wss_fmp4) {
  209 + this.wss_fmp4 = wss_fmp4;
  210 + }
  211 +
  212 + public String getWss_hls() {
  213 + return wss_hls;
  214 + }
  215 +
  216 + public void setWss_hls(String wss_hls) {
  217 + this.wss_hls = wss_hls;
  218 + }
  219 +
  220 + public String getWss_ts() {
  221 + return wss_ts;
  222 + }
  223 +
  224 + public void setWss_ts(String wss_ts) {
  225 + this.wss_ts = wss_ts;
  226 + }
  227 +
  228 + public String getRtmps() {
  229 + return rtmps;
  230 + }
  231 +
  232 + public void setRtmps(String rtmps) {
  233 + this.rtmps = rtmps;
  234 + }
  235 +
  236 + public String getRtsps() {
  237 + return rtsps;
  238 + }
  239 +
  240 + public void setRtsps(String rtsps) {
  241 + this.rtsps = rtsps;
  242 + }
  243 +
  244 + public String getHttps_hls() {
  245 + return https_hls;
  246 + }
  247 +
  248 + public void setHttps_hls(String https_hls) {
  249 + this.https_hls = https_hls;
  250 + }
  251 +
  252 + public String getHttps_fmp4() {
  253 + return https_fmp4;
  254 + }
  255 +
  256 + public void setHttps_fmp4(String https_fmp4) {
  257 + this.https_fmp4 = https_fmp4;
  258 + }
  259 +
  260 + public String getHttps_ts() {
  261 + return https_ts;
  262 + }
  263 +
  264 + public void setHttps_ts(String https_ts) {
  265 + this.https_ts = https_ts;
  266 + }
177 } 267 }
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
@@ -70,7 +70,13 @@ public class MediaServiceImpl implements IMediaService { @@ -70,7 +70,13 @@ public class MediaServiceImpl implements IMediaService {
70 } 70 }
71 streamInfoResult.setMediaServerId(mediaInfo.getId()); 71 streamInfoResult.setMediaServerId(mediaInfo.getId());
72 streamInfoResult.setRtmp(String.format("rtmp://%s:%s/%s/%s", addr, mediaInfo.getRtmpPort(), app, stream)); 72 streamInfoResult.setRtmp(String.format("rtmp://%s:%s/%s/%s", addr, mediaInfo.getRtmpPort(), app, stream));
  73 + if (mediaInfo.getRtmpSSlPort() != 0) {
  74 + streamInfoResult.setRtmps(String.format("rtmps://%s:%s/%s/%s", addr, mediaInfo.getRtmpSSlPort(), app, stream));
  75 + }
73 streamInfoResult.setRtsp(String.format("rtsp://%s:%s/%s/%s", addr, mediaInfo.getRtspPort(), app, stream)); 76 streamInfoResult.setRtsp(String.format("rtsp://%s:%s/%s/%s", addr, mediaInfo.getRtspPort(), app, stream));
  77 + if (mediaInfo.getRtspSSLPort() != 0) {
  78 + streamInfoResult.setRtsps(String.format("rtsps://%s:%s/%s/%s", addr, mediaInfo.getRtspSSLPort(), app, stream));
  79 + }
74 streamInfoResult.setFlv(String.format("http://%s:%s/%s/%s.flv", addr, mediaInfo.getHttpPort(), app, stream)); 80 streamInfoResult.setFlv(String.format("http://%s:%s/%s/%s.flv", addr, mediaInfo.getHttpPort(), app, stream));
75 streamInfoResult.setWs_flv(String.format("ws://%s:%s/%s/%s.flv", addr, mediaInfo.getHttpPort(), app, stream)); 81 streamInfoResult.setWs_flv(String.format("ws://%s:%s/%s/%s.flv", addr, mediaInfo.getHttpPort(), app, stream));
76 streamInfoResult.setHls(String.format("http://%s:%s/%s/%s/hls.m3u8", addr, mediaInfo.getHttpPort(), app, stream)); 82 streamInfoResult.setHls(String.format("http://%s:%s/%s/%s/hls.m3u8", addr, mediaInfo.getHttpPort(), app, stream));
@@ -79,7 +85,19 @@ public class MediaServiceImpl implements IMediaService { @@ -79,7 +85,19 @@ public class MediaServiceImpl implements IMediaService {
79 streamInfoResult.setWs_fmp4(String.format("ws://%s:%s/%s/%s.live.mp4", addr, mediaInfo.getHttpPort(), app, stream)); 85 streamInfoResult.setWs_fmp4(String.format("ws://%s:%s/%s/%s.live.mp4", addr, mediaInfo.getHttpPort(), app, stream));
80 streamInfoResult.setTs(String.format("http://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpPort(), app, stream)); 86 streamInfoResult.setTs(String.format("http://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpPort(), app, stream));
81 streamInfoResult.setWs_ts(String.format("ws://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpPort(), app, stream)); 87 streamInfoResult.setWs_ts(String.format("ws://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpPort(), app, stream));
82 - streamInfoResult.setRtc(String.format("http://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream)); 88 + if (mediaInfo.getHttpSSlPort() != 0) {
  89 + streamInfoResult.setHttps_flv(String.format("https://%s:%s/%s/%s.flv", addr, mediaInfo.getHttpSSlPort(), app, stream));
  90 + streamInfoResult.setWss_flv(String.format("wss://%s:%s/%s/%s.flv", addr, mediaInfo.getHttpSSlPort(), app, stream));
  91 + streamInfoResult.setHttps_hls(String.format("https://%s:%s/%s/%s/hls.m3u8", addr, mediaInfo.getHttpSSlPort(), app, stream));
  92 + streamInfoResult.setWss_hls(String.format("wss://%s:%s/%s/%s/hls.m3u8", addr, mediaInfo.getHttpSSlPort(), app, stream));
  93 + streamInfoResult.setHttps_fmp4(String.format("https://%s:%s/%s/%s.live.mp4", addr, mediaInfo.getHttpSSlPort(), app, stream));
  94 + streamInfoResult.setWss_fmp4(String.format("wss://%s:%s/%s/%s.live.mp4", addr, mediaInfo.getHttpSSlPort(), app, stream));
  95 + streamInfoResult.setHttps_ts(String.format("https://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpSSlPort(), app, stream));
  96 + streamInfoResult.setWss_ts(String.format("wss://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpSSlPort(), app, stream));
  97 + streamInfoResult.setWss_ts(String.format("wss://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpSSlPort(), app, stream));
  98 + streamInfoResult.setRtc(String.format("http://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play", mediaInfo.getStreamIp(), mediaInfo.getHttpSSlPort(), app, stream));
  99 + }
  100 +
83 streamInfoResult.setTracks(tracks); 101 streamInfoResult.setTracks(tracks);
84 return streamInfoResult; 102 return streamInfoResult;
85 } 103 }
web_src/src/components/dialog/devicePlayer.vue
@@ -285,7 +285,21 @@ export default { @@ -285,7 +285,21 @@ export default {
285 let baseZlmApi = process.env.NODE_ENV === 'development'?`${location.host}/debug/zlm`:`${location.host}/zlm` 285 let baseZlmApi = process.env.NODE_ENV === 'development'?`${location.host}/debug/zlm`:`${location.host}/zlm`
286 // return `${baseZlmApi}/${streamInfo.app}/${streamInfo.streamId}.flv`; 286 // return `${baseZlmApi}/${streamInfo.app}/${streamInfo.streamId}.flv`;
287 // return `http://${baseZlmApi}/${streamInfo.app}/${streamInfo.streamId}.flv`; 287 // return `http://${baseZlmApi}/${streamInfo.app}/${streamInfo.streamId}.flv`;
288 - return streamInfo.ws_flv; 288 + if (location.protocol === "https:") {
  289 + if (streamInfo.wss_flv === null) {
  290 + this.$message({
  291 + showClose: true,
  292 + message: '媒体服务器未配置ssl端口',
  293 + type: 'error'
  294 + });
  295 + }else {
  296 + return streamInfo.wss_flv;
  297 + }
  298 +
  299 + }else {
  300 + return streamInfo.ws_flv;
  301 + }
  302 +
289 }, 303 },
290 coverPlay: function () { 304 coverPlay: function () {
291 var that = this; 305 var that = this;