AssumeFPS
(clip, float fps, bool "sync_audio")
AssumeFPS
(clip, int numerator [, int denominator], bool "sync_audio")
AssumeFPS
(clip1, clip2, bool "sync_audio")
Il filtro AssumeFPS
cambia il frame rate senza cambiare il contatore
di frames (causando perciò un rallentamento od una accelerazione del video).
Setta soloil parametro framerate.
Se si imposta a true il parametro sync_audio (che per default è false),
allora cambia anche il sample rate dell'audio per adeguarlo alla durata del
video.
Può essere anche un metodo per cambiare solo il sample rate di un audio senza
video.
In v2.55, se è presente clip2 il framerate di clip1 sarà modificato in modo tale da combaciare con quello di clip2. Questo è utile quando si vogliono unire 2 clips con un framerate leggermente differente .
ChangeFPS
(clip, float fps, bool "linear")
ChangeFPS
(clip, int numerator [, int denominator], bool
"linear")
ChangeFPS
cambia il frame rate cancellando o duplicando
frames.
Fino alla v2.05, il video veniva troncato o riempito per preservare
velocità e durata del playback (il numero dei frames non cambiava). In versioni
più recenti , il comportamento è cambiato ed il numero dei frames è aumentato
o dimunuito come in ConvertFPS
.
Nella v2.54, è stata aggiunta a Changefps
una
opzione linear = true/false . Questo fa sì che quando si skippano
frames, AviSynth li richieda in modo lineare. Default è true.
ConvertFPS
(clip, float new_rate, int "zone", int "vbi")
ConvertFPS
è un filtro per AviSynth.
Il filtro cerca di convertire il frame rate del clip alla nuova
velocità new_rate senza togliere o inserire frames, con una conversione
uniforme con risultati simili a quelli di apparati di conversione standalone.
L'output avrà (quasi) la stessa durata del clip, ma il numero di frames cambierà
proporzionalmente ai valori di frame rate del sorgente e del file obiettivo.
Il filtro opera in due modi. Se l'argomento opzionale zone non è
presente, mescolerà video frames adiacenti, valutati con un blend factor proporzionale
alla temporizzazione dei frames("Blend Mode"). Se zone è presente,
switcherà da un video frame al successivo ("Switch Mode") ogni volta che comincia
un nuovo source frame, vale a dire, di solito da qualche parte nel mezzo di
un target frame. Switch Mode parte dal presupposto che l'output sia visto su
un TV dove ogni frame è scandito dall'alto al basso. Il parametro zone
specifica l'altezza della regione di transizione in cui il frame corrente sarà
miscelato col successivo.
Blend Mode causa un visibile, anche se leggero, effetto blur. Questo è un artefatto tipico della conversione di frame rate e lo si può notare anche in video tapes commerciali e in programmi TV. Lavorando con video interlacciati, è importante far operare il filtro sui singoli fields, non sui frames interlacciati . (Vedere l'esempio.)
Switch Mode costituisce un tentativo per evitare il motion blurring, ma al costo di un leggero flickering e motion artifacts. Panoramiche orizzontali e verticali possono evidenziare un leggero tremolìo. Fermi immagine provenienti da questa conversione mostrano nelle scene movimentate, linee verticali "spezzate" o "piegate". Cambi di scena possono capitare nel mezzo di un frame. Ciò nonostante, i risultati appaiono com meno blur rispetto al "Blend Mode".
Nessuna delle due modalità è perfetta. Quale scegliere dipende dalle preferenze personali e dalla lunghezza di ciò che deve essere convertito. Switch Mode è probabilmente appropriato solo per output da vedere in TV, non sullo schermo di un computer.
La conversione del Frame rate è difficile. Questo filtro mette in pratica due metodi comunemente usati in sistemi commerciali. I resultati sono normalmente piuttosto buoni. Sistemi più sofisticati usano algoritmi di motion interpolation, che sono difficili da realizzare bene, ma che, se ben fatti, producono resultati superiori .
Film convertiti con questo filtro non dovrebbero essere convertiti di nuovo. L'effetto Blur cresce rapidamente nelle successive conversioni.
Questo filtro non tocca i dati audio che resterà sincronizzato, sebbene dopo
la conversione la lunghezza dei dati audio possa essere leggermente differire
da quella del video. Questo a causa del fatto che l'output può contenere solo
un numero intero di frames. Tale effetto è più pronunciato per i clip più corti.
La differenza di lunghezza può essere ignorata.
Parametri:
new_rate | Target frame rate. Può essere un numero intero o floating point. In Blend Mode, new_rate deve essere almeno 2/3 (66.7%) del frame rate della sorgente, o si verificherà un errore. Questo per prevenire la perdita di frame. Se è necessario diminuire maggiormente il frame rate, si usi Switch Mode. |
zone | (Optionale) Se Specificato, attiva lo Switch Mode. E' un numero intero maggiore o uguale a zero. Se zero, il filtro attua uno switch "duro", cioè espone il frame successivo subito al di sotto della linea di separazione. Se maggiore di zero, specifica l'altezza (in linee) della zona di transizione, dove un frame si mescola con gradualità col successivo. zone=80 produce buoni risultati per video a dimensione piena (480/576 linee). La transizione allo stesso modo che in PeculiarBlend(). zone deve essere minore o uguale al numero di linee del frame di uscita che corresponde alla durata del source frame. Questa è tipicamente 5/6 o 6/5 dell'altezza del target frame , cioè poche centinaia di linee. Se si usa un valore più grande si verifica un errore. |
vbi | (Optionale) In Switch Mode, specifica che il filtro deve applicare una correzione di tempo per il vertical blanking interval (VBI). Numero intero maggiore di zero, indica l'altezza del VBI del target frames, in linee. Tipicamente vbi=49 per PAL e vbi=45 per NTSC, ma rali valori non sono critici. Viene Ignorato in Blend Mode. |
Esampi di conversione NTSC->PAL :
AVISource("NTSC_clip.avi") # Prende il clip Bob() # Separa i fields e li interpola all'altezza intera. BicubicResize(768,576) # Resize al frame size PAL. (Usare 720,576 per CCIR.) ConvertFPS(50) # Converte il field rate al PAL, usando Blend Mode. SeparateFields.SelectEvery(4,0,3) # Annulla Bob, even field first. Usare SelectEvery(4,1,2) per odd field first. Weave # Annulla Bob.
Questo esempio funziona anche con materiale frame-based NTSC, persino con film telecined (movies). Per i film, tuttavia, si otterranno migliori risultati usando un filtro di inverse-telecine aumentando il frame rate da 23.976 a 25 fps.
Necessita di input YUY2.
La ragionevolezza di tutti i parametri non è stata testata.
$Date: 2004/09/26 19:49:40 $