
Entonces, necesito ahorrar mucho espacio en mi disco duro, así que estoy codificando archivos PNG en videos sin pérdidas para poder eliminar los archivos PNG. Estoy codificando uno a 72 fps y otro ligeramente ralentizado a 60 fps.
Digamos que este es el comando que uso para codificar a 72 fps:
ffmpeg -framerate 72 -i png/%%06d.PNG -i audio/72.m4a^
-c:v libx265 -c:a copy -pix_fmt yuv444p -crf:v 0^
video/72.mkv
Este es el comando de 60 fps:
ffmpeg -framerate 60 -i png/%%06d.PNG -i audio/60.m4a^
-c:v libx265 -c:a copy -pix_fmt yuv444p -crf:v 0^
video/60.mkv
¿Cuál sería el equivalente del comando de 60 fps si quiero codificarlo desde el archivo de video de 72 fps en lugar de los archivos PNG ya que fueron eliminados, pero reducir la velocidad del video a 60 fps sin perder fotogramas? Si es posible, quiero decirle que codifique exactamente a 60 fps sin usar el setpts
filtro de video y/o copie la transmisión de video a una velocidad de cuadros diferente (lo cual no estoy seguro de si es posible).
Respuesta1
El comando básico es
ffmpeg -itsscale 1.2 -i video/72.mkv -i audio/60.m4a^
-map 0:v -map 1 -c copy video/60.mp4
Esto utiliza la opción de entrada itsscale
para cambiar la escala de las marcas de tiempo, donde 1.2
está la representación decimal de 72/60
. Tenga en cuenta que esto no proporciona un nuevo valor de velocidad de fotogramas al escritor de salida, por lo que para formatos como MKV, mostrará la velocidad anterior con ffprobe, pero reproducirá a la nueva velocidad. Con MP4, deberías ver la nueva tarifa.