FFMPEG - Convierte un video en un lapso de tiempo

15

Estoy usando ffmpeg en Flash Builder (Action Script 3) para convertir un video en un lapso de tiempo del video. He resuelto cómo usar setpts para hacer esto, pero el archivo de salida resultante tiene la misma longitud que la entrada (solo se muestra el último fotograma después del lapso de tiempo), quiero que la duración se cambie en función de la configuración aprobada ffmpeg

Estoy intentando lo siguiente a través de la línea de comando primero:

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4

Cualquier ayuda sería muy apreciada!

Emparedado
fuente

Respuestas:

19

Problema resuelto. No estaba eliminando el audio, por lo que presumiblemente estaba reproduciendo el archivo de audio, casi vacío, durante todo el tiempo del video.

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4

-an elimina el audio del video.

Emparedado
fuente
1

Aquí hay más detalles sobre cómo acelerar el audio. Puede hacer hasta 2 veces, pero puede engañarlo para acelerar aún más ( fuente ):

Acelerar / ralentizar el audio

Puede acelerar o ralentizar el audio con el filtro de audio atempo. Para duplicar la velocidad del audio:

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

El filtro atempo se limita al uso de valores entre 0.5 y 2.0 (por lo que puede reducirlo a no menos de la mitad de la velocidad original y acelerar a no más del doble de la entrada). Si lo necesita, puede sortear esta limitación al unir varios filtros atempo. Lo siguiente con cuadruplica la velocidad del audio:

ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv

Con un filtro gráfico complejo, puede acelerar el video y el audio al mismo tiempo:

ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv

Dom
fuente