Come posso usare ffmpeg
ridurre le dimensioni di un video abbassandone la qualità (il più possibile, naturalmente, perché ho bisogno che funzioni su un dispositivo mobile che non ha molto spazio disponibile)?
Ho dimenticato di dire che quando il video può utilizzare i sottotitoli (*.srt o *.sub), vorrei convertirli anche io per adattarli ai parametri del file video convertito.
Risposta accettata:
Questa risposta è stata scritta nel 2009. Dal 2013 è ampiamente disponibile un formato video molto migliore di H.264, ovvero H.265 (meglio in quanto si comprime di più per la stessa qualità o offre una qualità maggiore per le stesse dimensioni). Per usarlo, sostituisci il codec libx264 con libx265 e spingi ulteriormente la leva di compressione aumentando il valore CRF — aggiungi, diciamo, 4 o 6, poiché un intervallo ragionevole per H.265 può essere compreso tra 24 e 30. Nota che inferiore I valori CRF corrispondono a maggiori bitrate, e quindi produrre maggiori video di qualità.
ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4
Per vedere questa tecnica applicata utilizzando il vecchio formato H.264, vedere questa risposta, citata di seguito per comodità:
Calcola il bitrate di cui hai bisogno dividendo la dimensione target (in bit) per la lunghezza del video (in secondi). Ad esempio per una dimensione target di 1 GB (un gigabyte , ovvero 8 gigabit ) e 10000 secondi di video (2h46min 40s), usa un bitrate di 800000 bit/s (800kbit/s):
ffmpeg -i input.mp4 -b 800k output.mp4
Altre opzioni che potrebbe valere la pena considerare sono l'impostazione del Constant Rate Factor, che riduce il bit rate medio, ma mantiene una migliore qualità. Varia il CRF tra 18 e 24 circa:più basso, maggiore è il bitrate.
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4