1 16/05/2026 9 min

Installare FFmpeg su Ubuntu 22.04 e 20.04 LTS senza sporcare il sistema

FFmpeg non è solo un pacchetto per convertire file audio e video: in ambito Linux serve spesso per estrarre tracce, fare transcodifica, generare thumbnail, comprimere asset per web, normalizzare flussi e verificare contenuti multimediali prima del deploy. Su Ubuntu 22.04 e 20.04 LTS l’installazione è semplice, ma conviene farla con un minimo di disciplina: prima si verifica la versione disponibile nei repository, poi si installa il pacchetto corretto, infine si controlla che i codec necessari siano davvero presenti.

La differenza pratica tra le due LTS è piccola per l’operatività quotidiana, ma può diventare rilevante se ti servono funzionalità specifiche introdotte in release più recenti. Per questo la sequenza giusta non è “installo e basta”, ma “controllo, installo, valido”. È il modo più pulito per evitare sorprese quando FFmpeg entra in una pipeline di produzione o in uno script di automazione.

Verificare la versione disponibile nei repository Ubuntu

Prima di installare, controlla cosa offre il sistema. Su Ubuntu il pacchetto arriva normalmente dai repository ufficiali, quindi la versione disponibile dipende dal ramo della distribuzione e dagli aggiornamenti applicati.

Usa questi comandi:

sudo apt update
apt-cache policy ffmpeg

Nel risultato cerca la riga Candidate. Se compare una versione valida e il repository è quello atteso, puoi procedere. Se invece la candidate è assente o vecchia in modo anomalo, il problema non è FFmpeg ma la configurazione APT: mirror, pinning, repository disabilitati o sistema non aggiornato.

Su 22.04 e 20.04, in condizioni standard, ffmpeg è installabile direttamente dai repo ufficiali senza aggiungere PPA. Questa è la scelta da preferire perché riduce il rischio di dipendenze incoerenti e semplifica gli aggiornamenti di sicurezza.

Installazione standard con APT

Se il pacchetto è disponibile, l’installazione base è lineare:

sudo apt install ffmpeg

Il pacchetto include il binario ffmpeg e, in genere, le librerie necessarie per un uso comune. Dopo l’installazione, verifica subito la versione:

ffmpeg -version

Un output corretto mostra la versione del programma, la build configuration e l’elenco delle librerie abilitate. Se il comando non viene trovato, il problema è quasi sempre uno di questi: installazione non completata, PATH alterato, shell non aggiornata o conflitto con un binario installato manualmente in un percorso diverso.

Se vuoi anche gli strumenti correlati, puoi valutare ffprobe, che spesso è già incluso nello stesso pacchetto. Serve per leggere metadati, stream e parametri dei file senza avviare una transcodifica completa.

Controllare codec e funzionalità realmente abilitate

Installare FFmpeg non basta se poi ti mancano i codec di cui hai bisogno. In ambiente operativo, il punto non è “FFmpeg c’è”, ma “FFmpeg fa esattamente quello che mi serve”. Per questo conviene controllare i componenti disponibili prima di usarlo in script o automazioni.

Elenca i codec supportati con:

ffmpeg -codecs | less

Per i formati e i muxer/demuxer:

ffmpeg -formats | less

Se devi capire rapidamente se una build supporta H.264, AAC, MP3, WebM o altri formati comuni, questi elenchi sono più affidabili di una supposizione basata sul nome del pacchetto. È facile confondere la presenza del binario con il supporto effettivo di un codec.

Un controllo utile è anche questo:

ffmpeg -hide_banner -filters | grep -E 'scale|overlay|fps|transpose'

In questo modo verifichi se i filtri più usati per conversione e compositing sono presenti. Se un filtro manca, non forzare workaround improvvisati: prima verifica la build, poi eventualmente cambia repository o strategia di installazione.

Quando i repository ufficiali non bastano

In alcuni casi la versione dei repository Ubuntu è sufficiente per il lavoro quotidiano, ma non per esigenze più specifiche: codec recenti, bugfix non ancora backportati, filtri aggiuntivi o una build più completa. Qui entra in gioco la scelta tra repository terzi, compilazione manuale o pacchetti statici. La regola pratica è semplice: se ti serve stabilità operativa, preferisci i repository ufficiali; se ti serve una funzione precisa non disponibile, valuta con attenzione l’alternativa meno invasiva.

Un approccio comune è usare un PPA che distribuisca versioni più recenti. È comodo, ma introduce un livello di rischio in più: dipendenze diverse, aggiornamenti non perfettamente allineati e manutenzione futura meno lineare. Prima di adottarlo, chiediti se il guadagno tecnico vale il costo operativo.

Se decidi di aggiungere un PPA, il flusso tipico è questo:

sudo add-apt-repository ppa:some/ppa
sudo apt update
sudo apt install ffmpeg

Nota operativa: il nome del repository dipende dal provider scelto. Prima di aggiungerlo, verifica sempre la documentazione del progetto, la compatibilità con la tua release e l’impatto sulle dipendenze già presenti. Se non hai un motivo tecnico concreto, resta sui repository ufficiali.

Installazione da sorgenti: quando ha senso e quando no

Compilare FFmpeg da sorgente ha senso solo se hai bisogno di controllo fine su opzioni, librerie abilitate o patch specifiche. Non è la strada giusta per “avere l’ultima versione” a tutti i costi: in produzione, una build manuale è anche una responsabilità manuale. Devi gestire dipendenze, aggiornamenti, path, rollback e ripetibilità.

Se vuoi comunque seguire questa strada, il flusso base è concettualmente questo: installi i tool di build, recuperi il sorgente, configuri i moduli richiesti, compili e installi in una posizione controllata. Per esempio:

sudo apt install build-essential pkg-config yasm nasm libx264-dev libx265-dev libvpx-dev libopus-dev
./configure --prefix=/usr/local --enable-gpl --enable-libx264 --enable-libx265 --enable-libvpx --enable-libopus
make -j"$(nproc)"
sudo make install

Questo è solo un esempio di configurazione, non una ricetta universale. I moduli da abilitare dipendono da cosa ti serve davvero. Se compili con opzioni sbagliate o con librerie mancanti, il risultato sarà una build incompleta o non riproducibile.

In più, una installazione manuale in /usr/local può sovrapporsi al pacchetto APT. Prima di procedere, controlla quale binario verrà risolto dalla shell:

which ffmpeg
ffmpeg -version

Se i percorsi non corrispondono a quello che ti aspetti, hai già un segnale che l’ambiente non è pulito. In quel caso conviene normalizzare il setup prima di usare FFmpeg in produzione.

Validare con un test reale, non solo con la versione

La verifica finale non deve fermarsi a ffmpeg -version. Un test pratico riduce il rischio di scoprire tardi che mancano librerie o filtri. Prendi un file di esempio e fai una conversione minima, poi controlla l’output generato.

ffmpeg -i input.mp4 -c:v libx264 -preset veryfast -crf 23 -c:a aac output.mp4

Se il comando termina senza errori e il file output.mp4 viene creato correttamente, hai una prova molto più utile della sola presenza del binario. Poi puoi ispezionare il risultato con:

ffprobe output.mp4

Qui cerchi coerenza tra container, codec video, codec audio, durata e bitrate. Se il file è leggibile ma con parametri inattesi, il problema non è l’installazione: è la pipeline o la riga di comando usata.

Errori tipici dopo l’installazione e come leggerli

Uno degli errori più comuni è vedere Unknown encoder o Unknown decoder. Significa che il binario esiste, ma non include il supporto richiesto. In quel caso il controllo utile è:

ffmpeg -encoders | grep -E 'libx264|aac|libvpx|libopus'

Se un encoder non compare, non insistere con i parametri della conversione: la soluzione è cambiare build o installare un pacchetto che includa quella libreria. Un altro errore tipico è Permission denied su file di input o output. Qui il problema è banale ma frequente: directory non scrivibile, ownership errata o file occupato da un altro processo.

Se invece il comando parte ma fallisce con errori di linking o librerie mancanti, controlla il loader dinamico e il path dei pacchetti installati. In una macchina ben tenuta, però, questi casi sono rari se hai usato i repository ufficiali.

Automazione: usare FFmpeg in script e job schedulati

Quando FFmpeg entra in uno script, la priorità cambia: non basta che funzioni a mano, deve fallire in modo prevedibile e produrre log leggibili. Per questo conviene usare percorsi assoluti, controllare il codice di uscita e redirigere stderr in un file di log o nel sistema di logging che già usi.

/usr/bin/ffmpeg -i /data/input.mp4 -c:v libx264 -c:a aac /data/output.mp4 > /var/log/ffmpeg-job.log 2>&1

Se lo lanci da cron o da systemd timer, verifica che l’ambiente sia minimale: spesso il problema non è FFmpeg, ma il PATH mancante o una directory di lavoro diversa da quella prevista. In uno script serio, usa sempre controlli espliciti su input e output, altrimenti un file mancante può essere interpretato come un errore a valle e rendere difficile la diagnosi.

Un pattern semplice è questo: validi il file di ingresso con ffprobe, esegui la conversione, poi controlli che l’output esista e abbia dimensione coerente. È una verifica banale, ma evita una classe intera di problemi silenziosi.

Disinstallazione o sostituzione senza lasciare residui confusi

Se devi cambiare strategia di installazione, conviene rimuovere prima la versione precedente e poi reinstallare in modo coerente. Su pacchetto APT, il controllo base è:

sudo apt remove ffmpeg
sudo apt autoremove

Prima di fare pulizia, verifica se altri pacchetti dipendono da FFmpeg. In ambienti condivisi, la rimozione può avere impatti su applicazioni che usano librerie multimediali indirettamente. Se stai passando da una build manuale a una gestita da APT, controlla anche che non restino binari in /usr/local/bin che precedono quelli del sistema nel PATH.

Il criterio corretto è semplice: un solo binario attivo, una sola fonte di aggiornamento, una sola versione di riferimento. Quando questo non accade, il troubleshooting diventa inutilemente costoso.

Scelta pratica consigliata per Ubuntu 22.04 e 20.04 LTS

Se l’obiettivo è installare FFmpeg su una macchina Ubuntu LTS per uso comune, la scelta migliore è quasi sempre il pacchetto ufficiale:

  1. aggiorna l’indice pacchetti con sudo apt update;
  2. installa con sudo apt install ffmpeg;
  3. verifica con ffmpeg -version e ffprobe -version;
  4. controlla i codec richiesti con ffmpeg -encoders e ffmpeg -formats;
  5. esegui un test reale di conversione prima di usarlo in script o produzione.

Se invece hai bisogno di funzionalità specifiche non presenti nei repository ufficiali, valuta con prudenza una build alternativa. La priorità resta la stessa: installazione ripetibile, binario verificato, dipendenze sotto controllo e comportamento coerente tra shell, script e job automatici.

In sintesi, su Ubuntu 22.04 e 20.04 LTS FFmpeg si installa in pochi minuti, ma il lavoro fatto bene non è il pacchetto in sé: è la verifica che quel pacchetto sia davvero quello giusto per il tuo caso d’uso. È questo che fa la differenza tra una macchina “che sembra funzionare” e un ambiente affidabile.