ruoyi-modules/ruoyi-system/pom.xml
@@ -135,12 +135,12 @@ <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.5.10</version> <version>1.5.11</version> </dependency> <dependency> <groupId>org.bytedeco</groupId> <artifactId>ffmpeg</artifactId> <version>6.1.1-1.5.10</version> <version>7.1-1.5.11</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/JavaCVStreamUtil.java
@@ -65,9 +65,7 @@ //视频抓帧 grabber = new FFmpegFrameGrabber(inputUrl); grabber.setOption("rtsp_transport", "tcp"); // 正确设置超时时间 grabber.setOption("timeout", "120000"); grabber.setVideoCodec(avcodec.AV_CODEC_ID_H264); grabber.start(); grabberMap.put(deviceNumber, grabber); @@ -86,14 +84,14 @@ recorder.setGopSize((int) grabber.getVideoFrameRate()); // CRF 是一种用于控制视频/音频质量的参数,它允许在保持目标质量的同时动态地调整比特率。较低的CRF值表示更高的质量,但也可能导致较大的文件大小 recorder.setAudioOption("crf", "23"); //设置音频编码为AAC if (grabber.getAudioChannels() > 0) { recorder.setAudioChannels(grabber.getAudioChannels()); recorder.setAudioBitrate(grabber.getAudioBitrate()); recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC); recorder.setAudioCodec(grabber.getAudioCodec()); } recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264); recorder.setVideoCodec(avcodec.AV_CODEC_ID_FLV1); //将解码后的帧记录到输出文件中 //recorder.start通常用于处理已经解码成图像的视频数据 recorder.start(); @@ -108,12 +106,9 @@ if (!statusMap.get(deviceNumber)) { break; } Thread.sleep(500); } } catch (FrameGrabber.Exception | FrameRecorder.Exception e) { e.printStackTrace(); } catch (InterruptedException e) { throw new RuntimeException(e); } finally { close(deviceNumber, null); } @@ -191,7 +186,7 @@ recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC); } recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264); recorder.setVideoCodec(avcodec.AV_CODEC_ID_FLV1); //设置音频编码为AAC if (grabber.getAudioChannels() > 0) { recorder.setAudioChannels(grabber.getAudioChannels()); ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/server/AuthorizeMsgService.java
@@ -1,6 +1,7 @@ package com.ruoyi.dataInterchange.server; import com.alibaba.fastjson.JSON; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.dataInterchange.dao.UPAuthorizeMsgStartupDao; import com.ruoyi.dataInterchange.model.UPAuthorizeMsgStartup; import com.ruoyi.dataInterchange.util.jtt809.packet.common.OuterPacket; @@ -43,6 +44,8 @@ log.info("视频时效口令上报:" + JSON.toJSONString(startup)); startup.setInferiorPlatformId(out.getGnsscenterId()); startup.setCreateTime(LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8))); upAuthorizeMsgStartupDao.save(startup); if(StringUtils.isNotEmpty(startup.getAuthorizeCode1())){ upAuthorizeMsgStartupDao.save(startup); } } }