|
|
@@ -191,7 +191,7 @@ public class LocalMediaServerItemService extends GenericReactiveCrudService<Medi
|
|
|
/**
|
|
|
* zlm 重启后重置他的推流信息, TODO 给正在使用的设备发送停止命令
|
|
|
*/
|
|
|
- private void clearRTPServer(MediaServerItem mediaServerItem) {
|
|
|
+ public void clearRTPServer(MediaServerItem mediaServerItem) {
|
|
|
// mediaServerItem.setSsrcConfig(new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain()));
|
|
|
mediaServerItem.setSsrcConfig(new SsrcConfig(mediaServerItem.getId(), null,"340200000"));
|
|
|
redisUtil.zAdd(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + serverId, mediaServerItem.getServerId(), 0);
|
|
|
@@ -294,7 +294,8 @@ public class LocalMediaServerItemService extends GenericReactiveCrudService<Medi
|
|
|
|
|
|
public Mono<MediaServerItem> getDefaultMediaServer() {
|
|
|
return this.createQuery()
|
|
|
- .where(MediaServerItem::isDefaultServer,true)
|
|
|
+ .selectExcludes(MediaServerItem::getSsrcConfig)
|
|
|
+// .where(MediaServerItem::isDefaultServer,true)
|
|
|
.fetchOne();
|
|
|
}
|
|
|
|
|
|
@@ -358,20 +359,20 @@ public class LocalMediaServerItemService extends GenericReactiveCrudService<Medi
|
|
|
if (serverItem.getHttpPort() == 0) {
|
|
|
serverItem.setHttpPort(zlmServerConfig.getHttpPort());
|
|
|
}
|
|
|
- if (serverItem.getHttpSSlPort() == 0) {
|
|
|
- serverItem.setHttpSSlPort(zlmServerConfig.getHttpSSLport());
|
|
|
+ if (serverItem.getHttpSslPort() == 0) {
|
|
|
+ serverItem.setHttpSslPort(zlmServerConfig.getHttpSSLport());
|
|
|
}
|
|
|
if (serverItem.getRtmpPort() == 0) {
|
|
|
serverItem.setRtmpPort(zlmServerConfig.getRtmpPort());
|
|
|
}
|
|
|
- if (serverItem.getRtmpSSlPort() == 0) {
|
|
|
- serverItem.setRtmpSSlPort(zlmServerConfig.getRtmpSslPort());
|
|
|
+ if (serverItem.getRtmpSslPort() == 0) {
|
|
|
+ serverItem.setRtmpSslPort(zlmServerConfig.getRtmpSslPort());
|
|
|
}
|
|
|
if (serverItem.getRtspPort() == 0) {
|
|
|
serverItem.setRtspPort(zlmServerConfig.getRtspPort());
|
|
|
}
|
|
|
- if (serverItem.getRtspSSLPort() == 0) {
|
|
|
- serverItem.setRtspSSLPort(zlmServerConfig.getRtspSSlport());
|
|
|
+ if (serverItem.getRtspSsLPort() == 0) {
|
|
|
+ serverItem.setRtspSsLPort(zlmServerConfig.getRtspSSlport());
|
|
|
}
|
|
|
if (serverItem.getRtpProxyPort() == 0) {
|
|
|
serverItem.setRtpProxyPort(zlmServerConfig.getRtpProxyPort());
|
|
|
@@ -433,7 +434,7 @@ public class LocalMediaServerItemService extends GenericReactiveCrudService<Medi
|
|
|
// }
|
|
|
//
|
|
|
|
|
|
- private void refreshServerId(MediaServerItem serverItem){
|
|
|
+ public void refreshServerId(MediaServerItem serverItem){
|
|
|
JSONObject mediaServerConfig = zlmresTfulUtils.getMediaServerConfig(serverItem);
|
|
|
JSONObject data = JSONUtil.parseObj(JSONUtil.parseArray(mediaServerConfig.get("data")).get(0));
|
|
|
serverItem.setServerId(String.valueOf( data.get("general.mediaServerId")));
|
|
|
@@ -513,7 +514,7 @@ public class LocalMediaServerItemService extends GenericReactiveCrudService<Medi
|
|
|
log.info("[ ZLM:{} ]-[ {}:{} ]设置zlm",
|
|
|
mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
|
|
|
String protocol = sslEnabled ? "https" : "http";
|
|
|
- String hookPrex = String.format("%s://%s:%s/index/hook", protocol, mediaServerItem.getHookIp(), serverPort);
|
|
|
+ String hookPrex = String.format("%s://%s:%s/index/hook", protocol, mediaServerItem.getHookIp(), mediaServerItem.getHookPort());
|
|
|
// String hookPrex = "http://192.168.104.244:8848/index/hook";
|
|
|
String recordHookPrex = null;
|
|
|
if (mediaServerItem.getRecordAssistPort() != 0) {
|
|
|
@@ -525,6 +526,9 @@ public class LocalMediaServerItemService extends GenericReactiveCrudService<Medi
|
|
|
param.put("ffmpeg.bin","/usr/local/ffmpeg/bin/ffmpeg");
|
|
|
param.put("ffmpeg.snap","%25s -i %25s -y -f mjpeg -t 0.001 %25s");
|
|
|
param.put("hook.enable","1");
|
|
|
+ param.put("general.fmp4_demand","1");
|
|
|
+ param.put("general.hls_demand","1");
|
|
|
+ param.put("general.modifyStamp","1");
|
|
|
param.put("hook.on_flow_report","");
|
|
|
param.put("hook.on_play",String.format("%s/on_play", hookPrex));
|
|
|
param.put("hook.on_http_access",String.format("%s/on_http_access", hookPrex));
|
|
|
@@ -540,6 +544,7 @@ public class LocalMediaServerItemService extends GenericReactiveCrudService<Medi
|
|
|
param.put("hook.on_stream_not_found",String.format("%s/on_stream_not_found", hookPrex));
|
|
|
param.put("hook.on_server_keepalive",String.format("%s/on_server_keepalive", hookPrex));
|
|
|
param.put("hook.timeoutSec","20");
|
|
|
+ param.put("rtmp.modifyStamp","1");
|
|
|
param.put("general.enable_audio","1");
|
|
|
param.put("general.streamNoneReaderDelayMS","-1".equals(mediaServerItem.getStreamNoneReaderDelayMS())?"3600000":mediaServerItem.getStreamNoneReaderDelayMS() );
|
|
|
|
|
|
@@ -701,37 +706,28 @@ public class LocalMediaServerItemService extends GenericReactiveCrudService<Medi
|
|
|
}
|
|
|
streamInfoResult.setMediaServerId(mediaInfo.getId());
|
|
|
streamInfoResult.setRtmp(String.format("rtmp://%s:%s/%s/%s", addr, mediaInfo.getRtmpPort(), app, stream));
|
|
|
- if (mediaInfo.getRtmpSSlPort() != 0) {
|
|
|
- streamInfoResult.setRtmps(String.format("rtmps://%s:%s/%s/%s", addr, mediaInfo.getRtmpSSlPort(), app, stream));
|
|
|
- }
|
|
|
- if(mediaInfo.getRtspPort()!=80){
|
|
|
- streamInfoResult.setRtsp(String.format("rtsp://%s:%s/%s/%s", addr, mediaInfo.getRtspPort(), app, stream));
|
|
|
- }else {
|
|
|
- streamInfoResult.setRtsp(String.format("rtsp://%s/%s/%s", addr, app, stream));
|
|
|
- }
|
|
|
-
|
|
|
- if (mediaInfo.getRtspSSLPort() != 0) {
|
|
|
- streamInfoResult.setRtsps(String.format("rtsps://%s:%s/%s/%s", addr, mediaInfo.getRtspSSLPort(), app, stream));
|
|
|
- }
|
|
|
- streamInfoResult.setFlv(String.format("http://%s:%s/%s/%s.flv", addr, mediaInfo.getHttpPort(), app, stream));
|
|
|
- streamInfoResult.setWs_flv(String.format("ws://%s:%s/%s/%s.flv", addr, mediaInfo.getHttpPort(), app, stream));
|
|
|
+ streamInfoResult.setRtmps(String.format("rtmps://%s:%s/%s/%s", addr, mediaInfo.getRtmpSslPort(), app, stream));
|
|
|
+ streamInfoResult.setRtsp(String.format("rtsp://%s:%s/%s/%s", addr, mediaInfo.getRtspPort(), app, stream));
|
|
|
+ streamInfoResult.setRtsps(String.format("rtsps://%s:%s/%s/%s", addr, mediaInfo.getRtspSsLPort(), app, stream));
|
|
|
+ streamInfoResult.setFlv(String.format("http://%s:%s/%s/%s.live.flv", addr, mediaInfo.getHttpPort(), app, stream));
|
|
|
+ streamInfoResult.setWs_flv(String.format("ws://%s:%s/%s/%s.live.flv", addr, mediaInfo.getHttpPort(), app, stream));
|
|
|
streamInfoResult.setHls(String.format("http://%s:%s/%s/%s/hls.m3u8", addr, mediaInfo.getHttpPort(), app, stream));
|
|
|
streamInfoResult.setWs_hls(String.format("ws://%s:%s/%s/%s/hls.m3u8", addr, mediaInfo.getHttpPort(), app, stream));
|
|
|
streamInfoResult.setFmp4(String.format("http://%s:%s/%s/%s.live.mp4", addr, mediaInfo.getHttpPort(), app, stream));
|
|
|
streamInfoResult.setWs_fmp4(String.format("ws://%s:%s/%s/%s.live.mp4", addr, mediaInfo.getHttpPort(), app, stream));
|
|
|
streamInfoResult.setTs(String.format("http://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpPort(), app, stream));
|
|
|
streamInfoResult.setWs_ts(String.format("ws://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpPort(), app, stream));
|
|
|
- if (mediaInfo.getHttpSSlPort() != 0) {
|
|
|
- streamInfoResult.setHttps_flv(String.format("https://%s:%s/%s/%s.flv", addr, mediaInfo.getHttpSSlPort(), app, stream));
|
|
|
- streamInfoResult.setWss_flv(String.format("wss://%s:%s/%s/%s.flv", addr, mediaInfo.getHttpSSlPort(), app, stream));
|
|
|
- streamInfoResult.setHttps_hls(String.format("https://%s:%s/%s/%s/hls.m3u8", addr, mediaInfo.getHttpSSlPort(), app, stream));
|
|
|
- streamInfoResult.setWss_hls(String.format("wss://%s:%s/%s/%s/hls.m3u8", addr, mediaInfo.getHttpSSlPort(), app, stream));
|
|
|
- streamInfoResult.setHttps_fmp4(String.format("https://%s:%s/%s/%s.live.mp4", addr, mediaInfo.getHttpSSlPort(), app, stream));
|
|
|
- streamInfoResult.setWss_fmp4(String.format("wss://%s:%s/%s/%s.live.mp4", addr, mediaInfo.getHttpSSlPort(), app, stream));
|
|
|
- streamInfoResult.setHttps_ts(String.format("https://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpSSlPort(), app, stream));
|
|
|
- streamInfoResult.setWss_ts(String.format("wss://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpSSlPort(), app, stream));
|
|
|
- streamInfoResult.setWss_ts(String.format("wss://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpSSlPort(), app, stream));
|
|
|
- streamInfoResult.setRtc(String.format("https://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play", mediaInfo.getStreamIp(), mediaInfo.getHttpSSlPort(), app, stream));
|
|
|
+ if (mediaInfo.getHttpSslPort() != 0) {
|
|
|
+ streamInfoResult.setHttps_flv(String.format("https://%s:%s/%s/%s.live.flv", addr, mediaInfo.getHttpSslPort(), app, stream));
|
|
|
+ streamInfoResult.setWss_flv(String.format("wss://%s:%s/%s/%s.live.flv", addr, mediaInfo.getHttpSslPort(), app, stream));
|
|
|
+ streamInfoResult.setHttps_hls(String.format("https://%s:%s/%s/%s/hls.m3u8", addr, mediaInfo.getHttpSslPort(), app, stream));
|
|
|
+ streamInfoResult.setWss_hls(String.format("wss://%s:%s/%s/%s/hls.m3u8", addr, mediaInfo.getHttpSslPort(), app, stream));
|
|
|
+ streamInfoResult.setHttps_fmp4(String.format("https://%s:%s/%s/%s.live.mp4", addr, mediaInfo.getHttpSslPort(), app, stream));
|
|
|
+ streamInfoResult.setWss_fmp4(String.format("wss://%s:%s/%s/%s.live.mp4", addr, mediaInfo.getHttpSslPort(), app, stream));
|
|
|
+ streamInfoResult.setHttps_ts(String.format("https://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpSslPort(), app, stream));
|
|
|
+ streamInfoResult.setWss_ts(String.format("wss://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpSslPort(), app, stream));
|
|
|
+ streamInfoResult.setWss_ts(String.format("wss://%s:%s/%s/%s.live.ts", addr, mediaInfo.getHttpSslPort(), app, stream));
|
|
|
+ streamInfoResult.setRtc(String.format("https://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play", mediaInfo.getStreamIp(), mediaInfo.getHttpSslPort(), app, stream));
|
|
|
}
|
|
|
|
|
|
streamInfoResult.setTracks(tracks);
|