Pu Zhibing
2025-04-27 2e1766b31e889d9ee54d433476d031220dfda294
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);
@@ -91,9 +89,9 @@
         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());