From 935fda56e95270493d9e3e46d28b29125d330ca3 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期一, 29 七月 2024 16:31:02 +0800
Subject: [PATCH] 修改:流媒体转码使用ffmpeg绝对路径,配置文件中增加ffmpegPath 增加:部门列表查询和部门详情查询无数据权限
---
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml | 18 ++++++++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 6 +++
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java | 2
server/mediamtx/ffmpeg.exe | 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java | 15 +++++++
ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java | 19 +++++----
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 10 +++++
8 files changed, 59 insertions(+), 13 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java
index ea897fe..1050dce 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java
@@ -41,7 +41,8 @@
@Value("${mediamtx.host}")
String mediamtxHost;
-
+ @Value("${mediamtx.ffmpegPath}")
+ String ffmpegPath;
/**
* 娣诲姞娴佸獟浣�
@@ -66,9 +67,9 @@
if (isCode.equals("1")) {
conf.setSource("publisher");
//榛樿杞В鐮�
- String cmd = "ffmpeg -rtsp_transport tcp -i " + sourceUrl + " -vcodec libx264 -preset:v ultrafast -r 25 -keyint_min 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
+ String cmd = ffmpegPath + "/ffmpeg -rtsp_transport tcp -i " + sourceUrl + " -vcodec libx264 -preset:v ultrafast -r 25 -keyint_min 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
if (mode.equals("0")) {//纭В鐮�
- cmd = rootPath + "ffmpeg -hwaccel cuvid -c:v hevc_cuvid -rtsp_transport tcp -i " + sourceUrl + " -c:v h264_nvenc -r 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -bf 0 -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
+ cmd = ffmpegPath + "/ffmpeg -hwaccel cuvid -c:v hevc_cuvid -rtsp_transport tcp -i " + sourceUrl + " -c:v h264_nvenc -r 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -bf 0 -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
}
conf.setRunOnDemand(cmd);
conf.setRunOnDemandRestart(true);
@@ -106,13 +107,13 @@
String webrtcUrl = "http://" + mediamtxHost + ":8889/" + name;
Conf conf = new Conf();
- String rootPath = System.getProperty("user.dir").replaceAll("\\\\", "/") + "/lib/mediamtx/";
+ String rootPath = System.getProperty("user.dir").replaceAll("\\\\", "/") + "/server/mediamtx/";
if (isCode.equals("1")) {
conf.setSource("publisher");
//榛樿杞В鐮�
- String cmd = "ffmpeg -rtsp_transport tcp -i " + sourceUrl + " -vcodec libx264 -preset:v ultrafast -r 25 -keyint_min 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
+ String cmd = ffmpegPath + "/ffmpeg -rtsp_transport tcp -i " + sourceUrl + " -vcodec libx264 -preset:v ultrafast -r 25 -keyint_min 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
if (mode.equals("0")) {//纭В鐮�
- cmd = "ffmpeg -hwaccel cuvid -c:v hevc_cuvid -rtsp_transport tcp -i " + sourceUrl + " -c:v h264_nvenc -r 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -bf 0 -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
+ cmd = ffmpegPath + "/ffmpeg -hwaccel cuvid -c:v hevc_cuvid -rtsp_transport tcp -i " + sourceUrl + " -c:v h264_nvenc -r 25 -g 60 -sc_threshold 0 -threads 6 -b:v 2048k -bf 0 -acodec opus -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
}
conf.setRunOnDemand(cmd);
conf.setRunOnDemandRestart(true);
@@ -331,7 +332,7 @@
@Override
public TableDataInfo getPullWebrtcStreamList(Integer pageNum, Integer pageSize) {
TableDataInfo tableDataInfo = new TableDataInfo();
- WebrtcSessions WebrtcSessions = mediaClient.webrtcsessions(pageNum-1, pageSize);
+ WebrtcSessions WebrtcSessions = mediaClient.webrtcsessions(pageNum - 1, pageSize);
List<WebrtcSession> webrtcsessions = WebrtcSessions.getItems();
webrtcsessions.stream().forEach(
webrtcSession -> {
@@ -355,7 +356,7 @@
@Override
public TableDataInfo getPullRtmpStreamList(Integer pageNum, Integer pageSize) {
TableDataInfo tableDataInfo = new TableDataInfo();
- RtmpSessions rtmpSessions = mediaClient.rtmpsessions(pageNum-1, pageSize);
+ RtmpSessions rtmpSessions = mediaClient.rtmpsessions(pageNum - 1, pageSize);
List<RtmpSession> webrtcsessions = rtmpSessions.getItems();
webrtcsessions.stream().forEach(
webrtcSession -> {
@@ -379,7 +380,7 @@
@Override
public TableDataInfo getPullRtspStreamList(Integer pageNum, Integer pageSize) {
TableDataInfo tableDataInfo = new TableDataInfo();
- RtspSessions rtspSessions = mediaClient.rtspsessions(pageNum-1, pageSize);
+ RtspSessions rtspSessions = mediaClient.rtspsessions(pageNum - 1, pageSize);
List<RtspSession> webrtcsessions = rtspSessions.getItems();
webrtcsessions.stream().forEach(
webrtcSession -> {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
index a320da7..9fabfc1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
@@ -1,6 +1,9 @@
package com.ruoyi.web.controller.system;
import java.util.List;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -27,6 +30,7 @@
*
* @author ruoyi
*/
+@Api(tags = "閮ㄩ棬淇℃伅")
@RestController
@RequestMapping("/system/dept")
public class SysDeptController extends BaseController
@@ -67,7 +71,16 @@
deptService.checkDeptDataScope(deptId);
return success(deptService.selectDeptById(deptId));
}
-
+ /**
+ * 鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅
+ */
+ @ApiOperation("鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅鏃犳暟鎹潈闄�")
+ @PreAuthorize("@ss.hasPermi('system:dept:query')")
+ @GetMapping(value = "/NoDataScope/{deptId}")
+ public AjaxResult getInfoNoDataScope(@PathVariable Long deptId)
+ {
+ return success(deptService.selectDeptById(deptId));
+ }
/**
* 鏂板閮ㄩ棬
*/
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index d81d647..f1f289c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -235,12 +235,22 @@
*/
@PreAuthorize("@ss.hasPermi('system:user:list')")
@GetMapping("/deptTree")
+ @ApiOperation("鑾峰彇閮ㄩ棬鏍戝垪琛�")
public AjaxResult deptTree(SysDept dept) {
return success(deptService.selectDeptTreeList(dept));
}
/**
* 鑾峰彇閮ㄩ棬鏍戝垪琛�
*/
+ @GetMapping("/deptTreeNoDataScope")
+ @ApiOperation("鑾峰彇閮ㄩ棬鏍戝垪琛ㄦ棤鏁版嵁鏉冮檺")
+ public AjaxResult deptTree1(SysDept dept) {
+ return success(deptService.selectDeptTreeListNoDataScope(dept));
+ }
+ /**
+ * 鑾峰彇閮ㄩ棬鏍戝垪琛�
+ */
+ @ApiOperation("鑾峰彇閮ㄩ棬鏍戝垪琛╪oPerm")
@GetMapping("/deptTree/noPerm")
public AjaxResult deptTreeNoPerm(SysDept dept) {
return success(deptService.selectDeptTreeList(dept));
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
index 558d9ce..6aad0fe 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
@@ -20,7 +20,7 @@
* @return 閮ㄩ棬淇℃伅闆嗗悎
*/
public List<SysDept> selectDeptList(SysDept dept);
-
+ public List<SysDept> selectDeptListNoDataScope(SysDept dept);
/**
* 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭�
*
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
index 5234894..8482eec 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
@@ -32,7 +32,7 @@
* @return 閮ㄩ棬鏍戜俊鎭泦鍚�
*/
public List<TreeSelect> selectDeptTreeList(SysDept dept);
-
+ public List<TreeSelect> selectDeptTreeListNoDataScope(SysDept dept);
/**
* 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯
*
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
index 8ddf882..efd07f5 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -62,6 +62,12 @@
return buildDeptTreeSelect(depts);
}
+ @Override
+ public List<TreeSelect> selectDeptTreeListNoDataScope(SysDept dept) {
+ List<SysDept> depts = deptMapper.selectDeptListNoDataScope(dept);
+ return buildDeptTreeSelect(depts);
+ }
+
/**
* 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯
*
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
index 94aa515..c2627af 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -46,7 +46,23 @@
${params.dataScope}
order by d.parent_id, d.order_num
</select>
-
+ <select id="selectDeptListNoDataScope" parameterType="SysDept" resultMap="SysDeptResult">
+ <include refid="selectDeptVo"/>
+ where d.del_flag = '0'
+ <if test="deptId != null and deptId != 0">
+ AND dept_id = #{deptId}
+ </if>
+ <if test="parentId != null and parentId != 0">
+ AND parent_id = #{parentId}
+ </if>
+ <if test="deptName != null and deptName != ''">
+ AND dept_name like ('%${deptName}%')
+ </if>
+ <if test="status != null and status != ''">
+ AND status = #{status}
+ </if>
+ order by d.parent_id, d.order_num
+ </select>
<select id="selectDeptListByRoleId" resultType="Long">
select d.dept_id
from sys_dept d
diff --git a/server/mediamtx/ffmpeg.exe b/server/mediamtx/ffmpeg.exe
index a562fa0..1cefb79 100644
--- a/server/mediamtx/ffmpeg.exe
+++ b/server/mediamtx/ffmpeg.exe
Binary files differ
--
Gitblit v1.9.3