java使用opencv拉取rtsp流

一:配置opencv,網絡上面很多配置opencv的文章,這裏就不多說了,https://blog.csdn.net/sinat_38102206/article/details/81156589
二:上代碼

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


     

 @Test
    public void testzc() throws FrameGrabber.Exception {
        String file = "rtsp://192.168.2.38:5554/2";
        FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(file);
        grabber.setOption("rtsp_transport", "tcp"); // 使用tcp的方式,不然會丟包很嚴重
        // 一直報錯的原因!!!就是因爲是 2560 * 1440的太大了。。
        grabber.setImageWidth(960);
        grabber.setImageHeight(540);
        System.out.println("grabber start");
        grabber.start();
        CanvasFrame canvasFrame = new CanvasFrame("sdsaf");
        canvasFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        canvasFrame.setAlwaysOnTop(true);
        OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat();
       // OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage();
        while (true){
            Frame frame = grabber.grabImage();
            opencv_core.Mat mat = converter.convertToMat(frame);
            canvasFrame.showImage(frame);
        }

    }

三:看效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章