So che questa è una vecchia domanda, ma nessuna delle risposte attuali è più raccomandata.
Remuxing (video) senza perdite
Come notato nei commenti c'è un modo per farlo in cui il video non
deve essere ricodificato. Richiede il rimodellamento del file in un formato di contenitore diverso MKV e il successivo riposizionamento in un MP4. Ecco un esempio che modifica un video in 12 frame / secondo:
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
Se il video contiene audio si può anche rallentare che verso il basso, senza cambiare il passo, ma è non è una conversione senza perdita di dati. L'esempio che segue presuppone che il video sorgente fosse di 24 fotogrammi / secondo, quindi l'audio doveva essere rallentato alla metà (0,5) velocità usando il filtro atempo di 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
Guida Wiki FFMPEG
Questa è la guida dal wiki di ffmpeg . Tieni presente che tutte queste opzioni richiedono la ricodifica del video.
Accelerare / rallentare il video
Puoi cambiare la velocità di un flusso video usando il filtro video setpt. Si noti che nei seguenti esempi, il flusso audio non viene modificato, quindi dovrebbe idealmente essere disabilitato con -an.
Per raddoppiare la velocità del video, puoi utilizzare:
ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
Il filtro funziona modificando il timestamp di presentazione (PTS) di ciascun fotogramma video. Ad esempio, se ci sono due fotogrammi successivi mostrati nei timestamp 1 e 2 e si desidera velocizzare il video, questi timestamp devono diventare rispettivamente 0,5 e 1. Pertanto, dobbiamo moltiplicarli per 0,5.
Si noti che questo metodo farà cadere i frame per raggiungere la velocità desiderata. È possibile evitare i frame rilasciati specificando un frame rate di output più elevato rispetto all'input. Ad esempio, per passare da un input di 4 FPS a uno che viene velocizzato fino a 4x (16 FPS):
ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.25*PTS" output.mkv
Per rallentare il tuo video, devi utilizzare un moltiplicatore maggiore di 1:
ffmpeg -i input.mkv -filter:v "setpts=2.0*PTS" output.mkv
Liscio
È possibile appianare i video lenti / veloci con il filtro video minterpolate. Questo è anche noto come "interpolazione del movimento" o "flusso ottico".
ffmpeg -i input.mkv -filter "minterpolate='mi_mode=mci:mc_mode=aobmc:vsbmc=1:fps=120'" output.mkv
Altre opzioni includono slowmoVideo e Butterflow. 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