Estoy tratando de aplicar el efecto de cámara lenta a una serie de videos. Y además, esos videos serán escalados, rellenados y desvanecidos. El siguiente es el comando que estoy usando para aplicar cámara lenta.
ffmpeg -i 1.mp4 -filter_complex "
[0:v]trim=0:5,setpts=PTS-STARTPTS[tv1];
[0:v]trim=5:7,setpts=PTS-STARTPTS[tv2];
[0:v]trim=start=7,setpts=PTS-STARTPTS[tv3];
[tv2]setpts=PTS*2[slow];
[tv1][slow][tv3]concat=n=3:v=1:a=0[out]" -map [out] -c:v libx264 test.mp4
Tengo dos preguntas.
- Refiriéndose a
[tv2]
si está recortado y aplicado el efecto de cámara lenta a partir del 5 ° segundo, en realidad aplica el efecto desde el 4 ° segundo. ¿Cuál es la razón para esto?
El siguiente es el comando que estoy usando para otro procesamiento justo después de concatenar en el comando anterior.
[concat0]scale=iw*min(1280/iw\,720/ih):ih*min(1280/iw\,720/ih),pad=1280:720:(1280-iw*min(1280/iw\,720/ih))/2:(720-ih*min(1280/iw\,720/ih))/2,format=pix_fmts=yuva420p,fade=t=out:st=16:d=2:alpha=1,setpts=expr=PTS-STARTPTS+10/TB[va0];
Allí necesito especificar setpts
y estoy usando la duración acumulativa de los videos antes del video actual. Aquí está el comando completo que estoy usando para ello.
- ¿Cómo puedo calcular la duración del video después de aplicar el efecto de cámara lenta? Por ejemplo, ¿cuál sería el incremento de la duración del resultado del video del primer comando que mencioné aquí en segundos o incluso microsegundos?
-an
. Para el segundo punto, necesitaba un cálculo matemático para obtener la duración.