Merge branch 'refs/heads/2.7.1'

# Conflicts:
#	src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
#	src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
#	src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
pull/1524/head
648540858 2024-06-25 09:45:34 +08:00
commit 57a230afb3
9 changed files with 66 additions and 18 deletions

View File

@ -87,6 +87,9 @@ public class StreamInfo implements Serializable, Cloneable{
@Schema(description = "产生源类型,包括 unknown = 0,rtmp_push=1,rtsp_push=2,rtp_push=3,pull=4,ffmpeg_pull=5,mp4_vod=6,device_chn=7")
private int originType;
@Schema(description = "转码后的视频流")
private StreamInfo transcodeStream;
public void setFlv(StreamURL flv) {
this.flv = flv;
}
@ -533,6 +536,14 @@ public class StreamInfo implements Serializable, Cloneable{
this.transactionInfo = transactionInfo;
}
public StreamInfo getTranscodeStream() {
return transcodeStream;
}
public void setTranscodeStream(StreamInfo transcodeStream) {
this.transcodeStream = transcodeStream;
}
@Override
public StreamInfo clone() {
StreamInfo instance = null;

View File

@ -21,7 +21,7 @@ public class UserSetting {
private Boolean seniorSdp = Boolean.FALSE;
private Integer playTimeout = 18000;
private Integer playTimeout = 10000;
private int platformPlayTimeout = 20000;

View File

@ -315,8 +315,8 @@ public class NotifyRequestForCatalogProcessor extends SIPRequestProcessorParent
}
}
@Scheduled(fixedRate = 10000) //每1秒执行一次
public void execute(){
logger.info("[待处理Notify-目录订阅消息数量]: {}", taskQueue.size());
}
// @Scheduled(fixedRate = 10000) //每1秒执行一次
// public void execute(){
// logger.info("[待处理Notify-目录订阅消息数量]: {}", taskQueue.size());
// }
}

View File

@ -188,8 +188,8 @@ public class NotifyRequestForMobilePositionProcessor extends SIPRequestProcessor
}
taskQueue.clear();
}
@Scheduled(fixedRate = 10000)
public void execute(){
logger.info("[待处理Notify-移动位置订阅消息数量]: {}", taskQueue.size());
}
// @Scheduled(fixedRate = 10000)
// public void execute(){
// logger.debug("[待处理Notify-移动位置订阅消息数量]: {}", taskQueue.size());
// }
}

View File

@ -53,7 +53,7 @@ public interface CloudRecordServiceMapper {
" <if test= 'ids != null ' > and id in " +
" <foreach collection='ids' item='item' open='(' separator=',' close=')' > #{item}</foreach>" +
" </if>" +
" order by start_time DESC" +
" order by start_time ASC" +
" </script>")
List<CloudRecordItem> getList(@Param("query") String query, @Param("app") String app, @Param("stream") String stream,
@Param("startTimeStamp")Long startTimeStamp, @Param("endTimeStamp")Long endTimeStamp,

View File

@ -98,6 +98,9 @@ public class StreamContent {
@Schema(description = "文件下载地址(录像下载使用)")
private DownloadFileInfo downLoadFilePath;
@Schema(description = "转码后的视频流")
private StreamContent transcodeStream;
private double progress;
public StreamContent(StreamInfo streamInfo) {
@ -179,6 +182,17 @@ public class StreamContent {
if (streamInfo.getDownLoadFilePath() != null) {
this.downLoadFilePath = streamInfo.getDownLoadFilePath();
}
if (streamInfo.getTranscodeStream() != null) {
this.transcodeStream = new StreamContent(streamInfo.getTranscodeStream());
}
}
public StreamContent getTranscodeStream() {
return transcodeStream;
}
public void setTranscodeStream(StreamContent transcodeStream) {
this.transcodeStream = transcodeStream;
}
public String getApp() {

View File

@ -126,13 +126,32 @@ public class ApiStreamController {
resultJjson.put("ChannelID", code);
resultJjson.put("ChannelName", deviceChannel.getName());
resultJjson.put("ChannelCustomName", "");
resultJjson.put("FLV", streamInfo.getFlv().getUrl());
if(streamInfo.getHttps_flv() != null) {
resultJjson.put("HTTPS_FLV", streamInfo.getHttps_flv().getUrl());
if (streamInfo.getTranscodeStream() != null) {
resultJjson.put("FLV", streamInfo.getTranscodeStream().getFlv().getUrl());
}else {
resultJjson.put("FLV", streamInfo.getFlv().getUrl());
}
resultJjson.put("WS_FLV", streamInfo.getWs_flv().getUrl());
if(streamInfo.getHttps_flv() != null) {
if (streamInfo.getTranscodeStream() != null) {
resultJjson.put("HTTPS_FLV", streamInfo.getTranscodeStream().getHttps_flv().getUrl());
}else {
resultJjson.put("HTTPS_FLV", streamInfo.getHttps_flv().getUrl());
}
}
if (streamInfo.getTranscodeStream() != null) {
resultJjson.put("WS_FLV", streamInfo.getTranscodeStream().getWs_flv().getUrl());
}else {
resultJjson.put("WS_FLV", streamInfo.getWs_flv().getUrl());
}
if(streamInfo.getWss_flv() != null) {
resultJjson.put("WSS_FLV", streamInfo.getWss_flv().getUrl());
if (streamInfo.getTranscodeStream() != null) {
resultJjson.put("WSS_FLV", streamInfo.getTranscodeStream().getWss_flv().getUrl());
}else {
resultJjson.put("WSS_FLV", streamInfo.getWss_flv().getUrl());
}
}
resultJjson.put("RTMP", streamInfo.getRtmp().getUrl());
if (streamInfo.getRtmps() != null) {

View File

@ -2,4 +2,4 @@ spring:
application:
name: wvp
profiles:
active: local
active: local271

View File

@ -473,10 +473,14 @@ export default {
},
getUrlByStreamInfo() {
console.log(this.streamInfo)
let streamInfo = this.streamInfo
if (this.streamInfo.transcodeStream) {
streamInfo = this.streamInfo.transcodeStream;
}
if (location.protocol === "https:") {
this.videoUrl = this.streamInfo[this.player[this.activePlayer][1]]
this.videoUrl = streamInfo[this.player[this.activePlayer][1]]
} else {
this.videoUrl = this.streamInfo[this.player[this.activePlayer][0]]
this.videoUrl = streamInfo[this.player[this.activePlayer][0]]
}
return this.videoUrl;