In un’operazione di “pulizia” del mio vecchio sito personale (che confluisce in questo blog) posto qui questo mio vecchio articolo che scrissi nel 2006 o giu di lì. Spero che possa essere ancora di utilità per qualcuno 🙂

Moltissimi amici mi chiedono informazioni sulla mia tecnica di conversione MPEG2 a MPEG4. Ecco finalmente una guida passo-passo per realizzarle conversioni di buona qualità in un modo abbastanza semplice. Senz’altro la mia metodologia non è l’unica per raggiungere risultati soddisfacenti, ma non richiede supercomputer o conoscenze avanzate… quindi… ve la propongo qui di seguito, una volta per tutte 🙂

Questa guida presuppone che siate già in grado di registrare con il computer via satellite (io uso una scheda PCI Technisat Skystar2, dal costo contenutissimo (poco più di 60 euro), collegata ad una normale parabola), oppure dal segnale digitale terrestre (DTT), per il quale si può usare l’antenna tradizionale collegata ad una scheda per la ricezione DTT (è appena uscita la versione DTT della SkyStar, che si chiama Airstar), oppure da una qualsiasi altra fonte digitale in MPEG-2.
Quindi partiamo dal presupposto che abbiate già software in grado di registrare sull’hard disk dei file MPEG (.MPG) con il materiale che volete convertire in DivX. Per reperire hardware e software in grado di fare questo vi rimando ai tantissimi siti che parlano dell’argomento TV sul computer.


Software richiesto per la conversione MPEG->DivX
Gordian Knot, famosissima suite. E’ un software completissimo e gratuito, e va ben oltre le nostre necessità, ma è comunque meglio averlo interamente per qualsiasi evenienza;
AviSynth, il magico (e non proprio intuitivo) programma che svolge la funzione di frameserving, ovvero ci risparmia il fastidio di dover convertire prima i nostri MPEG in “AVI non-compressi” (ENORMI) e solo successivamente comprimerli in DivX. Inoltre per AVIsynth esiste un’infinità di plugin (noi ne useremo qualcuno) in grado di filtrare il nostro video di origine, in modo da manipolarlo in qualsiasi modo, tutto in un colpo solo, e solo successivamente inviarlo alla compressione DivX. Aviysinth è compreso nella suite Gordian Knot, comunque potete anche scaricarlo per installarlo separatamente cliccando sul link all’inizio di questa descrizione.
VirtualDubMod è il programma che useremo, una volta preparato il nostro “progetto” di conversione con Gordian Knot e AviSynth, per comprimere finalmente il nostro materiale in DivX, selezionando inoltre in modo preciso l’inizio e la fine dello spezzone che vogliamo tenere.

Guida passo-passo
La prima cosa da fare, è avviare Gordian Knot (menu Start-> Programmi -> Gordian Knot -> Gordian Knot).
Andiamo nella prima scheda del programma e clicchiamo sul bottone a destra “DVD2AVI“, che avvierà l’omonimo tool.
Premiamo F3 e selezioniamo nella finestra che apparirà il nostro file MPG (per individuarlo dovrete selezionare “All files (*.*)” in “Tipo file”. Diamo poi l’OK alla finestra “File list”;
Quasi sicuramente vedrete comparire un errore (“WARNING! Opening GOP is not closed. The first few frames may be not decoded correctly”)… niente paura, è del tutto normale 🙂 Diamo nuovamente l’OK.
DVD2AVI ci dà la possibilità di impostare l’inizio e la fine della parte di filmato che ci interessa, ma dato che questa selezione non è molto comoda e precisa, rimandiamo questo lavoro a dopo, lo faremo infatti con VirtualDubMod. Quindi premiamo semplicemente F4 per salvare il progetto, dandogli un nome opportuno (vi consiglio di salvarlo nella stessa cartella del vostro file MPG, per non fare confusione).
Attendiamo che DVD2AVI processi il filmato. Si tratta di un’operazione piuttosto veloce.
Quando ha finito, chiudiamo DVD2AVI.

Torniamo a Gordian Knot: premiamo sul bottone “Open”, in basso a sinistra, e selezioniamo il file .D2V che DVD2AVI ci ha appena creato.
Se tutto è andato per il verso giusto, dovreste vedere apparire immediatamente una finestra con un fotogramma del vostro filmato.
Per il momento riportate la finestra principale di Gordian Knot in primo piano e spostatevi nella sua scheda “Resolution”.

  • In “Input resolution” dovrebbe essere già automaticamente selezionata l’opzione “other”, con la risoluzione reale del vostro filmato sorgente (ad esempio 704×576). Dovrebbe essere già tutto ok.
  • In “Input Pixel Aspect Ratio” dovete selezionare il rapporto larghezza/altezza del vostro filmato. Per trasmissioni registrate dalla TV, nella stragrande maggioranza dei casi l’opzione giusta è “PAL non anamorphic (4:3)”. Da sottolineare che questa opzione è valida anche nel caso in cui si sia registrato qualcosa che sulla TV presenta le classiche bande nere orizzontali, poichè comunque la tramissione non è tecnicamente in 16:9 (come un DVD), dato che il segnale riempie comunque i 4:3 delle TV tradizionali (vedi ad esempio il logo della rete televisiva al di fuori delle nostre presunte bande nere). Personalmente ho visto reali trasmissioni in 16:9 solo sulla inglese BBC o in alcuni canali satellitari dedicati alla trasmissione in formato panoramico.
  • In “Crop (before resize!)” si imposta il “ritaglio” ai bordi dell’immagine. E’ quasi sempre consigliabile un leggero crop, dato che praticamente qualsiasi rete televisiva non riempie perfettamente il teleschermo, e spesso ai bordi si possono vedere delle piccole zone nere, oppure con disturbi. Il crop va deciso volta per volta, o almeno ogni volta che si registra da un canale televisivo diverso o una trasmissione diversa. E’ possibile usare la funzione “Auto crop” di Gordian Knot, ma io consiglio di farlo a mano: clicchiamo prima su “Disable” per azzerare eventuali pre-impostazioni, e poi su “Pixel”, per attivare l’impostazione manuale del crop.
    Operiamo poi sui bottoni con le freccine sulla destra: più i numeri si alzano, più linee vengono tagliate: possiamo avere un riscontro immediato di quello che facciamo nella finestra con il fotogramma del nostro filmato che si è aperta prima e che ora è in secondo piano. Tagliate il meno possibile, ma eliminando qualsiasi bordo o disturbo.
    Potete anche operare sullo scroller in basso, nella finestra con il filmato, per selezionare ad esempio un fotogramma molto luminoso, in cui siano evidenti eventuali bordi neri o disturbi. Possibilmente cerchiamo di croppare lo stesso numero di linee a sinistra/destra e sopra/sotto, anche a costo di tagliare qualcosina in più (basta non esagerare!)
  • In “Output resolution” dobbiamo selezionare la risoluzione finale che avrà il nostro DivX. Lasciare la risoluzione originale, che spesso è piuttosto alta, non è una buona idea, in quanto il bitrate che useremo non sarà probabilmente sufficiente per descrivere in modo ottimale un numero di pixel così grande.
    Meglio abbassarla, consiglio di non andare oltre i 512×384, che è un giusto mezzo per non avere immagini troppo sfocate (risoluzione troppo bassa) o troppo “squadrettanti” (risoluzione troppo alta per il bitrate).

La prima parte delle impostazioni è terminata. Torniamo alla finestra sotto (quella con il filmato) e premiamo su “Save & encode”.
Possiamo poi premere su “Preview” per avere un’anteprima… al volo (senza audio) di quello che abbiamo impostato finora. Vedrete aprirsi MediaPlayer (oppure un altro player predefinito per il vostro sistema), con il vostro filmato croppato e ridimensionato secondo le impostazioni che avete appena settato.
Quello che ci interessa per il momento è che il filmato non sia deformato: ovviamente è un controllo che va fatto “a occhio”, verificate che le immagini non siano schiacciate o allungate, e che mettendo a tutto schermo (probabilmente ALT+INVIO) il filmato non abbia bande nere orizzontali o verticali che originariamente non c’erano.
Se tutto è ok chiudete il player (potreste ricevere un errore di sistema, ma non preoccupatevi, non è niente di grave).
(se vi sembra che il filmato sia deformato, non vi resta altro che premere cancel e tornare a Gordian Knot modificando le impostazioni fino a quando non riuscirete ad ottenere un filmato con un rapporto larghezza/altezza corretto).

Anche se probabilmente vi aspettate di dover premere su “Save & Encode” nella finestra “Save .avs”… non faremo così 🙂
Premete invece su “Edit”: vedrete apparire una nuova finestra chiamata “Avisynth Frameserver”. Questo script è preziosissimo, perchè contiene tutte le impostazioni che abbiamo appena inserito in Gordian Knot, più altri strumenti che useremo e modificheremo per ottenere una sorgente ottimale e pronta per essere convertita in DivX.
Selezioniamo tutto il testo e incolliamolo in un nuovo file di testo (usate tranquillamente Notepad di Windows), che salveremo nella stessa cartella dove abbiamo tutti gli altri nostri file MPG, D2V, ecc ecc e a cui dovremo dare l’estensione .AVS.
Gordian Knot ha finito il suo lavoro, chiudiamone tranquillamente tutte le finestre , dato che ci ha dato lo script di AviSynth che è la cosa che ci serviva

Diamo ora qualche aggiustata al nostro file .AVS: predisponiamolo innanzitutto per l’audio, che processeremo dopo ma che comunque ci fa comodo che sia già previsto dallo script. dopo la linea “# SOURCE” vedrete un’istruzione simile a:

mpeg2source(“E:\cartella\nomedelfile.d2v”)

Essa indica la sorgente VIDEO dello script. Andiamo a capo un paio di volte dopo di essa e prepariamo la parte dello script che unirà audio e video. Scriviamo:

video=

seguito dal copia-e-incolla della dicitura di cui parlavamo prima, quindi qualcosa del tipo:

video=mpeg2source(“E:\cartella\nomedelfile.d2v”)

andiamo a capo e aggiungiamo:

audio=MPASource(“percorso-del-vostro-file-.MPA”)

il vostro file MPA si trova sicuramente nella stessa cartella in cui si trovano il vostro .MPG ed il vostro .D2V (controllate che ci sia, cmq!), quindi sarà qualcosa del tipo:

audio=MPASource(“E:\cartella\nomedelfile MPA T01 DELAY -23ms.mpa”)

non preoccupatevi degli spazi, non danno alcun problema. E non rinominate il file MPA: quella dicitura DELAY ecc ecc vi servirà poi!

… condite il tutto con una terza linea che ha il compito di effettuare il mux, ovvero l’unione tra audio e video:

AudioDub(video, audio)

A questo punto però, questa parte dello script deve venire momentaneamente disabilitata, perchè useremo per la codifica video solo la prima istruzione che Gordian Knot ci aveva già inserito (mpeg2source(“E:\ ecc ecc), visto che la codifica in DivX con VirtualDubMod va più veloce in assenza di piste audio, quindi per il momento disabilitiamo queste nuove tre linee inserendo un # al loro inizio.

Il resto dello script potrebbe andare già bene così: come potete vedere è quasi tutto disabilitato (si tratta di funzioni che in effetti non ci interessano), ed è attivato solo il CROPPING, che è quello che abbiamo impostato prima e dovrebbe già essere perfetto così, ed il RESIZING. I parametri di quest’ultimo dovrebbero essere anch’essi giusti, ci chiediamo solo se la modalità di resize che GordianKnot attiva di default (il “LanczosResize”) è quello migliore per il nostro caso, in quanto questo è molto buono nel caso in cui disponiamo di una sorgente pulitissima.
Di solito parlando di trasmissioni televisive, non ci aspettiamo qualità stratosferiche, quindi è meglio sostituirlo con un altro resize più “generico” e per tutte le stagioni: il resize bilineare. Mettiamo quindi un # all’inizio della linea “LanczosResize(…” e aggiungiamo sotto un’altra linea:

BilinearResize(x,y,0.333,0.333)

al posto di x e y dovete inserire i dati che sono già presenti nella linea che avete appena disabilitato, ad esempio:

BilinearResize(512,384,0.333,0.333)

Le modalità di resize sono diverse, e ognuno ha le sue preferite. Se avete tempo e voglia potete provarne di altre e vedere i risultati aprendo volta per volta il vostro AVS con il vostro player preferito 🙂
Personalmente di solito disabilito anche la linea “Undot()”, che a mio parere rallenta ingiustificatamente la compressione, con trascurabili migliorie dell’immagine, a voi la scelta.

L’ultima parte dello script è dedicato al DENOISING, cioè al filtraggio dei disturbi. E’ disabilitata di default, anche se contiene già dei preset pronti per l’uso. Non è obbligatorio attivarla, ma se la nostra sorgente è disturbata, anche poco, è bene effettuare un più o meno leggero filtro, anche perchè la compressione in DivX ne gioverà (una sorgente più pulita e uniforme è più “semplice” da coprimere, per DivX).
Un filtro molto semplice ma efficace è quello di default: il Temporalsoften, che analizza ogni fotogramma rispetto ai suoi predecessori e successori, e cerca di determinare se i cambiamenti tra uno e l’altro sono effettivi movimenti, oppure disturbi (ad esempio il classico “frizzare” delle immagini disturbate della TV, o di una VHS). Le sue impostazioni sono da studiare e vi invito a farvi un giro su Google per avere tutte le informazioni, io mi limito a consigliarvi un paio di preset. Nel caso di una sorgente più o meno pulita ma non perfetta uso:

TemporalSoften(2,2,8,mode=2,scenechange=15)

Nel caso in cui invece i disturbi siano evidenti:

TemporalSoften(7,7,5,mode=2,scenechange=10)

Considerate che più si denoisa, più l’immagine perde naturalezza (e il tempo di compressione in DivX sarà più alto), quindi non abusatene, se non ce n’è bisogno.

Abbiamo finito con lo script: salvatelo e chiudetelo 🙂

  • Apriamo ora VirtualDubMod, premiamo CTRL+O e selezioniamo il nostro .AVS.
  • La prima cosa da fare è selezionare finalmente inizio e fine della parte del filmato che ci interessa. Spostatevi con il comando orizzontale in basso all’interno del filmato e quando trovate il primo fotogramma da cui volete che il filmato finale parta, premete HOME sulla tastiera (il tasto sopra a FINE). Spostevi poi all’ultimo fotogramma con il quale volete che il filmato finale si concluda e premete sulla tastiera il tasto FINE. Vedrete illuminarsi sulla barra di navigazione la parte che avete selezionato tra inizio e fine.
  • Ora dobbiamo impostare la qualità della compressione DivX. Selezionate Compression dal menu Video e premete sul tasto Configure, dopo aver selezionato il codec DivX dalla lista dei codec che vedrete apparire.
  • Obbligatoriamente impostate a Slow la Encoding performance (ovvero qualità massima, tempo di compressione massimo: se volevate comprimere alla veloce senza guardare alla qualità non penso che sareste arrivati fino a qui in questa guida 😀 ).
  • Il bitrate va impostato secondo le vostre esigenze: vi potete aiutare con la funzione “Bitrate calculator”, in cui potete inserire la lunghezza del vostro filmato, il bitrate al quale prevedete di comprimere l’audio (consiglio di non scendere sotto i 128bps) e il numero di Megabyte massimo che volete raggiungere: il calculator vi risponderà a che bitrate impostare la compressione. Per darvi un’idea di massima, un filmato a 512×384 si vede “piuttosto bene” sopra i 1000Kbps (ovvero circa un Megabit al secondo), e un’ora di filmato a questo bitrate, con un audio a 128Kbps, occupa poco meno di 500Mb. Anche in questo caso la scelta va al vostro gusto.
  • In Encode mode scelta obbligata: “Multipass, 1st pass”, ovvero preannunciamo che effettueremo una compressione a più di un passaggio (per forza: la compressione a singola passata ci costringerebbe ad un crollo della qualità), e che questo è il primo delle passate (in realtà ne effettueremo solo due, in tutto, dato che una terza aumenterebbe la qualità in modo trascurabile, a fronte di un aumento davvero consistente del tempo totale di compressione). Diamo l’OK.
  • Salviamo le impostazioni (ci serviranno poi per l’audio) con CTRL+S, e diamo il via alla compressione in DivX: premiamo F7 e scegliamo un nome per il nostro DivX.
    La compressione inizierà: potete impostare “in corso d’opera” la priorità di VirtualDubMod a “Idle”, in modo da poter utilizzare il PC mentre la compressione è in corso, senza subire grossi rallentamenti (ovviamente questo aumenterà il tempo di compressione, a seconda di quello che fate con il pc nel frattempo); potete anche disabilitare l’anteprima del video in input e output per sprecare qualche risorsa in meno 🙂

Quando la compressione sarà terminata, non preoccupatevi se il vostro DivX risulta illeggibile e di dimensioni microscopiche: la prima passata di una compressione multi-passaggio serve praticamente solo ad analizzare in modo profondo il filmato di origine, in modo da calibrare in modo preciso la seconda passata, che opera la compressione vera e propria. Quindi quando la prima è finita, torniamo in Video -> Compression e cambiamo il solo Encode mode a “Multipass, Nth pass”. Diamo l’ok e premiamo di nuovo F7 scegliendo lo stesso file AVI di prima (sovrascrivendolo). Attendiamo la compressione.

Al termine del secondo passaggio dovremmo avere finalmente il nostro DivX funzionante e visibile, senza audio.
Chiudiamo VirtualDubMod (probabilmente riceveremo un errore di sistema) e apriamo il nostro AVS con Notepad: è tempo di attivare le tre linee che avevamo prima disabilitato, quindi togliamo i cancelletti a “video=…” , “audio=….” e “AudioDub(video, audio)”. Mettiamo invece un cancelletto prima di mpeg2source(“…

Riapriamo VirtualDubMod e carichiamoci di nuovo l’AVS, ora modificato. Carichiamo con CTRL-L anche il file con le impostazioni che avevamo salvato prima di avviare il primo giro di compressione, ma prima apriamolo con notepad (è il file con estensione .VCF) ed eliminiamo la prima linea, ovvero: “VirtualDub.video.DeleteComments(1);”, altrimenti avremo problemi con l’audio.
Selezioniamo “Stream list” dal menu “Streams” e clicchiamo su “Save WAV”, dando un nome al nostro audio, ad esempio audio.wav 🙂
Attendiamo il demuxing dell’audio, di cui dovrebbe venire salvato solo lo spezzone corrispondente allo spezzone del video che avevamo selezionato (a questo ci è servito salvare le impostazioni di VirtualDub, prima…).

Ora dobbiamo comprimere in MP3 il nostro audio: si può fare con un’infinità di programmi, io consiglio Lame, che assicura grande qualità a costo zero (infatti è gratis). Purtroppo non ha una interfaccia grafica “di serie”, quindi lo chiameremo da linea di comando. Cliccate su Start e selezionate “Esegui…”, quindi scrivete CMD e premete invio per aprire una finestra con linea di comando. Trascinateci dentro lame.exe che trovate nell’archivio che avete scaricato e aggiungete poi uno spazio e la dicitura:

–alt-preset 128 “e:\percorso-del-vostro-file-audio\audio.wav” “e:\percorso-del-vostro-file-audio\audio.mp3”

Quindi la linea completa dovrebbe essere qualcosa del tipo:

C:\lame-3.96.1\lame.exe –alt-preset 128 “e:\percorso-del-vostro-file-audio\audio.wav” “e:\percorso-del-vostro-file-audio\audio.mp3”

Se volete comprimere in modalità monofonica (ad esempio se il vostro audio sorgente è mono, è inutile comprimere in stereofonia), aggiungete “-m mono” (senza apici, ovviamente) dopo 128, e se volete comprimere ad un altro bitrate, sostituite “128” con quello da voi scelto (ad esempio 160 o 192).
Attendete poi la fine della compressione audio (che comunque sarà molto più breve di quella video!)

Abbiamo praticamente finito… rimane solo da unire il nostro video DivX con il nostro audio MP3. Aprite nuovamente VirtualDubMod e premete su CTRL-O. Selezionate il file AVI, ripondete NO alla domanda che VirtualDubMod vi porrà e poi selezionate “Direct stream copy” dal menu “Compression” (ovvero non effettueremo alcuna compressione).
Aprite di nuovo “Stream list” dal menu “Streams” e premete su “Add”, selezionate quindi il vostro file MP3 generato da Lame, rispondendo NO alla domanda che vi verrà posta. Cliccate con il tasto destro del mouse sulla pista audio che avete aggiunto e selezionate “Interleaving…“. Inserite quindi in “Delay audio track by” il numero di millisecondi scritto nel nome del file MPA che DVD2AVI vi aveva generato all’inizio (probabilmente si tratterà di zero, oppure un valore negativo).
Questa operazione dovrebbe garantire una perfetta sincronizzazione audio/video nel filmato finale.

Date OK alle 2 finestre rimaste aperte e premete F7 per salvare il vostro AVI finale. Al termine del muxing (è un’operazione piuttosto veloce) dovreste trovarvi sull’hard disk… finalmente il vostro AVI in DivX, con audio MP3. Finito e completo 🙂

3 comments on “Guida alla conversione da MPEG2 a MPEG4 (DivX)

  • Già fatto… in forma privata 😉
    Si è verificato un problema durante una procedura amministrativa sul dominio, già corretto. Appena si aggiornano i DNS il sito tornerà visibile.

  • I am looking for some idea and stumble upon your posting 🙂 decide to wish you Thanks. Eugene

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.