gpt4 book ai didi

java - 如何提高使用 Xuggler 制作的视频的质量

转载 作者:行者123 更新时间:2023-12-01 04:37:46 26 4
gpt4 key购买 nike

我正在使用一堆 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 本身一样。

最佳答案

我不知道你所说的质量好是什么意思,但假设你的意思是它看起来很模糊,可能是这样

PNG 图像的尺寸比您想要编码的尺寸要小。

这意味着编码到视频流中的像素更少。这将导致像素分散并因此看起来质量较差。

关于java - 如何提高使用 Xuggler 制作的视频的质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17087721/

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