ÎļþÃû´Ó ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java ÐÞ¸Ä |
| | |
| | | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.media.domain.*; |
| | | import com.ruoyi.media.mapper.VtduMapper; |
| | | import com.ruoyi.media.service.IMediaService; |
| | |
| | | **/ |
| | | @Service |
| | | @Slf4j(topic = "cmd") |
| | | public class MediaService implements IMediaService { |
| | | public class MediaServiceImpl implements IMediaService { |
| | | @Resource |
| | | VtduMapper vtduMapper; |
| | | @Resource |
| | |
| | | public String addPath(String name, String rtspPath, String mode, String isCode) { |
| | | String rtspUrl = "rtsp://" + mediamtxHost + ":7554/" + name; |
| | | Conf mediaInfo = new Conf(); |
| | | String rootPath = System.getProperty("user.dir").replaceAll("\\\\", "/"); |
| | | String rootPath = System.getProperty("user.dir").replaceAll("\\\\", "/")+ "/lib/mediamtx/"; |
| | | //-vcodec libx264 //æå®è§é¢ç¼ç å¨ä¸º libx264ï¼ä½¿ç¨ H.264 ç¼ç æ ¼å¼è¿è¡è§é¢å缩 |
| | | //-preset ultrafast //--presetç忰䏻è¦è°èç¼ç é度åè´¨éçå¹³è¡¡ï¼æultrafastï¼è½¬ç é度æå¿«ï¼è§é¢å¾å¾ä¹ææ¨¡ç³ï¼ãsuperfastãveryfastãfasterãfastãmediumãslowãslowerãveryslowãplaceboè¿10个é项ï¼ä»å¿«å°æ
¢ |
| | | //-r 25 //设置è¾åºè§é¢ç帧ç为 25 帧/ç§ |
| | |
| | | //GPU硬解ç ç¼ç -hwaccel cuvid -c:v h264_cuvid 使ç¨cudaè§£ç -c:v h264_nvenc 使ç¨cudaç¼ç |
| | | //String cmd = rootPath + "/lib/mediamtx/" + "ffmpeg -hwaccel cuvid -c:v h264_cuvid -rtsp_transport udp -i " + rtspPath + " -c:v h264_nvenc -r 25 -threads 4 -b:v 2048k -bf 0 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH"; |
| | | if (isCode.equals("1")) { |
| | | String cmd = rootPath + "/lib/mediamtx/" + "ffmpeg -rtsp_transport tcp -i " + rtspPath + " -vcodec libx264 -preset:v ultrafast -r 25 -threads 6 -b:v 1024k -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH"; |
| | | String cmd = "ffmpeg -rtsp_transport tcp -i " + rtspPath + " -vcodec libx264 -preset:v ultrafast -r 25 -threads 6 -b:v 1024k -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH"; |
| | | if (!softwareDecoding) { |
| | | cmd = rootPath + "/lib/mediamtx/" + "ffmpeg -hwaccel cuvid -c:v h264_cuvid -rtsp_transport tcp -i " + rtspPath + " -c:v h264_nvenc -r 25 -threads 6 -b:v 2048k -bf 0 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH"; |
| | | cmd = "ffmpeg -hwaccel cuvid -c:v h264_cuvid -rtsp_transport tcp -i " + rtspPath + " -c:v h264_nvenc -r 25 -threads 6 -b:v 2048k -bf 0 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH"; |
| | | } |
| | | if (mode.equals("1")) { |
| | | mediaInfo.setRunondemand(cmd); |