Siete qui:

  1. Home
  2. Blog
  3. Video H264 e audio HE AAC v2 in Flash Player

Video H264 e audio HE AAC v2 in Flash Player

Alessandro Scoscia • 04 marzo 2008 18:50

Avevo decisamente sottostimato l'importanza del supporto per H264 introdotto nelle ultime versioni del flash player finchè non ho letto un'illuminante serie di articoli di Fabio Sonnati.

Il supporto per H264 ed HE-AAC è fondamentale per la distribuzione di video di qualità via internet poichè consente di ottenere qualità più che accettabili anche a bitrate davvero molto limitati.

La clip che presento è il risultato della codifica di un filmato a 320x208, con audio stereo, della durata di 127 secondi. Il file iniziale, in formato quicktime, occupa 20,5 Mb; il file prodotto si limita invece a 2,2 Mb. Il video è codificato a 120Kbit/s e l'audio, stereo, a meno di 20 Kbit/s.

Per la conversione ho usato un set di strumenti free: FFMpeg, Mplayer, GPAC e Nero AAC Codec.

Audio:

L'estrazione dell'audio da una sorgente dvd (formato vob) e la codifica in formato wave è stata eseguita con ffmpeg:

ffmpeg -i VTS_01_1.VOB -vn -ac 2 -y audiodump.wav

Questo metodo non ha funzionato sulla mia linux box per l'encoding da sorgente quicktime (formato .mov). Dopo alcuni tentativi inspiegabilmente "silenziosi", ho deciso di utilizzare mplayer per la conversione in formato wave della traccia audio dei file in formato .mov:

mplayer clip.mov -vo null -vc null -ao pcm:fast

A questo punto ho convertito le tracce audio stereo in HE AAC v2 (formato preferibile per bitrate così bassi) con Nero:

neroAacEnc -if audiodump.wav -of audio_aac2.mp4 -q 0.08 -hev2

Video:

Per la codifica del video ho utilizzato ffmpeg in modalità 2pass utilizzando i parametri di codifica che riporto nel codice. Questa configurazione ha dato ottimi risultati su gran parte dei clip provati. Ovviamente risultati migliori possono essere ottenuti ottimizzando la configurazione di queste opzioni a seconda del file da codificare.

Nel tentativo di limitare il tempo necessario alle operazioni di encoding, le opzioni utilizzate per il primo passo sono meno impegnative per il processore (trellis=0, suqb=6, me non di tipo umh).

  • #Coding filmato (passo 1)
  • ffmpeg -y -i clip.mov -an -pass 1 -vcodec libx264 -b 120k -maxrate 120k -s 320x208 -aspect 4:3 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -subq 6 -trellis 0 -refs 5 -bf 5 -b_strategy 1 -coder 1 -me_range 16  -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.71 -qmin 10 -qmax 51 -qdiff 4 -deinterlace output.mp4
  • #Coding filmato (passo 2)
  • ffmpeg -y -i clip.mov -an -pass 2 -vcodec libx264 -b 120k -maxrate 120k -s 320x208 -aspect 4:3 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -me umh -subq 7 -trellis 2 -refs 5 -bf 5 -b_strategy 1 -coder 1 -me_range 16  -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.71 -qmin 10 -qmax 51 -qdiff 4 -deinterlace output.mp4

A questo punto la traccia audio e quella video sono state riassemblate utilizzando comandi MP4BOX:

  • MP4Box -add output.mp4#video output.flv
  • MP4Box -add audio_aac2.mp4#audio output.flv

Il risultato dell'encoding con questi parametri è visibile qui:

 

Considerando che normalmente un buon mp3 è codificato a 128kbps, vedere un filmato completo a 140kbps mi sembra un ottimo risultato.

Commenti

Inviato da Roberto Selvetti il 09 dicembre 2008 16:16
Notevole il tuo risultato si vede bene , mi permetto di segnalare anche questo link http://www.bitmoov.com/italy/?page_id=14
mi sapete dare indicazione di come fanno ??
Ho provato i tuoi settaggi ma abbassandoli a 200 o 500 ottengo pessimi risultati.
Inserisci un commento

I campi contrassegnati con " * " sono obbligatori




Creative Commons License Valid XHTML 1.1 Valid CSS [Valid RSS] Powered by SmartControl