1

我通过 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();
}
4

0 回答 0