<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv</artifactId>
<version>1.5.5</version>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>ffmpeg-platform</artifactId>
<version>4.3.2-1.5.5</version>
</dependency>
public static void main(String[] args) throws IOException {
String rtspUrl= "rtsp://user:pass@IP/h264/ch1/main/av_stream";
FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(rtspUrl);
grabber.setOption("rtsp_transport", "tcp"); // 使用tcp的方式,不然会丢包很严重
grabber.setImageWidth(1280);
grabber.setImageHeight(720);
System.out.println("grabber start");
grabber.start();
//1.播放视频
CanvasFrame canvasFrame = new CanvasFrame("摄像机");
canvasFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
canvasFrame.setAlwaysOnTop(true);
OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat();
while (true){
Frame frame = grabber.grabImage();
Mat mat = converter.convertToMat(frame);
canvasFrame.showImage(frame);
}
}
如果是SpringBoot项目报错HeadlessException,加上这段
SpringApplicationBuilder builder = new SpringApplicationBuilder(Application.class);
final ApplicationContext applicationContext = builder.headless(false).run(args);