# Contenitori

E' importante chiarire un errore comune. Quando le persone vedono un file con un'estensione `.AVI`, subito arrivano alla conclusione che non sia un file MPEG. Questo non è giusto. Perlomeno non del tutto. Contrariamente al credo popolare, un file di questo tipo può contenere video MPEG-1.

Vedi, un codec non è la stessa cosa di un formato contenitore. Esempi di codec video sono: MPEG-1, MPEG-2, MPEG-4 (DivX), Indeo5, 3ivx. Esempi di formati contenitore sono: MPG, AVI, ASF.

In teoria, puoi infilare un video OpenDivX e audio MP3 in un contenitore MPG. Tuttavia, la gran parte dei lettori multimediali non lo riprodurrà, dato che si aspettano un video MPEG-1 e un audio MP2 (diversamente dall'AVI, MPG non ha i campi necessari per descrivere i suoi flussi video e audio). Oppure puoi mettere un video MPEG-1 dentro un file AVI. FFmpeg e MEncoder possono creare questi file.

## Formati video

### File MPEG

I file MPEG sono di diverse guise:

- MPG: Questo è la forma più basilare del formato file MPEG. Contiene video MPEG-1, e audio MP2 (MPEG-1 layer 2) o raramente MP1.

- DAT: Questo è esattamente lo stesso formato di MPG con una diversa estensione. Viene usato sui Video CD. A causa del modo in cui i VCD vengono creati e Linux è progettato, i file DAT non possono essere riprodotti né copiati dai VCD come file normali. Per riprodurre un Video CD devi usare l'opzione `vcd://`.

- VOB: Questo è il formato file MPEG sui DVD. E' lo stesso che MPG, con in più la possibilità di contenere sottotitoli o audio non-MPEG (AC-3). Contiene video codificato in MPEG-2 e di solito audio AC-3, ma anche DTS, MP2 e LPCM non compresso sono permessi. Leggi la sezione DVD!

- TY: Questo è un flusso MPEG TiVo. Contiene dati MPEG PES per i flussi audio e video, così come informazioni extra come primi piani. Il contenitore non è un flusso programma MPEG, ma un formato proprietario creato da TiVo. Per ulteriori informazioni sul formato flusso TiVo, per favore fai riferimento alla pagina di TyStudio.

Serie di fotogrammi formano gruppi indipendenti tra loro nei file MPEG. Ciò significa che tu puoi tagliare/collegare file un MPEG con strumenti standard per i file (come `dd`, `cut`), ed esso rimane completamente funzionante.

Una caratteristica importante degli MPG è che hanno un campo per descrivere il rapporto di aspetto del flusso video ivi contenuto. Per esempio i SVCD hanno un video a risoluzion 480x480, e nell'intestazione quel campo è impostato a 4:3, così che venga riprodotto a 640x480. I file AVI spesso sono senza questo campo, indi debbono essere ridimensionati durante la codifica o riprodotti con l'opzione `-aspect`.

### File AVI

Progettato da Microsoft, AVI (Audio Video Interleaved) è un formato multifunzione molto diffuso, usato correntemente soprattutto per video MPEG-4 (DivX e DivX4). Ha molti problemi e trappolette conosciute (per esempio nello streaming). Supporta un flusso video e da 0 a 99 flussi audio e può essere grande fino a 2GB, ma c'è un'estensione che permette file più grossi, chiamata OpenDML. Microsoft attualmente sconsiglia fortemente il suo utilizzo e incoraggia quello di ASF/WMV. Non che a qualcuno interessi.

Esiste un hack che permette ai file AVI di contenere un flusso aduio Ogg Vorbis, ma li rende incompatibili con lo standard AVI. MPlayer supporta la riproduzione di questi file. Anche la ricerca è implementata ma gravemente penalizzata da file condificati non correttamente con intestazioni fuorvianti. Sfortunatamente l'unico codificatore attualmente in grado di creare questi file, NanDub, ha questo problema.

Le telecamere DV creano flussi DV grezzi che gli strumenti per acquisire DV convertono in due tipi diversi di file AVI. L'AVI conterràcosì sia flussi audio e video separati che MPlayer può riprodurre, oppure file di flusso grezzo DV per il quale il supporto è sotto sviluppo.

Ci sono due tipi di file AVI:

- Con interleave: Il contenuto audio e video è interconnesso. Questo è l'utilizzo standard. Raccomandato e usato diffusamente. Alcuni strumenti creano file AVI con interleave con una sincronizzazione errata. MPlayer li rileva come con interleave, per cui aumenta progressivamente la perdita di sincronia A/V, probabilmente durante la ricerca. Questi file dovrebbero esser riprodotti come senza interleave (con l'opzione `-ni`).

- Senza interleave: Prima si trova tutto il flusso video, poi tutto il flusso audio. Ciò implica un sacco di ricerca, rendendo difficile la riproduzione da rete o da CD-ROM.

MPlayer supporta due tipi di temporizzazione per i file AVI:

- bps-based:: E' basata sulla frequenza/campionamento dei flussi video/audio. Questo metodo viene usato dalla maggior parte dei lettori, tra cui avifile e Windows Media Player. File con intestazioni rovinate, e file creati con audio VBR ma non con un codificatore compatibile VBR porteranno a una desincronizzazione A/V con questo metodo (principalmente in ricerca).

- basati sull'interleave: Non usa il valore di frequenza dall'intestazione, usa invece la posizione relativa dei segmenti audio e video interconnessi, rendendo riproducibili file con audio VBR mal codificati.

E' permesso qualsiasi codec audio e video, ma nota che l'audio VBR non è ben supportato da molti lettori multimediali. Il formato file rende possibile usare audio VBR, ma molti lettori si aspettano audio CBR, perciò vanno in crisi col VBR. VBR è insolito e le specifiche AVI di Microsoft indicano solo audio CBR. Ho anche notato che molti codificatori/multiplexer creano file errati usando audio VBR. Ci sono solo due eccezioni conosciute: NanDub e MEncoder.

### File ASF/WMV

ASF (Active Streaming Format) arriva da Microsoft. Hanno sviluppato due varianti di ASF, v1.0 e v2.0. La v1.0 viene usata dai loro strumenti multimediali (Windows Media Player e Windows Media Encoder) ed è molto segreta. La v2.0 è pubblica e brevettata. Sono sicuramente diverse, non vi è alcuna compatibilità (è solo un ulteriore gioco legale). MPlayer supporta solo la v1.0, visto che nessuno ha mai visto file v2.0 :). Nota che i file ASF a tutt'oggi usano l'estensione `.WMA` o `.WMV`.

### File QuickTime/MOV

Questi formati sono stati progettati da Apple e possono contenere qualsiasi codec, CBR o VBR. Solitamente hanno un'estensione `.QT` o `.MOV`. Nota che visto che il gruppo MPEG-4 ha scelto QuickTime come il formato consigliato per MPEG-4, i loro file MOV hanno un'estensione `.MPG` o `.MP4` (è interessante notare che i flussi audio e video in questi file sono veri file MPG e AAC. Puoi addirittura estrarli con le opzioni `-dumpvideo` e `-dumpaudio`).

### File VIVO

MPlayer decodifica con gioia i formati file VIVO. Il grande svantaggio del formato è che non ha un blocco di indicizzazione, né una dimensione dei pacchetti fissa o byte di sincronizzazione e molti file non hanno manco fotogrammi chiave, indi dimenticati la ricerca!

Il codec video dei file VIVO/1.0 è h.263 standard. Il codec video dei file VIVO/2.0 è un h.263v2 modificato e non standard. Per l'audio è lo stesso, può essere g.723 (standard), o Vivo Siren.

### File FLI

FLI è un formato file molto vecchio usato da Autodesk Animator, ma è un formato file diffuso per brevi animazioni in rete. MPlayer decodifica i filmati FLI ed è anche in grado di fare la ricerca in essi (utile quando stai ripetendoli con l'opzione `-loop`). I file FLI non hanno fotogrammi chiave, perciò l'immagine sarà incasinata per un breve periodo dopo la ricerca.

### File RealMedia (RM)

Ebbene sì, MPlayer può leggere (demuxare) file RealMedia (`.rm`).

### File NuppelVideo

NuppelVideo è uno strumento di acquisizione TV (AFAIK:). MPlayer può leggere i suoi file `.NUV` (solo NuppelVideo 5.0). Tali file possono contenere fotogrammi YV12 non compressi, YV12+RTJpeg compressi, YV12 RTJpeg+lzo compressi, e YV12+lzo compressi. MPlayer li decodifica tutti (e pure li può codificare con MEncoder in MPEG-4 (DivX)/etc!). La ricerca funziona.

### File yuv4mpeg

yuv4mpeg / yuv4mpeg2 è un formato file usato dai programmi mjpegtools. Puoi acquisire, produrre, filtrare e codificare video in questo formato usando questi strumenti. Il formato file è invero una sequenza di immagini YUV 4:2:0 non compresse.

### File FILM

Questo formato è usato sui CD-ROM dei vecchi giochi del Sega Saturn.

### File RoQ

I file RoQ sono file multimediali usati in alcuni videogiochi della ID, come Quake III e Return to Castle Wolfenstein.

### File OGG/OGM

Questo è un nuovo formato file fornito da Xiphophorus. Può contenere qualsiasi codec video o audio, CBR o VBR. Per poterlo riprodurre Ti servirà avere libogg e libvorbis installate prima di compilare MPlayer.

### File SDP

SDP è un formato file standard di IETF per descrivere flussi RTP video e/o audio. (è richiesto "LIVE555 Streaming Media")

### File PVA

PVA è un formato simile a MPEG usato da software di schede TV DVB (per es.: MultiDec, WinTV sotto Windows).

### File NSV

NSV (NullSoft Video) è il formato file usato dal riproduttore Winamp per riprodurre audio e video. Il video è VP3, VP5 o VP6, l'audio MP3, AAC o VLB. La versione di NSV solo audio ha l'estensione `.nsa`. MPlayer può riprodurre sia flussi NSV che file. Per favore nota che molti file dal sito di Winamp usano audio VLB, che non può ancora essere decodificato. Inoltre per i flussi da quel sito serve un'ulteriore livello di spacchettizzazione che deve essere ancora sviluppato (quei file non sono riproducibili perché usano audio VLB).

### File Matroska

Matroska è un formato contenitore "aperto". Leggi altro sul sito ufficiale.

### File NUT

NUT is the container format developed by MPlayer and FFmpeg folks. Both projects support it. Read more on the official site. NUT è il formato contenitore sviluppato dalla gente di MPlayer e FFmpeg. Entrambi i progetti lo supportano. Leggi altro sul sito ufficiale.

### File GIF

Il formato GIF è un formato diffuso per la grafica web. Ci sono due versioni delle specifiche GIF, GIF87a e GIF89a. La differenza principale è che GIF98a permette l'animazione. MPlayer supporta entrambi i formati attraverso l'utilizzo della libreria libungif o di un'altra compatibile con libgif. Le GIF non animate saranno mostrate come video con un solo fotogramma. (Usa le opzioni `-loop` e `-fixed-vo` per mostrarle più a lungo.)

MPlayer attualmente non supporta le ricerca dentro ai file GIF. I file GIF non hanno necessariamente una dimensione fissa dei fotogrammi, né una frequenza fissa. Piuttosto, ciascun fotogramma è di dimensione indipendente e si suppone che sia posizionato in una data posizione su un campo di dimensione fissata. La frequenza dei fotogrammi viene controllata da un blocco opzionale prima di ciascun fotogramma, che specifica il ritardo, in centesimi di secondo, del fotogramma seguente.

I file GIF standard contengono fotogrammi RGB a 24 bit con almeno una palette indicizzata ad 8 bit. Questi fotogrammi sono solitamente compressi LZW, anche se alcuni codificatori GIF producono fotogrammi non compressi per evitare problemi di brevetti con la compressione LZW.

Se la tua distribuzione non è fornita di libungif, scaricane una copia dalla pagina principale di libungif. Per informazioni tecniche dettagliate, dai un'occhiata alle specifiche GIF89a .

## Formati audio

MPlayer è un lettore di filmati e non un lettore multimediale, tuttavia è in grado di riprodurre alcuni formati di file audio (sono elencati nella sezione qui sotto). Questo non è un utilizzo raccomandato di MPlayer, faresti meglio ad usare XMMS.

### File MP3

Puoi avere problemi riproducendo alcuni file MP3 che MPlayer potrebbe identificare in maniera errata come MPEG e riprodurli male o per niente. Questo comportamento non può esser corretto senza abbandonare il supporto per alcuni file MPEG rovinati perciò rimarraà così per il futuro prossimo. L'opzione `-demuxer` descritta nella pagina man può aiutarti in questi casi.

### File OGG/OGM (Vorbis)

Richiedono libogg e libvorbis correttamente installate.

### CD audio

MPlayer può usare cdparanoia per riprodurre CDDA (Audio CD). L'obiettivo di questa sezione non contempla l'elenco delle caratteristiche di cdparanoia.

Vedi nella pagina man l'opzione `-cdda`, che può essere usate per passare opzioni a cdparanoia.

### XMMS

MPlayer può utilizzare i plugin di ingresso di XMMS per riprodurre molti formati file. Ci sono plugin per i suoni dei videgiochi SNES, SID (dal Commodore 64), molti formati Amiga, .xm, .it, VQF, musepack, Bonk, shorten e molti altri. Puoi trovarli sulla pagina dei plugin di ingresso di XMMS.

Per questa caratteristica devi avere XMMS e compilare MPlayer con `./configure --enable-xmms`. Se ciò non funziona, potresti dover impostare esplicitamente i percorsi dei plugin e della libreria di XMMS attraverso le opzioni `--with-xmmsplugindir` e `--with-xmmslibdir`