如何使用Xuggler设置视频中每个帧的持续时间?
我想使用Xuggler通过我的Java应用程序创建视频。我想要的是非常简单。我有一些JPG文件,我想将它们编码成一个视频。我已经使用一些有用的示例代码完成了。我的问题是如何设置每帧的持续时间?
例如,如果我希望每张照片投影10秒。我将在下面发布我到目前为止实际完成的示例代码。
for (int index = 0; index < filenames.size(); index++) {
if(filenames.get(index).toString().contains("jpg")){
System.err.println(filenames.get(index).toString());
// take the screen shot
// BufferedImage screen = getDesktopScreenshot();
BufferedImage screen = ImageIO.read(filenames.get(index));
// convert to the right image type
BufferedImage bgrScreen = convertToType(screen,BufferedImage.TYPE_3BYTE_BGR);
int i=0;
while(i<FRAME_RATE){
writer.encodeVideo(0, bgrScreen, System.nanoTime() - startTime,
TimeUnit.NANOSECONDS);
++i;
}
// sleep for frame rate milliseconds
try {
Thread.sleep((long) (1000 / FRAME_RATE));
}
catch (InterruptedException e) {
// ignore
}
}
}
答案 0 :(得分:1)
我想要的(使用Xuggler设置视频中每帧的持续时间)非常简单
不,不是。描述起来很简单。我所知道的视频格式不支持每帧的不同持续时间。
例如,如果我希望每张图片投影10秒
但这与“设置每个框架的持续时间”不同。一些视频格式允许非常低的帧速率(我认为,不确定)。如果做不到这一点,请根据需要多次添加每个图像以填充所需的“10秒”。