У меня проблемы с таймаутом, когда нет источника видео в формате RTP.
Если я выполняю код, а видео нет, программа все время ожидает в функции grabber.Start()
.
FFmpegFrameGrabber grabber;
try{
Frame img;
grabber = new FFmpegFrameGrabber("rtp://" + ip + ":1234");
grabber.setOption("stimeout", String.valueOf(5*1000000));
grabber.Start ();
img = grabber.grab();
Java2DFrameConverter converter = new Java2DFrameConverter();
BufferedImage bufferedImag;
bufferedImag = converter.convert(img);
grabber.stop();
}catch (FrameGrabber.Exception ex) {
throw new IOException("Could not open video file ", ex);
}
Как я уже говорил, когда видео существует, все работает отлично, но при отсутствии источника видео программа остается в grabber.start (), и я не могу выбраться оттуда.
Мне бы хотелось, чтобы по прошествии 5 секунд генерировалось исключение и выход из функции grabber.satart()
.Я использую grabber.setOption("stimeout", String.valueOf (5*1000000)); t
, чтобы управлять им, но не работаю в RTP.
Я проверил работу с источником видео RTSP, и код работает отлично, то есть через 5 секунд он генерирует исключение ...Но мне нужно контролировать источник видео RTP.