Procedure del VirtualDub

Riepilogo delle Sezioni



Effettuare la reindicizzazione dei keyframe - risolve i problemi di "navigazione" lenta all'interno del video
Estrarre una traccia audio AC3 da un file AVI
Estrarre una traccia audio MP3 da un file AVI
Fare "Frameserving" da VirtualDub

IVTC
Miscelare assieme audio non compresso e video compresso (e contestuale compressione in MP3)
Miscelare i file AVI e gli MP3
Ricampionamento audio per i SVCD
Ridimensionamento per i SVCD - come ridimensionare qualsiasi sorgente per una successiva ricodifica in SVCD
Ritardare una traccia audio - risolvere i problemi di asincronia fra audio e video
Sincronizzazione manuale - risolvere i problemi di sincronizzazione audio video
Suddividere i file AVI in più parti
Unire due o più file AVI
Unire due o più file AVI (avanzato)

 

Fare "Frameserving" da VirtualDUB

Andate nella directory del VirtualDub ed eseguite AUXSETUP.EXE, nel menu che sarà aperto, clickkate "Install Handler".

Dopo aver installato il gestore (handler), doppio-clickkate su "PROXYON.REG" che si trova nella sottodirectory AVIPROXY della directory VirtualDub. DEVI disintallare il frameserver avviando PROXYOFF.REG una volta finito l'encoding.

Avviare il Frameserver

Ora, assumiamo che tu non abbia ancora caricato alcun file AVI, apri il tuo file video (Control - o), ed imposta nel menù video --> full processing mode.

Poi clikka su File-->Start Frame Server ed OK alla schermata che appare. Ti sarà richiesto di specificare un filename .vdr. Sbattitente, e scrvi il nome del file con l'estensione .avi, ad esempio: server.avi. una volta fatto, dovrebbe apparire la successiva schermata, e per ora è fatta.

passiamo alla parte importante: Lascia lavorare VirtualDub/Nandub finchè non ha finito l'encoding. Se premi Stop serving il frameserver si ferma ed il tuo programma di encoding non può continuare (o iniziare).

Qui si conclude la parte dedicata al frameserving e puoi premere il link INDIETRO. Non chiudere VirtualDub o premere il bottone Stop serving prima che sia conclusa la sessione d'encoding.

 

 


Miscelare assieme audio non compresso e video compresso

Se hai già compresso l'audio vai alle istruzioni speciali.

Video Options



Apri il video. Poi seleziona il tuo file audio che ovviamente, comprimeremo adesso- sarebbe un mastodontico spreco di spazio se non lo facessimo, quindi seleziona audio compression ed imposta l'audio a full processing move. Dato che il video è già stato compresso, ci basterà copiarlo com'è, quindi nella sezione video seleziona direct stream copy. 
Se hai usato FlaskMpeg ed hai abilitato audio processing allora è meglio che selezioni AVI audio piuttosto che WAV audio. 

Seleziona Audio - Compression per scegliere il formato di compressione.

Scegli il tuo codec audio codec qua. Anche se vedi l'opzione DivX audio ti sconsiglio vivamente di usarla. DivX audio ha un sacco di problemi in sincronia e, cosa più importante necessita che tu faccia il downsample a 44.1KHz che implica una perdita in qualità ed altri piccoli problemucci.

48KHz MP3 è chiaramente la miglior soluzione.  



Avvia adesso il proceso premendo F7. Ci vorranno da 10minuti a 2 per ottenere il tuo film (con un pò di fortuna sarà anche sincronizzato).

>> Approfondisci l'argomento
Sincronizzazione manuale

Sincronizzazione manuale

Se ti sei imbattutto in un video fuori sincrono qua c'è scritto quello che devi fare. Puoi anche dare uno sgardo al metodo alternativo, che dovrebbe essere più semplice ma ha bisongno di più programmi. 

Punto 1: Seleziona l'intervallo Prima di tutto scegli Video - Frame Range. E ti apparirà la seguente schermata

Qua puoi selezionare la lunghezza del tuo film. Quindi per esempio se devi trovare i giusti settaggi (come spiegato sotto) basta che qui selezioni un 2000 frames piuttosto che encodare il film per intero per poi alla fine accorgerti che i settaggi sono da rifare. Assicurato anche di aver selezionato fast audio compression codec (DivX audio o uncompressed PCM piuttosto che mp3 dato che impiegherebbe troppo tempo nei test).

Punto 2: Allineamento con la sorgente

Parliamo un pò di Interleaving: Premi CTRL-I per accedere a queste opzioni. Se il video è fuori sincrono fin dall'inizio (se non lo è vai al Punto 3)devi trovare il giusto Source displacement (allineamento con la sorgente). Se il video appare prima dell'audio (vedi James Bond muovere le labbra e solo dopo odi "My name is Bond, James Bond") significa che devi traslare l'audio a "sinistra" - o applicare un valore negativo per il Source displacement. Se l'audio audio è in anticipo rispetto al video devi immettere valori positivi. Devi fare molte prove ed aggiustare i valori di conseguenza - non posso darti aiuti più specifici. Solo una cosa: Qualche volta impostando Interleave audio every 500ms piuttosto che every frame aiuta. Quando pensi di aver trovato il valore giusto vai al Punto 3. 

Prima che melo dimentichi: E' possibile che il solo abilitare la funzione di source displacement basti a risolvere i tuoi problemi di sincronia. In questo caso queste istruzioni già non ti sevono più.



Punto 3: Cambiare il framerate

Premi CTRL - R per visualizzare le opzioni relative al Framerate. 

Nel menu Video frame rate control potrai impostare la velocità del video (mentre quella dell' audio rimarrà invariata). Dato che il tuo film perde gradualmente la sincronia (spero tu abbia seguito con attenzione i punti 1 e 2) dobbiamo velocizzarlo/rallentarlo in modo che combaci perfettamente con la velocità dell'audio. Se il video è in aticipo rispetto all'audio (la scena appare sullo schermo prima che tu possa sentirne il suono) devi abbassare il framerate impostandone manualmente uno minore (oppure incrementandolo se l'audio è in anticipo sul video). Questa è l'operazione rischiosa e quindi ti consiglio di cambiare il framerate solo di piccolissime quantità ogni volta (tipo 0.002 fps o poco più). Ancora una volta l'usare un codec audio veloce in ricompressione ci risparmierà un sacco di tempo dato che la compressione in mp3 ce ne farebbe sprecare. Se non riesci a sincronizzare il film neppure cambiando il framerate sei proprio sfigato. Ma fino ad ora posso dirti che a me è sempre bastato il solo source displacement e non credo proprio che esistano film non sincronizzabili.

Ovviamente dopo aver fatto tutto ciò devi risalvare l'avi. Assicurati di aver messo sia l'audio che il video a Direct Stream Copy. 

Metodo alternativo- questo programma si trova nella download section.

FrameRateChanger imageSeleziona il tuo avi clikkando sull'icona della cartella. Poi immetti il framerate desiderato nella casella più in alto, oppure selezionane uno tra le opzioni predefinite. Poi clikka apply.

 

 

 


Metodo Alternativo

Questo metodo melo ha suggerito JD_80 nel newsgoup FlaskMpeg in Delphi.

Prima di tutto scarica questo piccolo programma, ed un wave editor. Spessissimo un'editor wave è fornito nel software di corredo alla scheda sonora, se non ci fosse ti suggerisco CoolEdit oppure un software simile. Dato che ci sono un sacco di tools per fare questa operazione non metto nessuna immagine dato che avrebbe aiutato solo una piccolissima percentuale di voi.

Poi devi indiviuare due punti nel video dove puoi 'tenere sott'occhio' l'audio. Usando il VirtualDub individua due punti tipo quando vengono chiuse delle porte, cambi scena senza dissolvenza, o qualunque altro improvviso cambio d'audio. Un riferimento dovrebbe essere vicino all'inizio del video mentre l'altro verso la fine. Annotati il tempo preciso a cui compaiono questi due punti di riferimento. Li chiameremi V1 e V2.

Usa i bottoni 1 per scorrere avanti/indietro frame per frame nel VirtualDub, ed i bottoi 2 per saltare ai keyframes. Puoi vedere l'esata posizione dove ti trovi nel film guardando nell'angolo in basso a destra. I numeri tra parentesi rappresentano la posizione attuale, ad esempio 0:02:21.236 vuol dire 0 ore, 2 minuti, 21 secondi e 236 millisecondi. Assicurati di essere alla posizione giusta, perchè più sarai preciso, più sarà perfetta la sincronia alla fine del lavoro.

Ora avvia il wave editor, apri il file wav e ritrovaci i punti corrispondenti. Li chiameremi A1 e A2. Segnati anche la lunghezza totale, che chiameremo Ae. Ora torniamo al VirtualDub ed andiamo alla fine del video. Annotati il tempo a cui sei arrivato, che chiameremo Ve (per la fine).

TUTTI QUESTI NUMERI DEBBONO ESSERE TASSATIVAMENTE CONVERTITI IN SECONDI!
numeri tipo: 15042.847

Una volta che avrai tutti i numeri nel formato giusto, avvia un prompt dei comandi, lancia Synch.exe ed immetti i valori che ti ho detto prima di calcolare in secondi. Aggiungi tanto silenzio al tuo wav quanto il tool ti dice di fare oppure taglia l'audio se ti dice di farlo. Usa il wave editor per fare queste operazioni.

Infine, una volta salvato l'audio, segui le istruzioni per il VirtualDub con una sola eccezione: Dopo che avrai impostato tutto, premi Control-R e seleziona "Change so video and audio durations match".

Lo so che sembra complicato, ma una volta fatto diventerà semplice e ti permetterà di ottenere una sincronia perfetta (sempre che tu non faccia misurazioni imprecise sull'audio o sul video).

 

Suddividere i file AVI in più parti

Intanto diamo un'occhiata a come funziona lo splitting in Nanub. Poi potremo fare lo stesso in VirtualDub perchè è un pò più complesso.

Avvia Nandub, premi Control-O per aprire il file AVI. imposta il Video a Direct Stream Copy:

Premi il tasto Home sulla tua tastiera, seguito da Control-Shift-J (oppure Edit - Go to last keyframe se preferisci lavorare col mouse):

Adesso immetti la dimensione dell CD sottratta di circa 2 MB. Dato che puoi tagliare solo in corrispondenza dei keyframes significa che, inserendo l'esatta dimensione del CD, può darsi che il keyframe a cui avviene il taglio sia qualche megabyte dopo il limite da te stabilito e tu vada fuori dimensione.

Premi OK e vedrai Nandub spostare la barra al punto di taglio deciso. Ora premi il tasto End sulla tastiera, e poi F7 per salvare questa prima parte.

Dopo aver salvato premi il tasto home, sposta lo slider principale del Nandub a destra (alla fine della seconda parte NDT), premi End ed F7 per salvare anche la seconda parte.

Ecco fatto :) è tempo di guardare il risultato.

Se ti piace di più lavorare con gli sliders vai qui .. 

Apri il film con VirtualDub. seleziona Video, Select Range: 

Range Selection DialogNon esiste modo di essere completamente sicuri sulla precisa lunghezza finale del file quindi devi sostanzialmente sperare. Se tutt il film è 1300MB e dobbiamo tagliarlo a circa metà (dividi la lunghezza per 2, e poi inserisci il valore nel campo Length... io preferisco lavorare sui frames ma se tu preferisci i tempi è lo stesso). Puoi selezionare la lunghezza con gli offset (un offset d'inizio di 1000 significa che il video inizierà dal frame 1000, un'offset finale di 2000 significa che il video finirà al frame 2000) oppure per lunghezza (length) indicandi il numero di frames/milliseconds. L'ultimo metodo è ovviamente il pù semplice da usare, ma è utilizzabile solo per la prima parte. Quindi seleziona Start offset 0, Length come desiderato, premi ok salva l'avi. Verifica che la dimensione sia la desiderata, se non lo fosse rifai tutto selezionando un'altra lunghezza. Per fare la seconda parte, copia l'End offset che avevi sato per la prima parte e mettilo come start offset per questa seconda, imposta la lunghezza(se stai dividendi in 3 o più parti) oppure imposta End offset a 0 (il che significa: fino alla fine del film). Assicurati che tu sita splittando in corrispondenza di keyframe, non su un normale frame - altrimenti perderai frames e sarà impossibile riunire i files casomai ce ne fosse bisogno.

Attenzione: Assicurati di aver impostato sia Video che Audio a Direct Stream Copy. Generalmente quando avvii VirtualDub l'audio è già in Direct Stream Copy ma non il Video. Se non ce lo metto ci vorranno ore perchè decomprimerà e ricomprimerà l'intero film- non è proprio un metodo funzionale.

Il sottostante slider può essere usato per saltare velocemente da una posizione ad un'altra. I pulsanti marcati con(1) possono essere usati per andare avanti/indietro frame per frame, quelli marcati con(2) servono ad andare avanti/indietro un keyframe alla volta. 

VirtualDub controlbar

In alternativa puoi usare i controlli di navigazione per impostare il range direttamente. Durante queste operazioni è importante la precisa posizione di dove muovi lo slider e, tenendo premuto il tasto Shift, ti assicurerai di muoverti solo sui keyframe. Muovi lo slider alla posizione d'inizio, poi premi Home. Sposta lo slider alla posizione di fine e premi End(i tasti della tastiera NDT). Poi salva il lavoro(F7). Ora premi ancora Home ed imposta questa posizione come d'inizio per la seconda parte, fai scorrere lo slider(tenendo sempre premuto Shift, ovviamente). Ripeti il processo finchè non avrai suddiviso tutto il file AVI nelle parti desiderate. 

 

Unire due o più file AVI

L'ipotesi più semplice si verifica quando i 2 file non si sovrappongono. In questo caso possiamo semplicemente appendere il secondo file alla fine del primo e siamo a posto. In base a come il film era stato tagliato potremmo ritrovarci con un singolo frame duplicato ma è pur sempre qualcosa di difficilmente visibile... Se invece avete dei file che si sovrappongono seguite queste istruzioni. La scelta migliore per questa situazione è Nandub visto che può gestire anche flussi audio MP3 VBR e AC3. Lanciate quindi Nandub, e caricate il primo file AVI.

Selezionate quindi File - Append video segment...

Ora impostate sia il video sia l'audio in direct stream copy.

Video Options

Ora premete F7, scegliete un nome per il nuovo file che andrete a creare (accertatevi che sia diverso dai due file che state unendo), premete quindi OK per salvare. Dopo un po' avrete il vostro film in un unico file!

Unire due file DivX

Devo ammettere che ho tratto la prima idea da questa guida di Nick su DivX Digest. Ma dato che lui mi "nascondeva" la combo low-mo high-mo ho pensato di spiegare tutto anche io.

Immaginiamo di avere 2 files DivX, chiamati movie1.avi e movie2.avi. Carica il primo nel VirtualDub. Poi imposta sia Video che Audio a Direct Stream Copy (Video - Direct Stream Copy, Audio - Direct Stream Copy). Dopo ciò premi Video - Select Range:

Ora immetti un valore piccolo nell' End offset field - nella sezione Frames. Poi salva il file combiandogli nome, diciamo movie1-2.avi. Riapri il file creato con VirtualDub. Appendi il secondo file al primo:
Poi salva l'avi e guardalo. Con un pò di fortuna dovrebbe andar bene.

Adesso cimentiamoci in un numero più pericoloso: Immagina di aver messo un film in DivX ma ad un certo punto hai dovuto interrompere l'encoding. La volta dopo hai ricominciato ma solo dalla posizione a cui eri arrivato. Ovviamente la seconda volta devi incominciare da una posizione precedente alla finale della prima volta, altrimentì mancherà un pezzo di film. Guarda la guida al FlaskMpeg per sapere come impostare il punto d'inizio a piacimento. Hai fatto tutti i preparativi ed adesso sei pronto. Hai due files avi, uno chiamato movie1.avi mentre l'altro movie2.avi.

Carica avi1.avi in VirtualDub. Avvia una seconda volta VirtualDub ed apri in quella finestra movie2.avi. Adesso evi trovare una giusta posizione dove fare l'attacco. Ho notato che è buona cosa appendere a livello dei keyframes. Quindi quello che devi ora fare è guardare con attenzione la fine di movie1.avi. Usa i controlli di VirtualDubper avanzare di un frame alla volta(1) o di keyframe in keyframe (2).

Ed ora il trucchetto: Vai su movie2.avi, guarda il primo keyframe e cerca di trovare il frame esattamente uguale in movie1.avi. O se è troppo difficile cerca la posizione del secondo, terzo keyframe del movie2.avi in movie1.avi. Ho visto che la gente che usa i sottotitoli è molto avvantaggiata da questo punto di vista... quando sei sicuro di aver trovato la giusta posizione seleziona Video - Select Range in movie1.avi, immetti 0 come start offset e la posizione del frame che sei stato a cercare negli ultimi 30 minuti<g> nel campo Length (ancora una volta immenti i Frames, non i tempi). Poi salva l'avi con un nome diverso , diciamo movie1-2.avi . Supponendo che tu non abbia selezionato il primo keyframe in movie2.avi, salva il secondo avi, ma prima di salvare definiamo il Range da salvare: Start offset: Il Keyframe scelto e End offset 0. Dopo aver salvato apri movie1-2.avi nel VirtualDub, scegli File - Append video segment come mostrato in figura ed appendi la versione modificata di movie2.avi o movie2.avi se non hai avuto bisogno di cambiarlo. Otterrai un avi perfetto, neanche un singolo frame sarà perso è tutto rimarrà in sincronia- ovviamente se gli avi di partenza erano già stati sincronizzati... 

Se non si vede bene o se una delle due parti non viene visualizzata bene qua c'è il da farsi, ti dovrebbe essere d'aiuto. 

 

Effettuare la reindicizzazione dei keyframe

Apri il file Avi con VirtualDub, ma spunta la casella Popup extended open options nella parte bassa della finestra.

Poi abilita Re-derive keyframe flags come mostrato nnell'immagine. Sinceramente non so se funzioni, mi hanno detto che lo fa ma,dato che non ho mai avuto problemi a riguardo,non ho mai dovuto usare questa opzione.

 

 

 

 

 

 

 

 

 

 

 

Ritardare una traccia audio

Delay audio track by XY ms è l'opzione che stavi cercando...

 

 

 

 

 



IVTC

Apri l'AVI o l'avs. Premi Control-R

Abilita Inverse telecine e seleziona Reconstruct from fields - adaptive. Puoi anche provare le altre opzioni ma l'algoritmo adaptive è il migliore. 

 

 

 

 

 

 

 

 

 

 

 

Ridimensionamento per i SVCD

Apri l'avi del VFAPI in Virtualdub. Premi Control-F, configura il filtro per i sottotitoli, ed aggiungi il resize filter e configuralo.

Dato che DVD2AVI non effettua correzioni sull'aspect ratio dovremmo farlo noi. Queste sono le impostazioni da usare:

NTSC: 480x360, abilita expand frame and letterbox ed impostali a 480x480.

PAL: 480x432, abilita expand frame and letterbox ed impostali a 480x576.

Questi valori sono buoni solo per film in 16:9 (widescreen anamorfico), nel caso di film in 4:3 devi semplicemente fare il resize alla dimensione corretta senza proccuparti del letterboxing.

Scegli Precise Bicubic sotto filter mode, nearest neighbor , il valore di default, porta a risultati molto scadenti.

Se vuoi anche aggiungere la traccia WAV in VirtualDub (Audio - WAV audio) ricordati di impostare l'audio a direct stream copy (vlore di default) per una miglior velocità. Il Video deve essere messo a full processing mode. Ora chiudi la finestra dei filti ma non chiudere il VirtualDub finchè non hai clikkato sul link indietro.

 

Miscelare i file AVI e gli MP3

Nandub rende semplice questo processo ed accetta tutti i tipi di MP3, non solo i CBR perciò è il programma raccomandato, non usate Virtualdub.

Avvia Nandub ed apri il video (Control-O). Imposta il video a direct stream copy (Video - Direct Stream Copy).

Apri il file MP3 semplicemente selezionando (VBR) MP3 audio dal menu audio e ti apparirà una finestra dove selezionare il file MP3.

Se ti sei scritto un audio delay dapprima imposta l'opzione Interleaving dello stesso menu:

Inserisci il ritardo del file AC3 nel campo Delay audio track by XY ms. Valori negativi vanno scritti con un meno davanti. Poi premi OK. Non c'è bisogno di cambiare altro.

Assicurati che anche l'audio sia impostato su Direct Stream Copy, premi F7 per salvare l'AVI con un'altro nome rispetto al file aperto prima. Se l'audio è desincronizzato dopo questa operazione leggiti la guida su come sincronizzare l'audio.

 

Ricampionamento audio per i SVCD

Premi Audio - WAV audio e seleziona il tuo file WAV.

Se è a 48KHz devi fare il downsample a 44.1KHz che è il sample rate delle specifiche richieste dal SVCD. Premi Control-A per far apparire la finestra di audio conversion.

Seleziona 441000Hz sampling rate ed abilita High quality.

 



Aggiungere audio non compresso

Avvia VirtualDub e premi Control - O per caricare il file video. Assicurati poi di aver impostato il video a direct stream copy (Video - Direct Stream Copy). Poi apri il tuo file audio (Audio - Wav Audio...) e controlla che anche lui sia impostato a direct stream copy. Premi F7 per salvare l'avi.

Estrarre una traccia audio AC3 da un file AVI

Lanciate Nandub, premete Control-O per caricare il file AVI, impostate quindi l'audio su direct stream copy.

Ora selezionate File - Save WAV.

Scegliete un nome, premete quindi OK per lanciare l'estrazione.


Non è ancora finita. Il file AC3 che abbiamo appena estratto include un WAV header e questo farà sì che qualsiasi applicazione che gestisce i file AC3 lo consideri un file invalido o corrotto. Per sistemare questo inconveniente dovete lanciare BeSliced, trascinate il file in oggetto sulla piccola finestrella di BeSliced e selezionate Fix File! dal menu che vi appare.

BeSliced andrà a creare un nuovo file AC3 dal nome audio_Fixed01.ac3 (ipotizzando che il file originale abbia nome audio.ac3) e questo è un file che tutti i programmi saranno in grado do gestire correttamente.

 

Estrarre una traccia audio MP3 da un file AVI

Lanciate VirtualDub, premete Control-O per caricare il file AVI, impostate quindi l'audio in full processing mode.

Ora selezionate File - Save WAV.

Scegliete un nome, clikkate quindi su OK per dare inizio all'estrazione.



Vi ritroverete con un file WAV di grosse dimensioni. Dal momento che abbiamo impostato il full processing mode abbiamo in effetti scompattato il flusso audio MP3 trasformandolo in un file WAV non compresso. Questa è una scelta preacuzionale dalmomento che molti dei programmi che accettano file MP3 in entrata si sono rivelati inaffidabili e incostanti con questo formato, mentre un audio WAV in entrata non è mai un problema.

 

Questo documento è stato aggiornato il 24 Novembre 2003
Traduzione di babaz il 10 Ottobre 2004