FFMPEG - Converti un video in un timelapse


15

Sto usando ffmpeg in Flash Builder (Action Script 3) per convertire un video in un intervallo di tempo del video. Ho scoperto come usare i setpt per fare questo, ma il file di output risultante ha la stessa lunghezza dell'input (con solo l'ultimo frame visualizzato dopo il lasso di tempo), voglio che la durata sia cambiata in base alle impostazioni passate a ffmpeg.

Sto provando prima la riga di comando seguente:

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

Qualsiasi aiuto sarebbe molto apprezzato!

Risposte:


19

Problema risolto. Non stavo rimuovendo l'audio, quindi presumibilmente stava riproducendo il file audio, quasi vuoto, per tutto il tempo del video.

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

-an rimuove l'audio dal video.


1

Alcuni ulteriori dettagli qui per accelerare l'audio. Puoi fare fino a 2x, ma puoi ingannarlo per accelerare ancora di più ( fonte ):

Accelerare / rallentare l'audio

Puoi accelerare o rallentare l' audio con il filtro audio atempo. Per raddoppiare la velocità dell'audio:

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

Il filtro atempo è limitato all'uso di valori compresi tra 0,5 e 2,0 (quindi può rallentarlo a non meno della metà della velocità originale e accelerare fino a non più del doppio dell'input). Se necessario, puoi aggirare questa limitazione mettendo insieme più filtri atempo. Quanto segue con quadrupla la velocità audio:

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

Utilizzando un filtro grafico complesso, è possibile velocizzare video e audio contemporaneamente:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.