Video server plug-in e AVIWrapper : i sostituti di avisynth ????
Sin da quando è nato il mio sito, ho dedicato molto spazio all'utilizzo di avisynth, a cui ho tra l'altro dedicato un articolo. Vediamo le caratteristiche, pro e contro di un suo potenziale successore: il video server plug-in.
Xmpeg--->video server plug-in--->Tmpeg e Xmpeg--->avisynth--->Tmpeg |
Introduzione ad avisynth e al meccanismo di client-server
Ecco in breve la storia di avisynth. Il tutto nasce dallo standard "premiere plug-in" inventato dalla Adobe. Premiere come tutti i software di editing non lineare elabora una serie di video in ingresso ( normalmente avi o filmati quicktime) e dopo aver eventualmente aggiunto titoli, effetti, filtri, transizioni,,, si incarica di convertirli in un formato di uscita; Ppremiere 6, l'ultima versione disponibile, permette liberamente di creare in uscita file nel formato avi, Quick time, Real Video, Windows Media Encoder, DV.
Tramite i Premiere plug-in, prodotti da terze parti, è possibile creare in uscita video in altri formati, normalmente mpeg 1 o 2: il funzionamento è semplice, poichè in maniera trasparente e automatica, premiere passa al plug-in il video elaborato in formato non compresso (RGB o YUV per il video e PCM per l'audio) e il plug-in lo comprime secondo i parametri precedentemente impostati. Naturalmente il passaggio dei dati è fatto tramite la RAM del sistema e nessun file aggiuntivo è memorizzato su HD. I plug-in più noti per Premiere sono il CCE Encoder plug-in, LSX Encoder plug-in, BBmpeg plug-in e il Panasonic encoder, quest'ultimo capace di creare solo mpeg1 (il panasonic plug-in compatibile mpeg2 è stato annunciato ma non è ancora disponibile).
A livello di
terminologia, Premiere lo si dice
server
proprio grazie alle sue capacità di Fornire dati al plug-in.
I plug-in sono memorizzati nella cartella plug-in di Premiere (normalmente
C:\Programmi\Adobe\Premiere\Plug-ins ).
Grazie alla possibilità concessa da Adobe, di accedere al pacchetto di sviluppo
relativo al formato Premiere plug-in, sono disponibili altri Software che si
comportano da Server: i più importanti sono FlaskMpeg, Xmpeg, DVDX e Mpeg
Mediator.
Questi software si comportano in maniera analoga a Premiere : leggono dei file
mpeg e passano i dati (audio-video non compresso) ai plug-in installati nella
directory del programma.
Avisynth partendo
dalle specifiche dei Premiere Plug-in cerca di risolvere un altro tipo di
problema: passare i dati prodotti dal server (Premiere, Xmpeg,..) ad un
qualsiasi Encoder (software di compressione video) che non è disponibile come
plug-in ma che al contrario è capace di leggere solo file avi.
L'esempio classico è il caso in cui si desidera comprimere in mpeg il montaggio
di Premiere o il video decodificato e ridimensionato da Xmpeg, utilizzando il sw
tmpeg, non disponibile come plug-in. Se non si ricorresse ad avisynth, l'unico
metodo possibile in grado di preservare al massimo la qualità, sarebbe la
compressione in due fasi: la creazione con Premiere (o Xmpeg) di un AVI con
audio e video non compresso e la successiva compressione di tale avi in mpeg con
Tmpeg. I problemi di una simile soluzione sarebbero 3: disponibilità di un
adeguato spazio su HD per memorizzare l'avi non compresso, rallentamento della
compressione a causa del doppio passaggio e non ultimo il famoso limite dei 4
GByte ( massima dimensione possibile dell'avi) se si utilizza Windows 98/98SE/ME
(FAT32) o 2 GByte se si utilizza Windows 95 e FAT 16. Solo con Windows
2000/NT/XP e HD formattati NTFS è possibile creare avi con dimensione
superiore ai 4 GB.
La soluzione geniale trovata da Ben Rudiak-Gould, autore di Avisynth (che è un normale plug-in di Premiere), è quella di creare un meccanismo tale che il server (Premiere, Xmpeg,..) ha il compito di creare fotogramma per fotogramma il flusso audio-video non compresso nella RAM del computer; il client, ovvero un qualsiasi software capace di leggere avi e creare mpeg (o in generale flussi audio-video compressi), accede alle locazioni della RAM in cui sono presenti il/i fotogrammi non compressi e l'audio, e comprime tali fotogrammi in mpeg (in generale nel formato compresso). Osservo come il client può essere semplicemente un software capace di visualizzare gli avi, vedi il Windows Media Player.
Tale meccanismo, che un pò arbitrariamente chiamo catena, negli articoli del mio sito lo trovate simboleggiato come server-->avisynth--> client: ad esempio Premiere-->avisynth--->Tmpeg o Flaskmpeg-->avisynth--->Tmpeg.
Come si crea
concretamente la catena, lo trovate descritto nell'articolo sull'avisynth e in
generale in tutti gli articoli in cui tale metodo è utilizzato. La premessa è
che sotto Windows l'estensione dei file molte volte non ha alcuna importanza:
provate ad esempio a rinominare un video mpeg1 cambiando l'estensione (da
test.mpg a test.aaa); tale mpeg se caricato con il media player verrà
riconosciuto e letto senza alcun problema.
Poiché i client (gli encoder) sono normali software capaci di leggere avi e
l'unica maniera per caricare un video è quella di aprire l'avi, allora come più
volte visto con il client ( premiere,Xmpeg,..) si setta in uscita l'avisynth
plug-in, si sceglie come nome del file semplicemente "1" e si avvia la
conversione; con il client si carica un particolare file di testo che nelle mie
distribuzioni di avisynth è detto carica.avs e per ultimo si avvia la
conversione con il server. Il server, non sapendo dell'inghippo penserà di
leggere un normale file avi memorizzato su HD; in realtà accederà ai fotogrammi
non copressi che di volta in volta il client gli passerà.
L'unico importante svantaggio di tale metodo, al di là dell'apparente complessità che fatta un po' di pratica svanisce, sta nel fatto che non tutti gli encoder funzionano correttamente come client: uno dei software più famosi incompatibile con avisynth è il noto CCE Encoder Stand alone (LSX encoder diventa compatibile con una leggera modifica descritta nell'articolo sull'avisynth).
Avisynth in realtà è
molto più di un semplice plug-in che passa i dati dal server al client come
visto: tramite avi synth, e in particolare con le nuove versioni è possibile
utilizzare le sue numerose capacità di elaborazione audio/video: avisynth
diventa a tutti gli effetti un macrolinguaggio di programmazione specializzato
unicamente in elaborazioni di flussi audio-video
Tramite un file di testo che elenca una serie di operazioni compatibili con tale
linguaggio (uno "script"), memorizzato con l'estensione avs, è possibile
trasformare avisynth addirittura in un server (un premiere in miniatura) capace
di leggere, unire, elaborare uno o più file audio-video (anche in successione) e
passarli sempre in formato non compresso, al client. Grazie alla possibilità di
utilizzare delle librerie esterne, è capace addirittura di decodificare e
elaborare perfettamente video mpeg2 e di passarli al client che li vedrà
semplicemente come avi non compressi. Chi è interessato a tale utilizzo, trova
una ottima base di partenza su
www.videotools.net/ : esistono tra l'altro
software che creano automaticamente degli script per avisynth, uno tra questi
l'utilissimo e complicato GordianKnot (
http://www.doom9.org sezione download) che si
aggancia tra l'altro al mitico DVD2avi.
A titolo di esempio, un po' per...... stuzzicare l'appetito, uno
script di avisynth che decodifica, ridimensiona (da 720*576 anamorfico a 480*576
non anamorfico) , filtra con un filtraggio antirumore un DVD utilizzando un file
progetto creato con DVD2avi e un paio di librerie esterne tutte ovviamente
freeware.
loadplugin("c:\avisynth\mpeg2dec.dll")
loadplugin("c:\avisynth\Avisynth_Spatial.dll")
v=mpeg2source("c:\videotest.d2v")
a=wavsource("c:\videotest.wav")
audiodub(v,a)
bicubicresize(480,432)
addborders(0,72,0,72)
SpatialSoftenMMX(1,4,6,false,false,4,4,6,8)
Facendo leggere tale script, memorizzato ad esempio nel file test.avs a tmpeg, è possibile avviare la conversione per la creazione di un SVCD 480*576 non anamorfico.
Video server plug-in e AVIWrapper.
I pretendenti alla successione di avisynth sono il Video server plug-in e AVIWrapper. Occorre un minimo di attenzione per capire il ruolo che hanno Video server plug-in, AVIWrapper e avisynth, che come vedremo possono tranquillamente convivere insieme.
Ritorniamo ad avisynth che potete scaricare dal mio sito (è una distribuzione aggiornata): Avisynth_03.zip.
Avisynth per funzionare come "catena" tra client e server necessita di 2 componenti: la libreria di avisynth che è il file avisynth.dll e il premiere plug-in CM-Avisynth.prm da inserire nella directory plug-in di Premiere e da copiare nella directory di tutti i server (FlaskMpeg, Xmpeg, DVDX e Mpeg Mediator..) che desiderano utilizzare avisynth. Poichè Xmpeg e Flaskmpeg richiedono che i plug-in utilizzati siano chiamati rispettivamente Nome.cm.xmpeg e Nome.cm.flask occorre prima copiare CM-Avisynth.prm nelle directory dove ci sono gli eseguibili di Falskmpeg e Xmpeg e poi rinominarli in Avisynth.cm.flask e Avisynth.cm.xmpeg.
Nella mia distribuzione di avisynth trovate i file avisynth.dll, CM-Avisynth.prm, Avisynth.cm.flask e Avisynth.cm.xmpeg, questi ultimi 3 identici (cambia solo il nome).
Per la installazione
occorre installare una volta per sempre la libreria avisynth.dll : per far
ciò sotto Windows 95/98/98SE/ME basta copiarla in
Windows/System ed eseguire poi il file install.reg:
sotto Windows 2000/NT/XP basta
copiarla in
Windows/System32 ed eseguire poi il file install.reg.
Per la installazione dei
plug-in basta copiare CM-Avisynth.prm nella directory plug-in di Premiere
e nelle directory in cui ci sono DVDX e Mpeg
Mediator; copiare Avisynth.cm.flask in tutte le directory in cui ci sono delle
versioni di Flaskmpeg e Avisynth.cm.xmpeg in tutte le directory in cui ci sono
delle versioni di Xmpeg (non voglio offendere l'intelligenza di
nessuno, ma è ovvio che chi non usa tutti i software (server) citati, si dovrà
preoccupare solo di copiare i plug-in dove occorre).
E' fondamentale capire la differenza che passa tra la libreria avisynth.dll installata nel sistema e i premiere plug-in (ad esempio Avisynth.cm.xmpeg) installati per ogni server. Avisynth.dll serve al client (tmpeg, windows media player,...) a interpretare correttamente il file.avs mentre ciascun premiere plug-in serve a passare i dati non compressi del video ad avisynth ( la libreria avisynth.dll) che si preoccuperà di passarli al client.
Noto che tutte le proprietà di elaborazione di avisynth (ridimensionamento, ritaglio,...) sono racchiuse all'interno della libreria avisynth.dll e sono assolutamente indipendenti dai premiere plug-in: non a caso il file di script che a titolo di esempio ho riportato funziona tranquillamente anche se non si possiede nessun server (premiere, xmpeg,..): altra cosa importante è quella di non mischiare versioni diverse di Avisynth.dll con i premiere plug-in : questo lo dico perchè sono presenti sulla rete versioni successive dell'avisynth 03 che funzionano solo con versioni successive dei premiere plug-in che trovate sul mio sito. Tra breve vedremo come utilizzare l'ultima versione di avisynth disponibile, la 1.05.
Chiarite la differenza tra la libreria avisynth.dll e i premiere plug-in CM-Avisynth.prm (Avisynth.cm.xmpeg,..) passiamo alla accoppiata Video server plug-in e AVIWrapper.
In perfetta analogia con la catena Server-->avisynth--->Client (es. Premiere-->avisynth--->Tmpeg), si realizza la catena Server-->video server plug-in--->Client. Il meccanismo teorico è sempre lo stesso: il server (Premiere, Xmpeg,..) scrive nella RAM del sistema il flusso audio video non compresso (fotogramma per fotogramma) mentre i client (Tmpeg, CCE, Ligos LSX ...) non fanno altro che leggere tali dati audio-video non compressi e comprimerli secondo i parametri prestabiliti.
Anche nella pratica il meccanismo di funzionamento è molto simile rispetto ad avisynth, con il vantaggio che questa volta il server (Premiere, Xmpeg,..) tramite il video server plug-in scrive un file avi (per defoult C:\IPCServer.AVI, ma si può tranquillamente cambiare il nome) che ha l'estensione avi e non avs come per l'avisynth: tale avi di dimensioni ridotte a pochi Kbyte, è solo il tramite per permettere al client (Tmpeg, CCE, Ligos LSX ) di accedere alla RAM in cui è presente il flusso audio video non compresso. Con il client basta caricare l'avi (ad esempio C:\IPCServer.AVI ) e avviare la compressione.
In pratica si procede così: all'interno del server (Premiere, Xmpeg,..) si prepara normalmente il video da convertire , si sceglie in uscita di utilizzare il video server plug-in e si avvia la conversione: in una frazione di secondo viene creato l'avi (per defoult C:\IPCServer.AVI); lasciando il server in esecuzione, si esegue il client (Tmpeg, CCE Stand alone), si carica l'avi (C:\IPCServer.AVI nell'esempio) e si avvia la conversione. |
Normalmente l'avi creato dal server (per defoult C:\IPCServer.AVI) viene chiamato "avi virtuale" in seguito al fatto che in realtà è un file di pochi K che non contiene al suo interno il video, ma solo un riferimento a questo.
Vedremo tra breve passo passo come procedere: prima di questo alcune note importanti.
1) Il meccanismo che
permette la creazione della catena Server-->video server plug-in--->Client si
fonda su 2 elementi: il premiere plug-in vero e proprio
cm-videoserver.prm
che andrà copiato nella directory plug-in di premiere e nelle directory di
ciascuno dei server da utilizzare ; è evidente come tale plug-in è
l'analogo di CM-Avisynth.prm e andrà rinominato correttamente ( vedi dopo )
dovendolo usare con Flaskmpeg e Xmpeg.
Il secondo componente è l'AVIWrapper che
consiste nella libreria
Aviwrap.dll
: è l'analogo della libreria avisynth.dll e
serve al client (Tmpeg, CCE encoder,..) per interpretare correttamente gli avi
creati dal video server plug-in.
2)
L'AVIWrapper non dispone delle capacità di elaborazione di avisynth
(ridimensionamento, ritaglio,...che in tutti i casi in nessuna delle mie guide
ho utilizzato) e pertanto creando la catena Server-->video server plug-in--->Client
il flusso audio/video prodotto dal Server viene ricevuto dal client senza alcuna
elaborazione intermedia da parte del videoserver.
3) Creando la catena
Server-->video server plug-in--->Client è possibile senza alcun problema passare
video in formato YUV, utile ad esempio per velocizzare la conversione nella catena Xmpeg--->video
server plug-in---> CCE stand alone
4)
Il video server, non è freeware: per ogni conversione prima dell'avvio occorre
attendere 10 secondi (appare un conto alla rovescia): curioso e direi anche
simpatico il fatto che periodicamente, viene
richiesto prima dell'avvio della conversione il risultato di una somma
matematica ,. Il costo della registrazione è di 15
Euro se fatto via posta o di 12 dollari se si usa la carta di credito.
Se si sbaglia il
risultato della addizione, viene formattato all'insaputa dell'utente l'Hard Disk
!!!! OVVIAMENTE sto scherzando, non succede assolutamente nulla, tranne la
figuraccia di aver sbagliato una somma a 3 cifre !!! A proposito, evitate l'umiliazione di usare la
calcolatrice per fare una somma così banale !!!!!!!!!
PS. Sarà la legge di Murphy ma le addizioni tendono sempre ad avere il riporto:
sfortuna mia o sottile cattiveria del programmatore ??????
5) Per permettere a certi
Client apparentemente incompatibili di poter essere utilizzati (tra questi il
noto LSX encoder v3.5 e il Microsoft Media Encoder v8) è disponibile la
modalità (RAW AUDIO): in pratica il file avi creato dal server non è più un
piccolo file di pochi Kbyte che il client legge per accedere al video fornito
dal server, ma un avi identico per la parte video (c'è solo il riferimento
che non occupa spazio), che contiene però l'audio non compresso. Tale avi ha una
dimensione pari a quella dell'audio non compresso (176 Kbyte per ogni secondo
nel caso di audio 16 bit 44100 Hz) e naturalmente quando si crea l'avi con il
server, occorre attendere il tempo necessario alla decodifica e alla scrittura
dell'audio.
6) Ecco la lista dei client e
server garantiti dall'autore:sono indicati i client per i quali è necessario
ricorrere alla modalità RAW audio e i server che sono compatibili con la
modalità YUV
Server |
Client |
Premiere v5.x |
Microsoft Media
Encoder v8 ( RAW Audio) |
7)
La cosa estremamente interessante, sta nel fatto che tramite il video server
plug-in oltre che attivare la catena Server-->video server plug-in--->Client è
possibile attivare, se lo si desidera, la catena Server-->avisynth--->Client.
In pratica se si vuole utilizzare sia l'avisynth che il videoserver, basta
installare una volta per sempre l'aviwrapper (Aviwrap.dll)
e l'avisynth (avisynth.dll),
mentre in tutti i server che si desidera utilizzare basterà copiare il
videoserver plug-in (cm-videoserver.prm)
(rinominato correttamente se si usano xmpeg e flaskmpeg). Sarà possibile poi
liberamente scegliere se creare la catena con l'avisynth o quella con il
videoserver. Naturalmente è conveniente poi cancellare gli eventuali avisynth
plug-in , che sarebbere degli inutili doppioni.
Vediamo come procedere per l'installazione.
- scaricare dal mio sito il file zippato Videoserver plug-in (173 Kbyte) e per chi desidera utilizzare avisynth, consiglio di scaricare sempre dal mio sito l'ultima versione disponibile, la 1.05 avisynth105 (92 Kbyte)
- scompattare il file Videoserver plug-in.zip : questo contiene 5 file e una cartella
- copiare il contenuto della cartella Avivrap in una cartella d'appoggio che nell'ipotesi in cui si utilizza windows 95/98/ME deve necessariamente avere un nome di massimo 8 caratteri, ad esempio c:\appoggio (se il file aviwrap.dll non appare non c'è nessun problema: semplicemente in visualizza/opzioni di cartella/visualizza non è settata la modalità hidden files- show all files)
- click destro su aviwrap(.inf) e click su installa: è stato installato nel sistema l'aviwrapper (Aviwrap.dll): si può tranquillamente cancellare la cartella temporanea ( c:\appoggio nell'esempio) poiché Aviwrap.dll è stato copiato nella directory windows/system se si usa windows 98/98SE/ME o windows/system32 se si usa windows NT/2000 o XP .
IMPORTANTE Come riportato nell'articolo su XMPEG 4.2a , l'installazione dell'aviwrapper rende impossibile la creazione diretta di divX con audio mp3, all'interno di Xmpeg: il problema è trattato e risolto nella sezione Xmpeg e la creazione diretta di video (ad esempio Divx) con audio mp3 e codec Fraunhofer-II |
- a questo punto
occorre copiare i plug-in all'interno di ciascuno dei server eventualmente installati: da
notare che nella mia distribuzione trovate 3 file identici, a meno del nome:
cm-videoserver.prm
da copiare nella directory plug-ins di Premiere (normalmente C:\Programmi\Adobe\Premiere\Plug-ins
) e nella directory di DVDx e
Mpeg mediator
videoserver.cm.flask
da copiare in tutte le directory in cui si ha una qualsiasi versione di
Flaskmpeg (xis_30e_expert compresa)
videoserver.cm.xmpeg da
copiare nella directory in cui si ha Xmpeg
- per chi desidera installare l'ultima versione di avisynth basta decompattare il file avisynthv105.zip e copiare il file avisynth.dll nella directory windows/system se si usa Windows 98/98SE/ME o Windows/system32 se si usa windows NT/2000 o XP ; se è la prima volta che si installa avisynth occorre doppiocliccare su install.reg.
Vediamo come creare ad esempio le catene Premiere--->video server plug-in--->Tmpeg e Xmpeg--->video server plug-in--->Tmpeg e le analoghe Premiere--->avisynth--->Tmpeg e Xmpeg--->avisynth--->Tmpeg.
Premiere--->video server plug-in--->Tmpeg
Dopo aver eseguito premiere, preparato il video da convertire con la totale libertà di utilizzare transizioni, filtraggi, titolazioni,...occorre cliccare, come di consueto per la creazione del file finale, su file/export timeline/movie (ctrl -M) e setting.
Dopo aver predisposto i parametri di premiere relativi a risoluzione, field, formato audio,...occorre settare in general il plug-in video server e cliccare su Advanced setting .Ecco i parametri da settare.
Server mode
serve per decidere il tipo di catena da creare, avisynth o videoserver: Nel nostro caso avviamo la catena con il videoserver. Wrapper Server
Settings : con file si
setta il nome dell'avi che sarà creato (c:\IPCServer.avi di default) e che
dovrà essere poi caricato dal client, tmpeg nel nostro esempio. Settando
Normal Audio esport
sia il video che l'audio saranno "virtuali" con il meccanismo del passaggio
dei flussi non compressi tramite la memoria Ram del sistema: in tal caso la
creazione dell'avi è immediata e l'avi creato ha una dimensione di pochi
Kbyte. |
|
|
Save to WAV :
normalmente tale opzione va deselezionata. Può essere attivata per particolari esigenze: in tal caso tramite il videoserver viene passato solo il video (l'avi "virtuale" contiene solo video) mentre contemporaneamente l'audio è memorizzato in formato WAV non compresso, nel file indicato. C'è anche la possibilità di comprimere a posteriori l'audio ( in automatico dopo aver risposto positivamente alla domanda "still want to do the postprocessing?") nel formato mpeg1 layer II, quello dei VCD, XVCD e SVCD, al termine della conversione video. Ciò lo si effettua termine il software wav2mp (47 Kbyte) che in tal caso va installato nella stessa directory in cui c'è il videoserver plug-in (nell'esempio di Premiere, normalmente C:\Programmi\Adobe\Premiere\Plug-ins . |
||
Le opzioni presenti in PostPro, che consiglio di deselezionare come in figura, servono per utilizzare il plug-in freeware BBmpeg (da copiare nella directory del plug-in) per operazioni automatiche di multiplexing di eventuali flussi mpeg audio e video appena compressi. Sinceramente ritengo inutile una simile possibilità, nel momento in cui BBmpeg può sempre essere usato in seguito nella sua versione Stand alone: in tutti i casi chi è interessato può consultare il sito www.videotools.net | ||
Internal Time Out enabled : se si seleziona (sconsigliato) ilplug-in si disattiva dopo un certo numero di secondi (90 di default) evitando così "l'onerosa operazione" di cliccare su STOP (vedi dopo) al termine della conversione. Random access : per l'uso con premiere tale opzione va necessariamente selezionata; il client vedrà così l'avi "virtuale" come un normalissimo avi e sarà possibile posizionarsi in qualsiasi fotogramma mantenendo perfetto il sincronismo audio video. Osservo che tale opzione non produce i medesimi effetti con Flaskmpeg/Xmpeg che al contrario sono in grado di fornire in successione i flussi audio-video senza possibilità di indicare un preciso punto diverso dall'inizio: ciò deriva dal fatto che Flaskmpeg/Xmpeg diversamente da premiere non sono in grado di posizionarsi su un particolare fotogramma (ad esempio il fotogramma 1256 dell'mpeg selezionato) ma solamente su una posizione espressa come offset in termini di byte, ad esempio il byte 1.567.748 del file test.mpg.Stesso discorso per DVDx
Create log file: se selezionato viene creato nella stessa directory del file avi "virtuale" un file di testo, LogFileXX.log, con indicazioni sul frame serving: per gli addetti ai lavori ..... e i curiosi Set
plug-in in Benchmark mode:
se selezionato il flusso
audio-video non viene passato al client, ma si apre una finestra che indica
al termine la velocità in fotogrammi al secondo con cui il video viene
passato ad un ipotetico client: ovviamente l'avi virtuale non viene creato.
Il risultato delle statistiche è memorizzato in c:\benchmark_results.txt.
Personalmente per fare delle statistiche più attendibili, deseleziono tale
opzione, ma creo la catena Premiere (o Xmpeg,..)-->video server--> Tmpeg
attivo in quest'ultimo il preview (file/preview) e click su H (massima
velocità possibile). Attenzione a non visualizzare l'immagine ingrandita:
click destro sul preview e original size. Per statistiche "serie" occorre
utilizzarre il buon metodo del cronometro e i Delete .vaf Before encoding (CCE): se selezionato, prima della creazione dell'avi viene cancellato, se presente, il file .vaf che il Software CCE (Cinema Craft Encoder) utilizza per le compressioni a doppia-tripla... passata. Tale opzione va usata quando si avvia una nuova conversione con il CCE e si vuole cancellare il file .vaf scritto per un'altro video in una conversione precedente: il file .vaf contiene le informazioni relative alla complessità dei singoli fotogrammi e chiaramente va cancellato e aggiornato se il video da comprimere è cambiato. Suggest bitrate: se selezionato prima della creazione dell'avi viene visualizzato un piccolo calcolatore di bitrate che suggerisce il bitrate da inserire nel caso di creazione di SVCD; stranamente i parametri di spazio occupato sono sempre riferiti alla conversione su 2 CDR 74. Split source:
non viene creato un solo avi
virtuale ma 2 avi, riferiti a spezzoni di video consecutivi : c:\IPCServer0.AVI
avente durata in secondi pari a quanto indicato(5 secondi di default) e
c:\IPCServer1.AVI la cui durata è ovviamente dal punto di split alla fine.
Osservo che per la conversione con il client (Tmpeg nell'esempio) occorre
prima caricare IPCServer0.avi ed effettuare la conversione , poi cliccare
STOP sul premiere video server plug-in (vedi dopo) e in seguito caricare
IPCServer1.avi ed effettuare la seconda conversione. |
Terminata l'immissione dei parametri click 2 volte su OK (il primo OK per il plug-in e il secondo OK per confermare per i parametri di premiere): riguardo il nome del file questo è indifferente e si può lasciare il nome Untitled di default.
Click su SALVA per
avviare il frame server; dopo il conteggio alla rovescia ( 10 secondi) o
l'eventuale risultato dell'addizione click su
GO! . Appare la seguente finestra
e sarà
creato il file avi come indicato tra i parametri (c:\IPCServer.avi di default). Tale avi sarà considerato dalle
applicazioni che lo utilizzeranno (client) come un normalissimo file avi.
Il nostro scopo è quello di convertire il video predisposto con premiere e per farlo ad esempio utilizziamo Tmpeg.
Non c'è in questo caso assolutamente nessuna differenza nell'uso di questo avi con Tmpeg rispetto all'uso che si fa di un qualsiasi altro avi: dopo averlo caricato (video source Browse) è possibile ad esempio utilizzare l'opzione preview (file/preview) spostandosi senza alcun problema e senza il rischio di perdere il sincronismo audio-video nella compressione (cosa che invece succede se si utilizza come server Xmpeg o Flaskmpeg); stesso discorso se si settano i parametri di filtro: nessun problema.
Settati i parametri si può avviare con Tmpeg la compressione: è possibile utilizzare la modalità di compressione a doppia passata senza problemi.
Terminata la compressione non rimane che interrompere la catena, cliccando su STOP .
IMPORTANTE: c'è una incompatibilità dell'avi virtuale prodotto dal video server plug-in con il media player sotto windows 98: se si desidera caricarlo ugualmente, magari per un semplice preview, è importante settare la risoluzione colore a 32 bit (desktop/proprietà/impostazioni/colori): con le schede Matrox, se si usa ad esempio la modalità 16 bit si ha il crask del sistema. In tutti i casi l'autore del plug-in parla di una incompatibilità diffusa. Il mio consiglio per i preview, è quello di caricare l'avi con altri software, uno tra tutti virtual Dub.
Premiere--->avisynth --->Tmpeg
Come detto è possibile utilizzare avisynth, in particolare l'ultima versione la 1.05 avisynth105 (92 Kbyte), utilizzando il medesimo Videoserver plug-in.
La novità principale
rispetto all'uso del vecchio avisynth 03 (descritto nelle guide del mio sito) è
che non occorre più indicare con il server(Premiere, Xmpeg,..) il file "1" ma si
può indicare qualsiasi nome ; inoltre con il client (Tmpeg, Virtual dub,...) non
occorre caricare il famoso file carica.avs. |
Ricordo che il SW CCE Encoder Stand alone nelle versioni successive alla 2.5 è incompatibile con avisynth: con tale sw conviene sempre usare il video server anche grazie alle capacità di utilizzare la modalità YUV.
Il procedimento è praticamente identico alla catena Premiere--->video server plug-in --->Tmpeg, che ho appena analizzato. Dopo aver eseguito premiere, preparato il montaggio video (transizioni, filtraggi, titolazioni,...) occorre cliccare, come di consueto per la creazione del file finale, su file/export timeline/movie (ctrl -M) e setting.
Dopo aver predisposto i parametri di premiere relativi a risoluzione, field, formato audio,...occorre settare in general il plug-in video server e cliccare su Advanced setting .
Ecco i parametri da settare: valgono tutti i discorsi fatti per la catena Premiere--->video server plug-in --->Tmpeg (mi risparmio di ripetere le cose già dette). mi soffermo sulle differenze
Server mode
serve per decidere il tipo di catena da creare, avisynth o videoserver: Nel nostro caso avviamo la catena con avisynth. Link to AviSynth
setting |
|
Gli altri
parametri funzionano esattamente come visto nel caso precedente
a cui vi rimando: il consiglio è di utilizzare i settaggi standard come in
figura
|
Terminata l'immissione dei parametri click 2 volte su OK (il primo OK per il plug-in e il secondo OK per confermare per i parametri di premiere: riguardo il nome del file questo è indifferente e si può lasciare il nome Untitled di default .
Click su SALVA per avviare il frame server; questa volta non appare il conto alla rovescia e l'eventuale addizione da fare, ma appare una semplice finestra che richiede la registrazione a cui basta rispondere con Yes
Appare la seguente finestra
e sarà
creato il file .avs come indicato tra i parametri (c:\IPCServer.avs di default). Tale avi sarà considerato dalle
applicazioni che lo utilizzeranno (client) come un normalissimo file avi.
Il nostro scopo è quello di convertire il video predisposto con premiere e per farlo ad esempio utilizziamo Tmpeg.
IMPORTANTE.
Per caricare e
convertire il file avs con Tmpeg occorre cliccare su option/environmental
setting/VFAPI plug-in
DESELEZIONARE
AVI2 (OPEN DML) File Reader e Directshow Multimedia file reader
e SELEZIONARE
AVI VFW compatibility Reader.
Non c'è in questo caso assolutamente nessuna differenza nell'uso di questo avi con Tmpeg rispetto all'uso che si fa di un qualsiasi altro avi: per caricarlo occorre cliccare su video source Browse, selezionare e caricare il file avs (c:\IPCServer.avs nell'esempio)
E' possibile ad esempio utilizzare l'opzione preview (file/preview) spostandosi senza alcun problema e senza il rischio di perdere il sincronismo audio-video nella compressione (cosa che invece succede se si utilizza come server Xmpeg o Flaskmpeg); stesso discorso se si settano i parametri di filtro: nessun problema.
Settati i parametri si può avviare con Tmpeg la compressione: è possibile utilizzare la modalità di compressione a doppia passata senza problemi.
Terminata la compressione non rimane che interrompere la catena, cliccando su STOP .
Naturalmente per gli usi di tmpeg con altri file è opportuno al termine della conversione ritornare su su option/environmental setting/VFAPI plug-in e rimettere a posto i VFAPI plug-in selezionando quelli che servono.
Xmpeg--->video server plug-in--->Tmpeg e Xmpeg--->avisynth--->Tmpeg
Ho analizzato le catene Premiere--->video server plug-in--->Tmpeg e Premiere--->avisynth--->Tmpeg; cosa cambia nelle analoghe catene dove come server si utilizza XMPEG al posto di Premiere?
Nel caso delle catene Xmpeg--->video server plug-in--->Tmpeg e Xmpeg--->avisynth--->Tmpeg come unica differenza c'è l'impossibilità di spostarsi liberamente con il client all'interno dell'avi virtuale, pena la perdita del sincronismo audio video.
Con Xmpeg per selezionare il plug-in occore come di consueto andare in opzioni/seleziona il formato d'uscita e settare
I parametri del videoserver, andranno settati cliccando su opzioni/opzioni formato di uscita. L'avi virtuale lo si crea cliccando su esegui/inizia la conversione.
Come detto, utilizzando Xmpeg (o Flaskmpeg) come server, l'accesso del client ( Tmpeg, Virtual Dub..) all'avi (o all'avs nel caso di avisynth) deve essere necessariamente limitato alla sola conversione.
Tanto per chiarire la cosa, se si crea l'avi virtuale con Xmpeg, si carica tale avi con Tmpeg , si da una occhiatina a qualche fotogramma tramite file/preview e poi si inizia la conversione si otterrà un video che parte dal punto in cui si era terminato il preview e l'audio dall'inizio: in pratica Xmpeg non riporta il video al punto iniziale ma semplicemente ad ogni accesso all'avi prosegue leggendo fotogrammi successivi. La conversione diventa così inutilizzabile. Al contrario con Premiere al posto di Xmpeg tutto fila liscio: il motivo lo ho già spiegato qui.
L'unica maniera sicura per ottenere il perfetto sincronismo quando si utilizza Xmpeg-->video server---> Tmpeg o Xmpeg-->avisynth---> Tmpeg, è quella di procedere nel seguente ordine. Creare la prima volta
la catena come descritto: |
Osservo che se al
contrario si esegue Xmpeg, si settano i parametri, si avviare con Xmpeg il frame
serving (esegui/inizia la conversione), si carica con tmpeg l'avi ( o l'avs) e
poi si avvia la conversione si ottiene un video sfasato di un fotogramma
rispetto all'audio. Il motivo è semplice: quando si carica l'avi o l'avs con
Tmpeg Xmpeg invia il fotogramma n.1 a Tmpeg: appena si avvia la compressione
(START), poichè Xmpeg "non riesce a tornare indietro", Tmpeg riceverà il
fotogramma n.2 mentre l'audio sarà quello iniziale. Tutta la conversione sarà
sfasata di un fotogramma.
L'asincronismo che si produce è un ritardo dell'audio di 40 ms, valore
trascurabile ma in tutti i casi facilmente evitabile se si segue il
trucchetto visto.
Lo stesso discorso
NON vale se si utilizza un'altro Encoder diverso da Tmpeg: ho provato CCE
Encoder e virtual dub e in entrambi non c'è la perdita del primo fotogramma; non
c'è pertanto bisogno di procedere come visto.
Il motivo è semplice: Tmpeg quando carica l'avi, richiama e visualizza il primo
fotogramma: CCE, Virtual dub e sicuramente altri Encoder non hanno questo
particolare comportamento.
25 febbraio 2002
Ritorna alla pagina digital video