Video en cámara lenta (slow motion) con ffmpeg
Otro de los trucos que podemos hacer con ffmpeg es poner un video en cámara lenta, también conocido como slow motion. El comando ésta vez es un poco más complejo, que no difícil, puesto que vamos a usar pipes; pero por supuesto al final explicaré cada parte.
Antes que nada es de aclarar que NO es posible hacerlo únicamente con ffmpeg, sino que es necesario utilizar el comando yuvfps. Asi que si no lo tienes instalado:
Otro dato a tener en cuenta es que, yuvfps lee y escribe los datos del video desde y hacia la entrada (stdin) y salida (stdout) estándar, respectivamente. Este es el motivo por el cual podemos/debemos usar pipes.
Ejemplo…
Supongamos que hemos descargado este video del Youtube, en donde una muchacha recibe un golpe fuertísimo, y queremos poner el video en cámara lenta. Pues bien, el comando sería el siguiente:
Después de ello, el video resultante (lentas.mpeg) quedaría algo así.
Explicación…
El comando en realidad se divide en tres partes principalmente:
- La primera es cuando convertimos el video original en uno con formato yuv4mpegpipe (
ffmpeg -i mujeres.flv -f yuv4mpegpipe -). Vemos que el nombre del archivo original es mujeres.flv, y con el comando-fle indicamos affmpegque el formato del video de salida seráyuv4mpegpipe. Por último, ponemos un guión (-) que representa el archivo de salida, y que será lo que pasemos como parámetro al siguiente comando… - El segundo comando (
yuvfps -s 15:1 -r 15:1) disminuye la velocidad del video a la mitad. Puesto queyuvfpslee la stdin, en realidad está leyendo el archivo que representa el guión del comando anterior. - Por último, reconvertimos el video generado por el comando anterior que está en formato
yuv4mpegpipe(ffmpeg -f yuv4mpegpipe -i – ), generando un archivo en formato MPEG2 (-f mpeg2video -r 29.97 lentas.mpeg).
8 Comentarios | deja el tuyo




