Newsgroup: it.media.video.produzione
Titolo: PIP con virtualDub, è possibile?

Smanettando con Avisynth (fino alla settimana scorsa non sapevo neppure cosa 
fosse...) sono riuscito a crearmi degli script da aprire con VirtualDub che 
mi permettono di creare un doppio video tipo "Le Iene" o anche di creare un 
filmato con lo schermo diviso in 4 (ma anche in 9) su cui girano 4 (o 9) 
video contemporaneamente.
Tutti questi smanettamenti perchč non ho programmi che possano gestire 2 o 
piů tracce video.
Visto che sono riuscito in questo mio intento (probabilmente sono caduto 
preda di un delirio di onnipotenza...) stavo pensando ad un sistema per 
ottenere un effetto PIP (picture in picture), ma non mi viene in mente 
nessuna soluzione.
Che ne dite? Lo so, non č una cosa per nulla facile, ma secondo voi č una 
cosa possibile?
Qualche dritta da suggerirmi? Qualcosa da consultare sull' argomento?
O non ci sono speranze?
Saluti.

EUREKA!!!
Ci ho rimuginato un pņ e cel' ho fatta! 

> Ci ho rimuginato un pņ e cel' ho fatta!
come? 

Lo script che ho compilato crea una finestra PIP nell' angolo in basso a
destra.
Ovviamente i filmati devono avere la stessa lunghezza ed il filmato in
finestrella è privo di audio.
Un' unica cosa: siccome io lavoro con materiale in 720x576, ho "ottimizzato"
lo script per un filmato principale con queste dimensioni.
Invece il filmato in finestrella può avere dimensioni a piacere.
Ecco come ho fatto:
Il trucco è quello di suddividere il filmato complessivo (filmato principale
con filmato in finestrella) in 3 parti da processare separatamente e poi
ricombinate per comporre il filmato complessivo: la parte S (superiore), la
parte I (inferiore) e la parte P (il PIP vero e proprio). Forse potevo
metterci un pò più di fantasia per le sigle...
  ____________________________________
|                                                                         |
|                                                                         |
|                                                                         |
|                                 S                                      |
|                                                                         |
|                                                                         |
|  _   _    _    _    _    _   _    _     ____________|
|                                                 |                       |
|                      I                          |         P            |
|                                                 |                       |
|________________________ |___________ |
Poniamo di avere il filmato principale (che chiamerò "principale") e quello
che deve comparire in finestrella (che chiamerò "finestrella") in un disco
"c" nella directory "prova", e che siano entrambi filmati avi.
Ho chiamato "L" la larghezza ed "A" l' altezza della finestrella PIP.
Sarà sufficiente assegnare a queste due variabili i valori desiderati,
semplicemente nelle prime due righe dello script e poi il resto sarà
calcolato automaticamente.
La prima cosa da fare è comporre la parte S, devo cioè tagliare dalla parte
inferiore del filmato principale una striscia alta quanto è alta la
finestrella PIP.
Quindi:
S=avisource("c:\prova\principale.avi").crop(0, 0, -0, -A)
Poi si deve comporre la parte I, che contiene la porzione del filmato
principale che avevo tagliato prima, ma bisogna sottrarle la finestrella
PIP.
Quindi:
I=avisource("c:\prova\principale.avi").crop(0, (576-A), -L, 0)
Ora bisogna dimensionare la finestrella PIP.
Quindi:
P=avisource("c:\prova\finestrella.avi").bicubicresize(L,A)
Per finire, bisogna ricombinare il tutto giuntando vericalmente la parte S
con la striscia che si ottiene giuntando orizzontalmente le parti I e P.
Quindi:
stackvertical(S,stackhorizontal(I,P))
Ricapitolando, ecco lo script completo (ovviamente i nomi dei filmati ed il
path dovete sostituirli):
L= metteteci quello che vi pare
A=metteteci quello che vi pare
S=avisource("c:\prova\principale.avi").crop(0, 0, -0, -A)
I=avisource("c:\prova\principale.avi").crop(0, (576-A), -L, 0)
P=avisource("c:\prova\finestrella.avi").bicubicresize(L,A)
stackvertical(S,stackhorizontal(I,P))
Adesso basta impostare nello script i valori desiderati di larghezza ed
altezza che deve avere il filmato che deve comparire in finestra, salvare lo
script in formato AVS, aprirlo con VirtualDub e -miracolo!- compariranno il
filmato principale ed il filmato in finestrella.
Saluti.