Создание видео из нескольких изображений
С помощью jcodec (http://jcodec.org/) у меня получилось создать видео из нескольких изображений. Как сделать так, чтобы каждое изображение в видеофайле показывалось определенное время. Сейчас изображения в видео показываются мгновенно.
List<BufferedImage> listBI = new ArrayList();
listBI.add(ImageIO.read(new File("C:\\1.jpg")));
listBI.add(ImageIO.read(new File("C:\\2.jpg")));
AWTSequenceEncoder encoder = null;
try {
encoder = AWTSequenceEncoder.createSequenceEncoder(new File("E:\\4.mp4"), 25); // 25 fps
for (BufferedImage image : listBI) {
encoder.encodeImage(image);
}
} catch (Exception e) {
System.out.println("Fail to generate video!");
}
encoder.finish();
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Для того, чтобы кадры показывались по t секунд, можно добавлять каждый в количестве t * frames_per_sec копий (frames_per_sec - частота кадров). При этом размер видео должен остаться небольшим, т.к. межкадровое сжатие увидит, что соседние кадры подобны друг другу.
for (BufferedImage image : listBI) {
for (int i = 0; i < t * 25; i++)
encoder.encodeImage(image);
}