Je sais que c'est une vieille question mais aucune des réponses actuelles n'est plus recommandée.
Remuxage sans perte (vidéo)
Comme indiqué dans les commentaires, il existe un moyen de le faire lorsque la vidéo n'a pas
à être ré-encodée. Il nécessite le remuxage du fichier dans un format de conteneur MKV différent, puis le remuxage dans un MP4. Voici un exemple qui change une vidéo en 12 images / seconde:
mkvmerge --default-duration 0:12fps --fix-bitstream-timing-information 0 original-video.mp4 -o temp-video.mkv
ffmpeg -i temp-video.mkv -c:v copy slow-video.mp4
Si la vidéo contient de l'audio, vous pouvez également la ralentir sans modifier la hauteur, mais ce n'est pas une conversion sans perte. L'exemple ci-dessous suppose que la vidéo source était de 24 images / seconde, de sorte que l'audio devait être ralenti à la moitié (0,5) de la vitesse à l'aide du filtre atempo de ffmpeg .
mkvmerge --default-duration 0:12fps --fix-bitstream-timing-information 0 original-video.mp4 -o temp-video.mkv
ffmpeg -i temp-video.mkv -c:v copy -c:a aac -filter:a "atempo=0.5" slow-video-with-audio.mp4
FFMPEG Wiki Guidance
Ceci est le guide du wiki ffmpeg . Notez que toutes ces options nécessitent un ré-encodage de la vidéo.
Accélérer / ralentir la vidéo
Vous pouvez modifier la vitesse d'un flux vidéo à l'aide du filtre vidéo setpts. Notez que dans les exemples suivants, le flux audio n'est pas modifié, il devrait donc idéalement être désactivé avec -an.
Pour doubler la vitesse de la vidéo, vous pouvez utiliser:
ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
Le filtre fonctionne en modifiant l'horodatage de présentation (PTS) de chaque image vidéo. Par exemple, s'il y a deux images successives affichées aux horodatages 1 et 2 et que vous souhaitez accélérer la vidéo, ces horodatages doivent devenir respectivement 0,5 et 1. Il faut donc les multiplier par 0,5.
Notez que cette méthode supprimera les images pour atteindre la vitesse souhaitée. Vous pouvez éviter les pertes d'images en spécifiant une fréquence d'images de sortie plus élevée que l'entrée. Par exemple, pour passer d'une entrée de 4 FPS à une entrée accélérée jusqu'à 4x (16 FPS):
ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.25*PTS" output.mkv
Pour ralentir votre vidéo, vous devez utiliser un multiplicateur supérieur à 1:
ffmpeg -i input.mkv -filter:v "setpts=2.0*PTS" output.mkv
Lisse
Vous pouvez lisser la vidéo lente / rapide avec le filtre vidéo minterpolate. Ceci est également connu comme "interpolation de mouvement" ou "flux optique".
ffmpeg -i input.mkv -filter "minterpolate='mi_mode=mci:mc_mode=aobmc:vsbmc=1:fps=120'" output.mkv
D'autres options incluent slowmoVideo et Butterflow. 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'à pas plus du 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