From 2ef411129756224061b9d44f3fd998a73db8b0a8 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 05 六月 2023 10:28:11 +0800 Subject: [PATCH] 修复拉流代理的ffmpeg代理方式 --- web_src/src/components/StreamProxyList.vue | 6 +- src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamProxyItem.java | 74 ++++++++++-------------- src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java | 24 ++++---- web_src/src/components/dialog/StreamProxyEdit.vue | 73 ++++++++++++------------ 4 files changed, 83 insertions(+), 94 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamProxyItem.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamProxyItem.java index 8637e3f..dd517e3 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamProxyItem.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamProxyItem.java @@ -16,32 +16,30 @@ @Schema(description = "娴両D") private String stream; @Schema(description = "娴佸獟浣撴湇鍔D") - private String media_server_id; + private String mediaServerId; @Schema(description = "鎷夋祦鍦板潃") private String url; @Schema(description = "鎷夋祦鍦板潃") - private String src_url; + private String srcUrl; @Schema(description = "鐩爣鍦板潃") - private String dst_url; + private String dstUrl; @Schema(description = "瓒呮椂鏃堕棿") - private int timeout_ms; + private int timeoutMs; @Schema(description = "ffmpeg妯℃澘KEY") - private String ffmpeg_cmd_key; + private String ffmpegCmdKey; @Schema(description = "rtsp鎷夋祦鏃讹紝鎷夋祦鏂瑰紡锛�0锛歵cp锛�1锛歶dp锛�2锛氱粍鎾�") - private String rtp_type; + private String rtpType; @Schema(description = "鏄惁鍚敤") private boolean enable; @Schema(description = "鏄惁鍚敤闊抽") - private boolean enable_audio; + private boolean enableAudio; @Schema(description = "鏄惁鍚敤MP4") - private boolean enable_mp4; + private boolean enableMp4; @Schema(description = "鏄惁 鏃犱汉瑙傜湅鏃跺垹闄�") - private boolean enable_remove_none_reader; + private boolean enableRemoveNoneReader; @Schema(description = "鏄惁 鏃犱汉瑙傜湅鏃惰嚜鍔ㄥ仠鐢�") - private boolean enable_disable_none_reader; - @Schema(description = "鍒涘缓鏃堕棿") - private String create_time; + private boolean enableDisableNoneReader; public String getType() { return type; @@ -73,12 +71,12 @@ @Override public String getMediaServerId() { - return media_server_id; + return mediaServerId; } @Override public void setMediaServerId(String mediaServerId) { - this.media_server_id = mediaServerId; + this.mediaServerId = mediaServerId; } public String getUrl() { @@ -90,43 +88,43 @@ } public String getSrcUrl() { - return src_url; + return srcUrl; } public void setSrcUrl(String src_url) { - this.src_url = src_url; + this.srcUrl = src_url; } public String getDstUrl() { - return dst_url; + return dstUrl; } public void setDstUrl(String dst_url) { - this.dst_url = dst_url; + this.dstUrl = dst_url; } public int getTimeoutMs() { - return timeout_ms; + return timeoutMs; } public void setTimeoutMs(int timeout_ms) { - this.timeout_ms = timeout_ms; + this.timeoutMs = timeout_ms; } public String getFfmpegCmdKey() { - return ffmpeg_cmd_key; + return ffmpegCmdKey; } public void setFfmpegCmdKey(String ffmpeg_cmd_key) { - this.ffmpeg_cmd_key = ffmpeg_cmd_key; + this.ffmpegCmdKey = ffmpeg_cmd_key; } public String getRtpType() { - return rtp_type; + return rtpType; } public void setRtpType(String rtp_type) { - this.rtp_type = rtp_type; + this.rtpType = rtp_type; } public boolean isEnable() { @@ -138,44 +136,36 @@ } public boolean isEnableMp4() { - return enable_mp4; + return enableMp4; } public void setEnableMp4(boolean enable_mp4) { - this.enable_mp4 = enable_mp4; - } - - @Override - public String getCreateTime() { - return create_time; - } - - @Override - public void setCreateTime(String create_time) { - this.create_time = create_time; + this.enableMp4 = enable_mp4; } public boolean isEnableRemoveNoneReader() { - return enable_remove_none_reader; + return enableRemoveNoneReader; } public void setEnableRemoveNoneReader(boolean enable_remove_none_reader) { - this.enable_remove_none_reader = enable_remove_none_reader; + this.enableRemoveNoneReader = enable_remove_none_reader; } public boolean isEnableDisableNoneReader() { - return enable_disable_none_reader; + return enableDisableNoneReader; } public void setEnableDisableNoneReader(boolean enable_disable_none_reader) { - this.enable_disable_none_reader = enable_disable_none_reader; + this.enableDisableNoneReader = enable_disable_none_reader; } public boolean isEnableAudio() { - return enable_audio; + return enableAudio; } public void setEnableAudio(boolean enable_audio) { - this.enable_audio = enable_audio; + this.enableAudio = enable_audio; } + + } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java index 3a1a69e..a5a80c4 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamProxyMapper.java @@ -13,9 +13,9 @@ @Insert("INSERT INTO wvp_stream_proxy (type, name, app, stream,media_server_id, url, src_url, dst_url, " + "timeout_ms, ffmpeg_cmd_key, rtp_type, enable_audio, enable_mp4, enable, status, enable_remove_none_reader, enable_disable_none_reader, create_time) VALUES" + - "(#{type}, #{name}, #{app}, #{stream}, #{mediaServerId}, #{url}, #{src_url}, #{dst_url}, " + - "#{timeout_ms}, #{ffmpeg_cmd_key}, #{rtp_type}, #{enable_audio}, #{enable_mp4}, #{enable}, #{status}, " + - "#{enable_remove_none_reader}, #{enable_disable_none_reader}, #{createTime} )") + "(#{type}, #{name}, #{app}, #{stream}, #{mediaServerId}, #{url}, #{srcUrl}, #{dstUrl}, " + + "#{timeoutMs}, #{ffmpegCmdKey}, #{rtpType}, #{enableAudio}, #{enableMp4}, #{enable}, #{status}, " + + "#{enableRemoveNoneReader}, #{enableDisableNoneReader}, #{createTime} )") int add(StreamProxyItem streamProxyDto); @Update("UPDATE wvp_stream_proxy " + @@ -25,17 +25,17 @@ "stream=#{stream}," + "url=#{url}, " + "media_server_id=#{mediaServerId}, " + - "src_url=#{src_url}," + - "dst_url=#{dst_url}, " + - "timeout_ms=#{timeout_ms}, " + - "ffmpeg_cmd_key=#{ffmpeg_cmd_key}, " + - "rtp_type=#{rtp_type}, " + - "enable_audio=#{enable_audio}, " + + "src_url=#{srcUrl}," + + "dst_url=#{dstUrl}, " + + "timeout_ms=#{timeoutMs}, " + + "ffmpeg_cmd_key=#{ffmpegCmdKey}, " + + "rtp_type=#{rtpType}, " + + "enable_audio=#{enableAudio}, " + "enable=#{enable}, " + "status=#{status}, " + - "enable_remove_none_reader=#{enable_remove_none_reader}, " + - "enable_disable_none_reader=#{enable_disable_none_reader}, " + - "enable_mp4=#{enable_mp4} " + + "enable_remove_none_reader=#{enableRemoveNoneReader}, " + + "enable_disable_none_reader=#{enableDisableNoneReader}, " + + "enable_mp4=#{enableMp4} " + "WHERE app=#{app} AND stream=#{stream}") int update(StreamProxyItem streamProxyDto); diff --git a/web_src/src/components/StreamProxyList.vue b/web_src/src/components/StreamProxyList.vue index 47ccde8..dce8853 100644 --- a/web_src/src/components/StreamProxyList.vue +++ b/web_src/src/components/StreamProxyList.vue @@ -22,8 +22,8 @@ {{scope.row.url}} </el-tag> <el-tag size="medium" v-if="scope.row.type != 'default'"> - <i class="cpoy-btn el-icon-document-copy" title="鐐瑰嚮鎷疯礉" v-clipboard="scope.row.src_url" @success="$message({type:'success', message:'鎴愬姛鎷疯礉鍒扮矘璐存澘'})"></i> - {{scope.row.src_url}} + <i class="cpoy-btn el-icon-document-copy" title="鐐瑰嚮鎷疯礉" v-clipboard="scope.row.srcUrl" @success="$message({type:'success', message:'鎴愬姛鎷疯礉鍒扮矘璐存澘'})"></i> + {{scope.row.srcUrl}} </el-tag> </div> </template> @@ -197,7 +197,7 @@ this.$refs.onvifEdit.openDialog(res.data.data, (url)=>{ if (url != null) { this.$refs.onvifEdit.close(); - this.$refs.streamProxyEdit.openDialog({type: "default", url: url, src_url: url}, this.initData()) + this.$refs.streamProxyEdit.openDialog({type: "default", url: url, srcUrl: url}, this.initData()) } }) }else { diff --git a/web_src/src/components/dialog/StreamProxyEdit.vue b/web_src/src/components/dialog/StreamProxyEdit.vue index 76011fa..588f114 100644 --- a/web_src/src/components/dialog/StreamProxyEdit.vue +++ b/web_src/src/components/dialog/StreamProxyEdit.vue @@ -33,13 +33,13 @@ <el-form-item label="鎷夋祦鍦板潃" prop="url" v-if="proxyParam.type=='default'"> <el-input v-model="proxyParam.url" clearable></el-input> </el-form-item> - <el-form-item label="鎷夋祦鍦板潃" prop="src_url" v-if="proxyParam.type=='ffmpeg'"> - <el-input v-model="proxyParam.src_url" clearable></el-input> + <el-form-item label="鎷夋祦鍦板潃" prop="srcUrl" v-if="proxyParam.type=='ffmpeg'"> + <el-input v-model="proxyParam.srcUrl" clearable></el-input> </el-form-item> - <el-form-item label="瓒呮椂鏃堕棿:姣" prop="timeout_ms" v-if="proxyParam.type=='ffmpeg'"> - <el-input v-model="proxyParam.timeout_ms" clearable></el-input> + <el-form-item label="瓒呮椂鏃堕棿:姣" prop="timeoutMs" v-if="proxyParam.type=='ffmpeg'"> + <el-input v-model="proxyParam.timeoutMs" clearable></el-input> </el-form-item> - <el-form-item label="鑺傜偣閫夋嫨" prop="rtp_type"> + <el-form-item label="鑺傜偣閫夋嫨" prop="rtpType"> <el-select v-model="proxyParam.mediaServerId" @change="mediaServerIdChange" @@ -54,10 +54,9 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="FFmpeg鍛戒护妯℃澘" prop="ffmpeg_cmd_key" v-if="proxyParam.type=='ffmpeg'"> -<!-- <el-input v-model="proxyParam.ffmpeg_cmd_key" clearable></el-input>--> + <el-form-item label="FFmpeg鍛戒护妯℃澘" prop="ffmpegCmdKey" v-if="proxyParam.type=='ffmpeg'"> <el-select - v-model="proxyParam.ffmpeg_cmd_key" + v-model="proxyParam.ffmpegCmdKey" style="width: 100%" placeholder="璇烽�夋嫨FFmpeg鍛戒护妯℃澘" > @@ -72,9 +71,9 @@ <el-form-item label="鍥芥爣缂栫爜" prop="gbId"> <el-input v-model="proxyParam.gbId" placeholder="璁剧疆鍥芥爣缂栫爜鍙帹閫佸埌鍥芥爣" clearable></el-input> </el-form-item> - <el-form-item label="鎷夋祦鏂瑰紡" prop="rtp_type" v-if="proxyParam.type=='default'"> + <el-form-item label="鎷夋祦鏂瑰紡" prop="rtpType" v-if="proxyParam.type=='default'"> <el-select - v-model="proxyParam.rtp_type" + v-model="proxyParam.rtpType" style="width: 100%" placeholder="璇烽�夋嫨鎷夋祦鏂瑰紡" > @@ -83,10 +82,10 @@ <el-option label="缁勬挱" value="2"></el-option> </el-select> </el-form-item> - <el-form-item label="鏃犱汉瑙傜湅" prop="rtp_type" > + <el-form-item label="鏃犱汉瑙傜湅" prop="rtpType" > <el-select @change="noneReaderHandler" - v-model="proxyParam.none_reader" + v-model="proxyParam.noneReader" style="width: 100%" placeholder="璇烽�夋嫨鏃犱汉瑙傜湅鐨勫鐞嗘柟寮�" > @@ -98,8 +97,8 @@ <el-form-item label="鍏朵粬閫夐」"> <div style="float: left;"> <el-checkbox label="鍚敤" v-model="proxyParam.enable" ></el-checkbox> - <el-checkbox label="寮�鍚煶棰�" v-model="proxyParam.enable_audio" ></el-checkbox> - <el-checkbox label="褰曞埗" v-model="proxyParam.enable_mp4" ></el-checkbox> + <el-checkbox label="寮�鍚煶棰�" v-model="proxyParam.enableAudio" ></el-checkbox> + <el-checkbox label="褰曞埗" v-model="proxyParam.enableMp4" ></el-checkbox> </div> </el-form-item> @@ -155,17 +154,17 @@ app: null, stream: null, url: "", - src_url: null, - timeout_ms: null, - ffmpeg_cmd_key: null, + srcUrl: null, + timeoutMs: null, + ffmpegCmdKey: null, gbId: null, - rtp_type: null, + rtpType: null, enable: true, - enable_audio: true, - enable_mp4: false, - none_reader: null, - enable_remove_none_reader: false, - enable_disable_none_reader: false, + enableAudio: true, + enableMp4: false, + noneReader: null, + enableRemoveNoneReader: false, + enableDisableNoneReader: false, platformGbId: null, mediaServerId: null, }, @@ -177,9 +176,9 @@ app: [{ required: true, message: "璇疯緭鍏ュ簲鐢ㄥ悕", trigger: "blur" }], stream: [{ required: true, message: "璇疯緭鍏ユ祦ID", trigger: "blur" }], url: [{ required: true, message: "璇疯緭鍏ヨ浠g悊鐨勬祦", trigger: "blur" }], - src_url: [{ required: true, message: "璇疯緭鍏ヨ浠g悊鐨勬祦", trigger: "blur" }], - timeout_ms: [{ required: true, message: "璇疯緭鍏Fmpeg鎺ㄦ祦鎴愬姛瓒呮椂鏃堕棿", trigger: "blur" }], - ffmpeg_cmd_key: [{ required: false, message: "璇疯緭鍏Fmpeg鍛戒护鍙傛暟妯℃澘锛堝彲閫夛級", trigger: "blur" }], + srcUrl: [{ required: true, message: "璇疯緭鍏ヨ浠g悊鐨勬祦", trigger: "blur" }], + timeoutMs: [{ required: true, message: "璇疯緭鍏Fmpeg鎺ㄦ祦鎴愬姛瓒呮椂鏃堕棿", trigger: "blur" }], + ffmpegCmdKey: [{ required: false, message: "璇疯緭鍏Fmpeg鍛戒护鍙傛暟妯℃澘锛堝彲閫夛級", trigger: "blur" }], }, }; }, @@ -189,7 +188,7 @@ this.listChangeCallback = callback; if (proxyParam != null) { this.proxyParam = proxyParam; - this.proxyParam.none_reader = null; + this.proxyParam.noneReader = null; } let that = this; @@ -218,7 +217,7 @@ } }).then(function (res) { that.ffmpegCmdList = res.data.data; - that.proxyParam.ffmpeg_cmd_key = Object.keys(res.data.data)[0]; + that.proxyParam.ffmpegCmdKey = Object.keys(res.data.data)[0]; }).catch(function (error) { console.log(error); }); @@ -275,15 +274,15 @@ } }, noneReaderHandler: function() { - if (this.proxyParam.none_reader === null || this.proxyParam.none_reader === "0") { - this.proxyParam.enable_disable_none_reader = false; - this.proxyParam.enable_remove_none_reader = false; - }else if (this.proxyParam.none_reader === "1"){ - this.proxyParam.enable_disable_none_reader = true; - this.proxyParam.enable_remove_none_reader = false; - }else if (this.proxyParam.none_reader ==="2"){ - this.proxyParam.enable_disable_none_reader = false; - this.proxyParam.enable_remove_none_reader = true; + if (this.proxyParam.noneReader === null || this.proxyParam.noneReader === "0") { + this.proxyParam.enableDisableNoneReader = false; + this.proxyParam.enableRemoveNoneReader = false; + }else if (this.proxyParam.noneReader === "1"){ + this.proxyParam.enableDisableNoneReader = true; + this.proxyParam.enableRemoveNoneReader = false; + }else if (this.proxyParam.noneReader ==="2"){ + this.proxyParam.enableDisableNoneReader = false; + this.proxyParam.enableRemoveNoneReader = true; } }, }, -- Gitblit v1.8.0