[英]How to improve the quality of a video made with Xuggler
我正在使用大量的png文件来创建视频。我的问题是,尽管png文件的质量很好,但是视频帧的质量却不够好。你知道我如何解决这种问题吗?事情? 这是我编写的与此相关的代码:
private void createVideo() throws IOException{
IMediaWriter writer = ToolFactory.makeWriter(outputFilename);
Dimension screenBounds = Toolkit.getDefaultToolkit().getScreenSize();
writer.addVideoStream(0, 0, ICodec.ID.CODEC_ID_MPEG4,screenBounds.width/2, screenBounds.height/2);
long startTime = System.nanoTime();
File directory = new File(sourceFolder);
ArrayList<File> filenames = new ArrayList<File> ();
File[] list= directory.listFiles();
for(int i=0;i<list.length;i++){
filenames.add(list[i]);
}
for (int index = 0; index < filenames.size(); index++) {
if(filenames.get(index).toString().contains("png")){
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) {
}
}
}
writer.close();
}
解决方案:问题是这条线
writer.addVideoStream(0, 0, ICodec.ID.CODEC_ID_MPEG4,screenBounds.width/2, screenBounds.height/2);
删除宽度和高度后,我不应该将其除以2,其质量就像是png本身一样。
我不知道您所说的in a good quality
是什么意思,但是假设您的意思是模糊的,那可能就是
与您要编码的尺寸相比,PNG图像的尺寸较小。
这意味着更少的像素可以编码到视频流中。 这将导致像素散开,因此看起来质量较差。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.