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