Java 无法使用HLS流运行FFmpegFrameGrabber

Java 无法使用HLS流运行FFmpegFrameGrabber,java,javacv,Java,Javacv,我需要使用FFmpegFrameGrabber将实时流http livestreaming转换为10秒的图像和音频片段。在下面的代码中,我总是得到grabbedimage null。我需要一些关于使用javacv下载实时流的帮助 URL streamUrl = new URL("http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"); URLConnection

我需要使用FFmpegFrameGrabber将实时流http livestreaming转换为10秒的图像和音频片段。在下面的代码中,我总是得到grabbedimage null。我需要一些关于使用javacv下载实时流的帮助

URL streamUrl = new URL("http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4");

URLConnection connection = streamUrl.openConnection();

InputStream is2 = connection.getInputStream();
FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(is2);
Frame grabbedImage = null;
grabber.start();
grabber.setFrameRate(grabber.getFrameRate());

Java2DFrameConverter c = new Java2DFrameConverter();
while ((grabbedImage = grabber.grab()) != null) {
    ImageIO.write(c.convert(grabbedImage), "png",
            new File("/mnt/test/" + System.currentTimeMillis() + ".png"));
}
grabber.close();

因为您只需要转码,所以像这样使用ffmpeg程序可能更容易:谢谢@SamuelAudet您给出的示例是保存在磁盘上的视频。FFmpegFrameGrabber是否直接与HLS这样的实时流一起工作?当前使用ImageIO.write行获取错误,如“image==null!”。有什么方法可以避免这种情况吗?是的,它也适用于HTTP等URL。