FFmpeg: convertire i filmati per iPhone

Come faccio a vedere un filmato in formato AVI su iPhone, come quelli prodotti dalla mia vecchia videocamera Panasonic, senza dover scaricare e/o acquistare app di terze parti?
Semplice: riprocesso l’intero filmato con FFmpeg convertendo l’audio e il video con codec supportati da iPhone (rispettivamente AAC e H.264 / MPEG-4 AVC) e muxandoli in formato MP4.

Ho scelto FFmpeg per svariate ragioni: è open-source e liberamente utilizzabile, è potente e flessibile, supporta una enormità di formati di input, è multipiattaforma, si usa da riga di comando, non c’è bisogno di installare porcherie o spyware vari…

La command-line che uso è molto generica ma produce buoni risultati ed è semplice e veloce da usare:

ffmpeg -i filmato_input -vf scale=960:-1 -acodec libvo_aacenc -ac 2 -ab 128k -ar 44100 -vcodec libx264 -crf 23 filmato_output.mp4

Questa command-line produce un file MP4 con queste caratteristiche:

  • risoluzione video adeguata alle dimensioni dello schermo di un iPhone4 (“-vf scale=960:-1”);
  • audio AAC a 128 kbps, convertito a 2 canali e ricampionato a 44100 Hz (“-acodec libvo_aacenc -ac 2 -ab 128k -ar 44100”);
  • video compatibile H.264 (grazie a x264), convertito in singola passata a constat rate factor cercando di bilanciare qualità e dimensione (“-vcodec libx264 -crf 23”);

Per finire, copio il file su iPhone usando MediaMonkey.

FFmpeg è potentissimo ed ha una quantità incredibile di parametri: sicuramente è possibile migliorare ulteriormente la qualità del video o dell’audio ottenuto giocando con i valori (diminuendo il valore “-crf” aumentano la qualità, la dimensione del video ed il tempo di encoding; aumentando il valore invece diminuisce la qualità, la dimensione del video ed il tempo di encoding).
Buona sperimentazione! 😀