下面是代码片段:
public static void main(String[] args) {
File file = new File("C:/Users/Diego/Desktop/tc-images/image0.jpg");
BufferedImage img = null;
try {
img = ImageIO.read(file);
} catch (IOException e1) {
e1.printStackTrace();
}
IplImage image = IplImage.createFrom(img);
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder("C:/Users/Diego/Desktop/tc-images/test.mp4",1920,1080);
try {
recorder.setVideoCodec(13);
recorder.setFormat("mp4");
recorder.setPixelFormat(0);
recorder.setFrameRate(25);
recorder.start();
for (int i=0;i<100;i++){
recorder.record(image);
}
recorder.stop();
}
catch (Exception e){
e.printStackTrace();
}
}
如果有人告诉我出了什么事,我将不胜感激。提前感谢您的帮助。
有类似的问题..我的问题似乎是没有正确设置pixelFormat。我最终把它设置为
org.bytedeco.javacpp.avutil.AV_PIX_FMT_RGB32_1
它现在正确地出口!
实际上,从我在代码中看到的情况来看,我从来没有调用recorder.setPixelFormat();
相反,我设置了像素格式,同时记录如下:
recorder.record(image,org.bytedeco.javacpp.avutil.AV_PIX_FMT_RGB32_1);
如果这不起作用,我将尝试avutil类源代码中的各种格式!