Quando qualcuno dice «ho un video in MP4» sta dando un'informazione utile ma incompleta. MP4 è un container, cioè una scatola. Dentro la scatola ci sono uno o più flussi compressi con un codec, ed è il codec a determinare qualità, peso del file e compatibilità con i dispositivi. Confondere le due cose è la causa più frequente dei problemi del tipo «il file si apre ma si sente solo l'audio» o «il televisore dice formato non supportato».
Che cos'è un codec
Un codec (da coder-decoder) è l'algoritmo che comprime e decomprime i dati. Un video non compresso in Full HD occupa una quantità enorme di spazio: ogni fotogramma è una matrice di milioni di valori, ripetuta decine di volte al secondo. Il codec sfrutta due tipi di ridondanza:
- spaziale: zone simili all'interno dello stesso fotogramma, come un cielo uniforme;
- temporale: parti che non cambiano tra un fotogramma e il successivo, come lo sfondo di un'intervista.
I codec video più diffusi oggi sono H.264 (detto anche AVC), H.265 (HEVC), VP9 e AV1. Per l'audio troviamo AAC, Opus, MP3, AC-3 e altri. Ognuno ha un proprio formato di bitstream e richiede un decoder specifico.
Che cos'è un container
Il container è il formato del file che impacchetta i flussi e li tiene sincronizzati. Contiene:
- uno o più flussi video;
- uno o più flussi audio (per esempio italiano e inglese);
- eventuali sottotitoli;
- capitoli, copertine e metadati come titolo, data e lingua;
- un indice che permette di saltare a un punto preciso senza leggere tutto il file.
Il container non comprime nulla: si limita a organizzare. Per questo cambiare container senza toccare i flussi è un'operazione quasi istantanea e senza perdita di qualità, mentre cambiare codec richiede una ricodifica completa.
I container più comuni
| Container | Estensione | Punti di forza | Limiti tipici |
|---|---|---|---|
| MP4 | .mp4, .m4v | compatibilità quasi universale, adatto al web | supporto limitato a certi formati di sottotitoli |
| Matroska | .mkv | accetta quasi qualsiasi codec, molte tracce, capitoli | meno supportato da alcuni televisori e browser |
| WebM | .webm | pensato per il web, basato su Matroska | accetta solo codec specifici (VP8, VP9, AV1, Vorbis, Opus) |
| QuickTime | .mov | diffuso nel montaggio professionale | file spesso molto pesanti con codec intermedi |
| MPEG-TS | .ts | robusto agli errori, usato in broadcast e streaming | overhead maggiore rispetto a MP4 |
Un file .mkv può contenere video H.264 e audio AAC esattamente come un .mp4: il contenuto compresso è identico, cambia solo l'involucro.
Perché un file «non si apre»
Quando un lettore rifiuta un file, le cause sono quasi sempre tre.
- Il container non è supportato. Alcuni televisori leggono MP4 ma non MKV. In questo caso basta un cambio di container.
- Il codec non è supportato. Un dispositivo datato può aprire l'MP4 ma non avere il decoder per HEVC o AV1. Qui serve una ricodifica, oppure un lettore software che includa il decoder.
- Il profilo o il livello del codec è troppo alto. Anche con lo stesso codec, un video H.264 a 10 bit o con un livello elevato può non essere decodificabile da hardware pensato per l'8 bit.
Il caso tipico «vedo il video ma non sento l'audio» indica di solito una traccia audio in un codec che il lettore non conosce, per esempio DTS in un MKV riprodotto su uno smart TV.
Remux e transcodifica
Due operazioni vanno tenute distinte:
- remux (o rimultiplazione): si estraggono i flussi da un container e si inseriscono in un altro, senza toccarli. È veloce e non degrada la qualità.
- transcodifica: si decodificano i flussi e li si comprime di nuovo, eventualmente con un altro codec o un altro bitrate. È lenta e comporta sempre una perdita, a meno di usare codec senza perdita.
Con FFmpeg un remux da MKV a MP4 si fa così:
ffmpeg -i ingresso.mkv -c copy uscita.mp4
L'opzione -c copy dice di copiare i flussi così come sono. Se il comando fallisce, è probabile che uno dei flussi, spesso i sottotitoli, non sia ammesso nel container di destinazione.
Come capire cosa c'è dentro un file
L'estensione non basta, perché descrive solo il container e a volte nemmeno quello in modo affidabile. Per sapere quali codec ci sono servono strumenti di analisi come MediaInfo o ffprobe, che mostrano per ogni traccia il codec, il profilo, la risoluzione, il frame rate, il bitrate e la lingua. Nel mio lavoro è la prima cosa che faccio davanti a un file problematico: in pochi secondi si capisce se basta un remux o se serve una ricodifica.
Scegliere la combinazione giusta
Per la maggior parte degli usi valgono alcune regole pratiche:
- massima compatibilità: MP4 con video H.264 e audio AAC;
- archivio personale con più lingue e sottotitoli: MKV con il codec che preferite;
- web moderno con file leggeri: WebM o MP4 con AV1 o VP9 e audio Opus, con un'alternativa H.264 per i browser più vecchi;
- montaggio: MOV o MXF con un codec intermedio pensato per l'editing.
In sintesi
- Il container è la scatola, il codec è il modo in cui il contenuto è compresso.
- Cambiare container (remux) è rapido e senza perdite; cambiare codec richiede una transcodifica.
- Un file che non si apre può dipendere dal container, dal codec o dal profilo usato.
- L'estensione non basta: per sapere cosa c'è dentro servono MediaInfo o ffprobe.
- MP4 con H.264 e AAC resta la scelta più compatibile.