我通过 JCodec 应用以下代码创建了一个视频。但它在闪烁。我试图将 fps 从 24 更改为 30 和 60,但仍然有闪烁的副作用。我用不同的源图形格式 png 和 jpg 进行了验证。尤其是当源图像的背景较暗时会出现副作用。
JCodec代码:
List<String> images = new ArrayList<>();
File mp4file = new File(String.format("upload-dir/%d/%s", id, id + ".mp4"));
...
try {
AWTSequenceEncoder sequenceEncoder = new AWTSequenceEncoder(NIOUtils.writableChannel(mp4file),
Rational.R(60, 1));
int imageDelay = 4 * 60;
for (String image: images) {
BufferedImage img = ImageIO.read(new File(image));
for (int i = 0; i < imageDelay; i++)
sequenceEncoder.encodeImage(img);
}
sequenceEncoder.finish();
} catch (IOException e) {
e.printStackTrace();
}