javacv需要添加的依赖(内容比较多) 

        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacv-platform</artifactId>
            <version>1.5.6</version>
        </dependency>

 简单的demo

	public void getPicture() {
		try {
			FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(rtspUrl);
			log.info("创建grabber成功");
			grabber.setOption("rtsp_transport", "tcp");
			grabber.setImageWidth(frameWidth);
			grabber.setImageHeight(frameHeight);
			FFmpegLogCallback.set();
			grabber.start();
			log.info("grabber.start");
			Java2DFrameConverter java2DFrameConverter = new Java2DFrameConverter();
			while (true){
				Frame frame = grabber.grabImage();
				if (null == frame) {
					continue;
				}
				BufferedImage bufferedImage = java2DFrameConverter.getBufferedImage(frame);
				byte[] bytes = imageToBytes(bufferedImage, "jpg");
				byte2image(bytes);
			}
		} catch (FFmpegFrameGrabber.Exception e) {
			e.printStackTrace();
		} finally {
			try {
				grabber.stop();
			} catch (FFmpegFrameGrabber.Exception e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * byte数组到图片
	 *
	 * @param data
	 */
	public void byte2image(byte[] data) {
		if (data.length < 3) {
			return;
		}
		try (FileImageOutputStream imageOutput = new FileImageOutputStream(new File("D:\\excel\\" + num + ".png"));){
			
			imageOutput.write(data, 0, data.length);
			
			log.info("图片保存成功" + num);
            num++;
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐