Convierta video de 24 fps a 25, acorte la duración (sin duplicación de cuadros), mantenga el tono de audio

Tengo un video .mov con 24 fps y audio 5.1.

¿Es posible cambiar la velocidad de fotogramas de 24 a 25 fps sin remuestreo de fotogramas (sin duplicación/eliminación de fotogramas, solo una nueva interpretación de la velocidad de fotogramas) y mantener el mismo tono de audio?

Normalmente, esto se hace sin volver a muestrear los datos del cuadro, sino configurando el indicador de video de 24 a 25 fps; sin embargo, existe la necesidad de ajustar el audio para que se acorte. ¿Es posible hacerlo todo en una línea de comando ffmpeg o tal vez en más de una y preparar un archivo por lotes/bash para eso?

Además, ¿las capacidades de procesamiento de audio de ffmpeg son de calidad profesional o son de baja calidad en comparación con algoritmos profesionales como Avid Pro Tools y Adobe Audition?

Nota: Esta pregunta es diferente de esta . Convierta el video de 24 a 25 fps mientras mantiene la duración del video y el audio y también corrige el tono del audio .

Aquí quiero saber cómo hacer lo mismo pero acortando la duración real del video y ajustando el audio en consecuencia manteniendo el tono de manera profesional.

Cree una pregunta separada para su pregunta sobre la calidad de ffmpeg. Además, está confundiendo un códec (Prores) y un programa (Audition y ffmpeg).
Lo siento, tenía sueño, quería usar Avid Pro Tools
¿Qué códec de vídeo?
@Mulvya ¿importa? De todos modos h264. Para el códec de audio, me gustaría mantener el wav de audio pcm original como formato de salida también.

Respuestas (1)

Si su flujo de entrada no tiene B-pyramid, es decir, B-frames utilizados como referencias para otros B-frames, y su compilación ffmpeg tiene librubberband vinculado, entonces use los siguientes comandos:

#1 Extraer video a transmisión sin formato

ffmpeg -i in.mkv -c copy in.h264

#2 Reprogramar y procesar audio

ffmpeg -r 25 -i in.h264 -i in.mkv -map 0 -map 1:a -af rubberband=tempo=1.04166 -c:a pcm_s16le out.mkv

Si su flujo H264 tiene marcos B de referencia, entonces tendrá que usar mp4box como intermediario.

es decir

#2a Reprogramar video

mp4box -add in.h264#fps=25 -new in25.mp4

#2b Procesar audio y agregar video

ffmpeg -i in25.mp4 -i in.mkv -map 0 -map 1:a -af rubberband=tempo=1.04166 -c:a pcm_s16le out.mkv
¿No es posible lanzar un comando de un solo paso usando atempo? Estaba probando un comando como: ffmpeg -i input.mov -r 25 -c:v libx264 -preset ultrafast -crf 18 -c:a libfdk_aac -filter:v "setpts=0.96*PTS" -filter:a "atempo=1.0417" output.movSin embargo, no estoy seguro sobre el tono... De todos modos, disculpe la confusión inicial sobre h264 como video de entrada... generalmente mi entrada es un códec ProRes, DNxHD... (sería genial tener un comando que podría funcionar para cualquier tipo de entrada aunque)
atempoalterará el tono. Hay un nuevo filtro nativo que pronto se agregará a ffmpeg que permitirá cambios de tempo sin cambios de tono, pero su calidad no es tan buena como la banda elástica.
Ya veo, así que... ¿puedo usar banda elástica en un solo pasaje como sugerí para atempo?