FFMPEG - Convertir une vidéo en timelapse

15

J'utilise ffmpeg dans flash builder (script d'action 3) pour convertir une vidéo en un laps de temps de la vidéo. J'ai travaillé sur la façon d'utiliser les setpts pour ce faire, mais le fichier de sortie résultant est de la même longueur que l'entrée (avec juste la dernière image affichée après le laps de temps), je veux que la durée soit modifiée en fonction des paramètres passés à ffmpeg.

J'essaie d'abord le ci-dessous via la ligne de commande:

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

Toute aide serait grandement appréciée!

Sandwich
la source

Réponses:

20

Problème résolu. Je ne supprimais pas l'audio, donc il était probable qu'il jouait le fichier audio, presque vide, pendant toute la durée de la vidéo.

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

-an supprime l'audio de la vidéo.

Sandwich
la source
1

Plus de détails ici sur l'accélération de l'audio. Vous pouvez faire jusqu'à 2x, mais vous pouvez le tromper pour accélérer encore plus ( source ):

Accélérer / ralentir l'audio

Vous pouvez accélérer ou ralentir l' audio avec le filtre audio atempo. Pour doubler la vitesse de l'audio:

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

Le filtre atempo est limité à l'utilisation de valeurs comprises entre 0,5 et 2,0 (il peut donc le ralentir à pas moins de la moitié de la vitesse d'origine et accélérer jusqu'à au plus le double de l'entrée). Si vous en avez besoin, vous pouvez contourner cette limitation en enchaînant plusieurs filtres atempo ensemble. Ce qui suit avec quadruple la vitesse audio:

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

En utilisant un filtre graphique complexe, vous pouvez accélérer la vidéo et l'audio en même temps:

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

Soleil
la source