Después de una semana de la investigación que he escrito yo mismo código muy simple usando binarios ffmprg:
if(frameCount<628){
saveFrame("temp/anim_#####.png");
}else if(frameCount == 628){
println("Saving file!");
processBuilder = new ProcessBuilder("G:/.../ffmpg/bin/ffmpeg.exe", "-r", "60", "-i",
"C:/.../temp/anim_%05d.png", "-c:v", "libx264",
"-r", "30", "-pix_fmt", "yuv420p", "C:/.../test.mp4");
try {
process = processBuilder.start();
} catch (Exception e) {
e.printStackTrace();
}
}
Por supuesto, es necesario ajustar los caminos a los archivos binarios y ffmpeg (https://www.ffmpeg.org/download.html). Debería ser una versión de procesamiento independiente, ya que usa solo saveFrame y llama a los binarios externos para generar video. Disfrute;)
'saveFrame()' es definitivamente el camino a seguir. Puedes apilar esos fotogramas en Quicktime Pro <7.6 si lo tienes, que tiene una buena característica Open Image Sequence y luego Exportar a un quicktime, o puedes probar ffmpeg para unirlos. http://ffmpeg.org/ – ericsoco
Tuve el mismo problema hace un mes y usé la técnica saveFrame() + Quicktime también –
Sí, esto funcionó bien para mí. 'saveFrame()' combinado con ffmpeg. – alnorth29