gpt4 book ai didi

java - 为什么 Bufferedimage 在几次迭代后等于 null?

转载 作者:行者123 更新时间:2023-12-02 05:15:36 24 4
gpt4 key购买 nike

经过我的 for 循环几次迭代后,Bufferedimage 变量只收到一个 null。前 2-3 次通常没问题。

我尝试了不同的 mp4 文件,看看是否只是视频有问题。

public void vidimg()throws IOException{
Java2DFrameConverter converter = new Java2DFrameConverter();
FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(mp4Path);

Frame frame;
int imgNum = 0;

frameGrabber.start();

System.out.println("Video has " + frameGrabber.getLengthInFrames() + " frames and has frame rate of "+ frameGrabber.getFrameRate());

try {
for(int i=frameJump;i<=frameGrabber.getLengthInFrames();i+=frameJump){
imgNum++;
frameGrabber.setFrameNumber(i);
frame = frameGrabber.grab();
BufferedImage bi = converter.convert(frame);
String path = imgPath + File.separator + imgNum + ".jpg";
ImageIO.write(bi, imgType, new File(path));
}
frameGrabber.stop();
} catch (Exception e) {
e.printStackTrace();
}
}

我预计每 2 帧视频接收一次图像,但我收到了 Bufferedimage 的空错误。

最佳答案

您是否认为这是一个没有图形内容的信息框架?

某些数据流没有图形内容,如此处简要提及

https://en.wikipedia.org/wiki/MPEG-4_Part_14

通过查看更好、更深入的格式规范可以找到更多信息

这个问题有更好的指针和规范链接: MP4 File Format Specification

关于java - 为什么 Bufferedimage 在几次迭代后等于 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56296018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com