Tecnologia e non solo

gennaio 17, 2009

Codifica video h264 o divx xvid con HandBrake

Filed under: Dvb — telperion @ 3:59 pm

Era da un po che cercavo una alternativa su linux a megui + avisynth di windows, per codificare in x264 AAC le mie registrazioni DVB-T successivamente tagliate con projectx e muxate con mplex in modo da ottenere un file mpg da dare in pasto al codificatore.


Il “programma perfetto” per compiere questa operazione si chiama
HandBrake che converte video o dvd in xvid o x264 con svariati profili editabili, in vari tipi di “container” (avi mp4 mkv ogm mp4), ed ha la caratteristica di contenere al suo interno tutti i codec, muxer e librerie necessarie al suo funzionamento esclusa la decss per la quale si appoggia al sistema o a vlc (windows).
É disponibile per Linux Windows ed OSX oltre che in sorgente.


Ho scaricato i sorgenti della versione 0.9.3, e lo ho compilato su Gentoo ~x86 e su Ubuntu 8.10 A64 per vedere se l’architettura a 64 offriva un guadagno prestazionale in una operazione molto pesante come la codifica x264.

La compilazione di handbrake e tutte le librerie inglobate (codec e muxer) è stata in entrambi i sistemi ottimizzata con march e mtune=core2, avendo appunto io un Intel E2180.

A differenza di Megui, HandBrake supporta solo i dvd ed i file audio/video muxati, niente transport stream mpeg (.ts .m2t) che lo mandano in confusione, quindi il materiale DVB registrato va demuxato con projectx e gli stream risultanti (.mp2 .mpv) vanno muxati in un program stream mpeg con mplex (linux) o TMGmpeg (win) o qualsiasi altro muxer mpeg2.
Anche l’AAC è disponibile solo in versione simple dalla libreria FAAD, mentre su megui potete usare, se presenti, librerie proprietarie installate da programmi commerciali (come nero ad esempio) per usare AAC High profile che consente compressioni audio più spinte.
Sono disponibili tramite interfaccia comode opzioni di taglio, denoise deinterlace (per materiale video interlacciato), e impostazioni di tutti i parametri video ed audio della conversione.

Consiglio di usare
preset – high profile – film (AVC)
per i risultati migliori, con l’opzione preview Align Dimension (mod 16) attivata o il codec x264 dà i numeri (vedi prima immagine).

Sono molto soddisfatto dalla qualità e velocità di HandBrake (termine di paragone megui). Apprezzo anche la scelta su Linux di non appoggiarsi alle libreria di sistema, ma di integrare tutto il necessario, che visto il numero di librerie coinvolte in continua evoluzione, ci eviterà brutte sorprese come i famosi programmi non funzionanti dopo l’aggiornamento di qualche libreiria di sistema, ffmpeg ed x264 in primis.
I profili di conversione che modifichiamo per le nostre esigenze, si possono salvare per essere riutilizzati.

Ora il test comparativo, con lo stesso file mpg egli stessi parametri, dato in pasto prima ad Ubuntu 64 e poi a Gentoo ~x86 sullo stesso pc.

Free Image Hosting at www.ImageShack.us

Con sommo dispiacere rilevo che l’architettura a 64 nuovamente non comporta alcun tipo di vantaggio, 15,12 frame per secondo di media contro i 15.77 della x86 (vedi immagine), quindi l’ennesimo flop delle annunciate “meraviglie” del 64 bit, tutto “marketing & placebo”.

Test con profilo classic (ASP).
HandBrake 0.9.4 svn 2086.
Stesso video con xvid ridimensionato 576×320 target 300MB
105 frame/secondo su Gentoo ~x86 (nell’immagine)..
105 frame/secondo su Ubuntu 8.10 A64.

Free Image Hosting at www.ImageShack.us

Con ffmpeg ridimensionato 576×320 target 300MB
185 frame/secondo su Gentoo ~x86 (nell’immagine).
185 frame/secondo su Ubuntu 8.10 A64.

Free Image Hosting at www.ImageShack.us

Il coder video theora viaggia a circa 80 frame/secondo, ed a parità di target / bitrate offre una qualità video inferiore a “vista” per cui ve lo sconsiglio.

Purtroppo con xvid e ffmpeg non si possono cambiare i parametri del codec (ad esempio in xvid sono molti), ma il risultato visivo è comunque buono (meglio con xvid).

Resta la soddisfazione di aver trovato in HandBrake un ottimo software per codificare film e programmi a risoluzione elevate, altissima qualità e dimensione di file ridotta.

Consigliatissimo per Linux Windows ed OSX.

About these ads

13 commenti

  1. Per curiosità… hai sotto mano un processore AMD? Per vedere se è vero che in percentuale le CPU AMD guadagnano di più con il passaggio ai 64 bit.

    Commento di lele85 — gennaio 17, 2009 @ 5:56 pm

  2. @lele85
    ho un A64 3800+ ma non ci installo 2 distribuzioni per provare :D

    Ritengo che l’uso delle SSSE3 del core2 (vedi la finestra ghb nell’immagine in miniatura), velocizzi di molto sia a 32 che a 64bit, quindi la differenza di prestazioni tra le architetture è praticamente ininfluente.

    Commento di telperion — gennaio 17, 2009 @ 6:15 pm

  3. Si probabilmente è talmente tanto il vantaggio che portano le estensioni SSE da livellare il vantaggio (o lo svantaggio) di architettura. Purtroppo non ho PC con processori a 64 bit altrimenti sarebbe piaciuto fare anche a me delle prove.

    Commento di lele85 — gennaio 17, 2009 @ 6:25 pm

  4. @lele85
    un raddoppio (o anche meno) di velocità mi avrebbe fatto comodo.
    Ma le favole son favole. :D

    Commento di telperion — gennaio 17, 2009 @ 6:29 pm

  5. Wow, grazie della dritta mi serviva proprio.

    Aaaaaa, doom9, quanti ricordi… ho trovato ancora un paio di miei post del 2002…

    http://forum.doom9.it/viewtopic.php?f=13&t=7426

    http://forum.doom9.it/viewtopic.php?f=13&t=11542

    A quanto pare sono ancora un “must”.

    Gli altri sono andati persi, sigh … come la mia memoria :D

    Commento di Steno — gennaio 19, 2009 @ 11:03 pm

  6. [...] miei video delle registrazioni DVB-T codificate con Hanbrake in mp4 o mkv, (h)x264 AVC con risoluzione 720xY impegnano la cpu solo al 7% con [...]

    Pingback di Xbcm media center e VDPAU. « Tecnologia e non solo — maggio 11, 2009 @ 4:06 pm

  7. [...] Con menu – visualizza – controlli avanzati apparirà anche il tasto registrazione che, se premuto salverà un file vlc-record-DATA-CANALE-PROGRAMMA.ts nella home che protete rivedere con lo stesso vlc o trattare con ProjectX e ricodificare con HandBrake. [...]

    Pingback di Vlc e digitale terrestre (DVB-T) su linux. « Tecnologia e non solo — maggio 30, 2009 @ 4:52 pm

  8. [...] che i file a risoluzione 1920×1080 sono enormi. Si possono ricodificare con handbrake, ma i tempi di elaborazione sono [...]

    Pingback di DVB-T HD con (s)mplayer e VDPAU « Tecnologia e non solo — ottobre 14, 2009 @ 12:49 am

  9. Io codifico ‘on the fly’ il flusso dvb con il seguente comando:

    mencoder -o $nome.avi -ovc xvid -xvidencopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 “dvb://$canale

    e taglio dopo con avidemux

    La qualità è sicuramente peggiore. Hai dei suggerimenti per migliorarla? Che differenza c’è tra handbrake e mencoder? dal sito ( http://trac.handbrake.fr/wiki/IsIsnt ) si legge:

    HandBrake is not everything for everyone for every need. When you desire a ChickenSandwich, search out a local purveyor of prepared foodstuffs. When you desire an über-tool for all your video encoding needs, learn how to use the command line and seek out projects like mencoder.

    ?!?

    Commento di stele — novembre 5, 2010 @ 10:11 pm

    • La codifica on the fly con bitrate cosi basso (800) perde moltissimo, almeno usa 1800.
      Con HB e x264 con bitrate 1200 in 2 passate è molto meglio, anche se bisogna prima usare projectX e mplex.

      Commento di telperion — novembre 6, 2010 @ 12:03 pm

  10. Ho subito fatto una prova: da un flusso di 1 minuto da 17Mb con 800 viene quasi 7Mb bruttino, con 1800 vengono circa 13mb visibilmente meglio. Per roba che ci tengo farò con HB e x264 con bitrate 1200. Per i cartoni dei miei figli troverò un compromesso qualità/peso. Mi hai fornito la chiave su cui agire. Grazie 1000

    Commento di stele — novembre 6, 2010 @ 1:01 pm

  11. Ciao! Ho installato il programma su debian testing 64 bit ma non trovo il preset “film”.
    Sai se è possibile incorporarlo utilizzando quanto riportato in questa pagina?

    http://trac.handbrake.fr/wiki/BuiltInPresets

    Commento di emmedi — novembre 10, 2010 @ 4:08 pm

  12. Fantastico HandbrakeCLI. Con quello ho potuto fare uno script che automatizza molto ed ho un flusso di lavoro veloce, pratico ed efficiente con la qualità di HB che anche con i preset classic è meglio del comando di mencoder sopra riportato e ci mette 1/3 anche perchè almeno a me sfrutta a pieno il dual core contrariamente a mencoder.
    Grazie a emmedi per la segnalazione e a telperion per l’ottima guida.

    Commento di letiziando — novembre 12, 2010 @ 9:56 pm


RSS feed dei commenti a questo articolo.

The Rubric Theme. Crea un sito o un blog gratuitamente presso WordPress.com.

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 31 follower

%d blogger cliccano Mi Piace per questo: