Tengo un archivo de imagen grande de 8k y 360 grados que rendericé recientemente. Para fines de exhibición, quiero convertir esto en unos pocos minutos de video para que la gente pueda verlo en el visor VR 360 de YouTube. Sin embargo, esto está resultando ser un proceso extremadamente lento.
Actualmente estoy usando ffmpeg:ffmpeg -loop 1 -i input.png -pix_fmt yuv420p -c:v libx264 -preset ultrafast -r 24 -threads 128 -t 1 output.mp4
Esto solo me da alrededor de 1 FPS en mi computadora portátil (razonablemente rápida) y algunos más en mi CPU de escritorio más potente. Intenté usar GPU, sin embargo, FFMPEG falló al decir que mi tarjeta GTX no podía manejar la imagen de 8192x8192. Entonces, actualmente estoy atrapado con horas de codificación para unos minutos de video. ¿Existe alguna forma más rápida de hacerlo?
Por cierto, estoy usando Linux, tengo acceso a una tarjeta de juego (aunque puede que no sea útil, como se mencionó anteriormente). Estoy limitado a software libre/FOSS en este momento, no aplicaciones pagas. Preferiblemente me gustaría hacer esto en ffmpeg. Tengo una unidad SSD NVME, por lo que no espero que la lectura de datos sea un cuello de botella, pero ¿tal vez lo sea?
Respuesta1
Si es solo una imagen fija, simplemente renderice un segmento corto y luego extraiga un archivo más grande.
ffmpeg -loop 1 -framerate 24 -i input.png -pix_fmt yuv420p -c:v libx264 -preset veryfast -t 5 5s.mp4
y luego
ffmpeg -stream_loop 50 -i 5s.mp4 -c copy 255s.mp4
para obtener un archivo de 255 segundos.