7.1. Codec video
Indietro | Capitolo 7. Codec | Avanti

## 7.1. Codec video

La tabella di stato dei codec è un elenco completo di tutti i codec supportati, aggiornata giornalmente. Nella sezione download del nostro sito sono disponibili alcuni codec binari da usare con MPlayer.

I più importanti su tutti:

- video MPEG-1 (VCD) e MPEG-2 (DVD)

- decodificatori nativi per tutte le tipologie di DivX, 3ivX, M$ MPEG-4 v1, v2 e altre varianti di MPEG-4.

- decodificatore nativi per Windows Media Video 7/8 (WMV1/WMV2), e decodificatori su DLL Win32 per Windows Media Video 9 (WMV3), entrambi usati in file `.wmv`.

- decodificatore nativo Sorenson 1 (SVQ1)

- decodificatore nativo Sorenson 3 (SVQ3)

- decodificatore 3ivx v1, v2

- codec Cinepak e Intel Indeo (3.1,3.2,4.1,5.0)

- formati hardware MJPEG, AVID, VCR2, ASV2 e altri

- varianti VIVO 1.0, 2.0, I263 e altre H.263(+)

- FLI/FLC

- RealVideo 1.0 & 2.0 atraverso `libavcodec`, e codec RealVideo 3.0 & 4.0 usando le librerie di RealPlayer

- decodificatore nativo per HuffYUV

- vari vecchi formati semplici tipo RLE

Se hai un codec Win32 non elencato qui che non è ancora supportato, leggi per favore l'HOWTO sull'importazione codec e aiutaci ad aggiungerne il decodificatore relativo.

### 7.1.1. FFmpeg/libavcodec

FFmpeg contiene `libavcodec`, la libreria open source dominante di codec audio e video. E' in grado di decodificare molti formati multimediali, di solito a velocità più elevate delle alternative, e punta ad aggiungere prima o poi il supporto di decodifica per i restanti. E' il decodificatore di default usato da MPlayer. Anche la codifica è possibile per alcuni formati, ed è permessa da MEncoder.

Per una lista completa dei codec video e audio supportati per favore visita la homepage di FFmpeg.

MPlayer contiene `libavcodec`. Esegui semplicemente `./configure` e compila.

### 7.1.2. Xvid

Xvid è un codec video libero compatibile MPEG-4 ASP, che contempla codifica a doppio pasaggio e supporto completo MPEG-4 ASP, rendendolo molto più efficiente del ben noto codec DivX. Porta una buona qualità video e delle buone prestazionu, grazie alle ottimizzazioni per CPU per molti processori moderni.

Nacque come un fork di sviluppo del codec OpenDivX. Ciò è accaduto quando ProjectMayo portò OpenDivX in DivX4 a sorgenti chiusi, e le persone non di ProjectMayo che lavoravano su OpenDivX si arrabbiarono, così iniziarono Xvid. Perciò tutti e due i progetti hanno la stessa origine.

Nota che Xvid non è necessario per decodificare video codificato in Xvid. Viene usata di default `libavcodec` visto che ha maggior velocità.

Installare `Xvid`

Come molti software open source, è disponibili in due modi: rilasci ufficiali e la versione in CVS. La versione CVS solitamente è solitamente abbastanza stabile da utilizzare, visto che la maggior parte delle volte include fix per i bachi che esistono nei rilasci. Ecco quello che devi fare per far sì che la versione CVS di `Xvid` funzioni con MEncoder (ti servono almeno autoconf 2.50, automake, e libtool):

1.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login

2.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore

3.     cd xvidcore/build/generic

4.     ./bootstrap.sh

5.     ./configure

   Puoi dover aggiungere alcune opzioni (controlla quello che emette ./configure --help).

6.     make && make install

7. Se hai specificato `--enable-divxcompat`, copia `../../src/divx4.h` in `/usr/local/include/`.

8. Ricompila MPlayer con `--with-xvidlibdir=`/percorso/di/`libxvidcore.a` `--with-xvidincdir=`/percorso/di/`xvid.h`.

### 7.1.3. `x264`

#### 7.1.3.1. Cos'è `x264`?

`x264` è una libreria per creare flussi video H.264. Non è completa al 100%, ma attualmente ha perlomeno qualche tipo di supporto per la maggior parte delle caratteristiche di H.264 che influenzano la qualità. Ci sono anche molte caratteristiche avanzate nelle specifiche H.264 che non hanno nulla ha che fare con la qualità video di per sé; molte di queste non sono ancora implementate in `x264`.

Caratteristiche del codificatore

- CAVLC/CABAC

- Multi-referenza

- Intra: tutti i tipi di macroblocco (16x16, 8x8, e 4x4 con tutte le predizioni)

- Inter P: tutti i partizionamenti (da 16x16 fino a 4x4)

- Inter B: partizionamenti da 16x16 fino a 8x8 (includendo SKIP/DIRECT)

- Controllo frequenza: quantizzatore costante, frequenza bit costante, ABR a passaggio singolo o multiplo, VBV facoltativo

- Rilevazione cambi scena

- Posizionamento fotogrammi B adattivo

- Fotogrammi B come referenza / ordine arbitrario dei fotogrammi

- Trasformazione spaziale adattivo 8x8 e 4x4

- Modalità senza perdita (lossless)

- Matrici di quantizzazione personalizzate

- Codifica parallela di sezioni multiple

- Interlacciamento

#### 7.1.3.2. Cos'è H.264?

H.264 è un nome per un nuovo codec video digitale sviluppato in comunione dall'ITU e da MPEG. Può anche essere correttamente chiamato coi nomi altisonanti di "ISO/IEC 14496-10" o "MPEG-4 Part 10". Più frequentemente, viene chiamato "MPEG-4 AVC" o solo "AVC".

In qualsiasi modo tu lo chiami, può valer la pena provare l'H.264 dato che tipicamente raggiunge la qualità di MPEG-4 ASP con il 5%-30% in meno della frequenza bit. I risultati reali dipenderanno sia dal materiale sorgente che dal codificatore. I guadagni ottenuti usando H.264 non arrivano senza un costo: per decodificare flussi H.264 pare richiedere CPU potenti e memoria. Per esempio, su un Athlon 1733 MHz, un H.264 a risoluzione video DVD a 1500kbps richiede circa il 35% della CPU, per la decodifica. Per contronto, decodificare un flusso MPEG-4 ASP a risoluzione video DVD a 1500kbps richiede circa il 10% della CPU. Ciò significa che anche un DVD rip decente può delle volte saltellare su CPU più lente di 2.0 GHz o giù di lì.

Almeno con `x264`, le risorse richieste per la codifica non sono peggiori di quelle cui sei abituato per MPEG-4 ASP. Per esempio, su un Athlon 1733 MHz una codifica tipica di un DVD girerebbe a 5-15fps.

Questa documentazione non vuole spiegare i dettagli di H.264, ma se sei interessato in un breve resoconto, potresti voler leggere The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions.

#### 7.1.3.3. Come posso riprodurre video H.264 con MPlayer?

MPlayer usa il decodificatore H.264 di `libavcodec`. `libavcodec` ha avuto una decodifica almeno minimalmente usabile da circa luglio 2004, tuttavia grandi modifiche e sviluppi sono stati implementati da quel momento, sia in termini di maggiori funzionalità supportate che in termini di miglior utilizzo della CPU. Tanto per esser sicuri, è sempre una buona idea usare un checkout recente di `libavcodec` da SubVersion.

If you want a quick and easy way to know whether there have been recent changes to `libavcodec`'s H.264 decoding, you might keep an eye on FFmpeg Subversion repository's web interface. Se vuoi un modo rapido ed indolore di sapere se ci sono state modifiche recenti alla decodifica H.264 di `libavcodec`, puoi poter dare un'occhiata all'interfaccia web del repository SubVersion di FFmpeg.

#### 7.1.3.4. Come posso codificare video usando MEncoder e `x264`?

Se hai il client di subversion installato, i sorgenti più recenti di x264 possono esser ottenuti con questo comando:

    svn co svn://svn.videolan.org/x264/trunk x264

I sorgenti di MPlayer vengono aggiornati ogniqualvolta c'è una modifica nelle API di `x264`, per cui si consiglia sempre di usare allo stesso modo la versione da SubVersion di MPlayer. Forse questa situazione cambierà quando e se ci sarà un rilascio di `x264`. Nel frattempo, `x264` dovrebbe esser considerato molto instabile, nel senso che la sua interfaccia di programmazione è soggetta a cambiamenti.

`x264` so compila e installa nel solito modo:

    ./configure && make && sudo make install

Questo installa libx264 in /usr/local/lib e x264.h viene posto in /usr/local/include. Con la libreria `x264` e gli header nei percorsi standard, compilare il supporto per `x264` in MPlayer è facile. Lancia semplicemente il comando:

    ./configure && make && sudo make install

Lo script `./configure` controllerà automaticamente che tu abbia i requisiti richiesti per `x264`.

Indietro | Risali | Avanti
Capitolo 7. Codec | Partenza | 7.2. Codec audio