如何检测RTSP视频流是打开还是关闭

我正在使用JavaCV处理RTSP视频流。我要做的是抓取RTSP流的每一帧并将其写入JPG文件。这是我的代码:

package test;

import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.Java2DFrameConverter;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class PravegaCameraconnector
{
    public static void grabberVideoFramer() {
        Frame frame = null;
        int flag = 0;
        int max_value = 9999999;
        FFmpegFrameGrabber fFmpegFrameGrabber = new FFmpegFrameGrabber("rtsp://192.168.1.11:8554/stream");
        fFmpegFrameGrabber.setframeRate(30);
        try {
            fFmpegFrameGrabber.start();
            BufferedImage bImage = null;
            while (flag < max_value) {
                String fileName = "/home/rtsp/tmp/imgs/img_" + String.valueOf(flag) + ".jpg";
                File outPut = new File(fileName);
                frame = fFmpegFrameGrabber.grabImage();
                if (frame != null) {
                    ImageIO.write(FrameToBufferedImage(frame),"jpg",outPut);
                }
                flag++;
                if (flag == max_value) {
                    flag = 0;
                }
            }
            fFmpegFrameGrabber.stop();
        } catch (IOException E) {
            // nothing to do
        }
    }

    public static BufferedImage FrameToBufferedImage(Frame frame) {
        Java2DFrameConverter converter = new Java2DFrameConverter();
        BufferedImage bufferedImage = converter.getBufferedImage(frame);
        return bufferedImage;
    }

    public static void main(String[] args) {
        grabberVideoFramer();
    }
}

它可以工作,但是如果RTSP关闭,该代码将继续运行,以使CPU使用率为100%。

那么有可能检测RTSP流源是打开还是关闭?

while (flag < max_value) {
    if (RTSP source is down) {   // how to detect whether the source is down or not???
        break;
    }
    // grab frame and write it into JPG file
}
iCMS 回答:如何检测RTSP视频流是打开还是关闭

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2016434.html

大家都在问