|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2008
Messaggi: 45
|
Creare video con altro video in riquadro piccolo: chiedo tutorial ;P
Ciao a tutti e buon anno nuovo!
Avrei l'esigenza di aggiungere ad un video principale, un altro video posizionato in un angolo (es. in alto a destra rispetto il video principale) con dimensioni di circa 1/6 rispetto il video principale. Sapreste dirmi se e come è possibile farlo con Avisynth + Virtualdub? (in realtà in passato avevo già trovato la spiegazione in questo forum, ma non trovo più nulla ![]() Potreste aiutarmi dandomi indicazioni passo passo o indicando link di tutorial in rete? ![]()
__________________
grazie! reggio |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Dec 2008
Messaggi: 45
|
Ok ok ok, sono sempre io, non ho trovato il post, ma ho ritrovato alcuni appunti ... non rispondo completamente alla mia domanda, ma almeno eliminano le domande più banali ;P
Li riporto quì per chi può essere interessato (e anche per mè quando, tra qlc mese dimenticherò tutto e tornerò a chiedere ... ;P) Ok, ora però mi dovreste aiutare a capire come fare lo script per un video grande senza audio + video piccolo con audio, sopra il video grande, posizionato in altro a destra, ma non esattamente nello spigolo bensì un poco discostato dai bordi (così fà più fico) e bordato con un bordo bianco (credo serva il comando ".addborders(2,2,2,2, color=$ffffff)" ) ... Mi potreste aiutare? ----------------------------------------------------------------------------- Ora vado a "spiegarmi" come ho ottenuto qualcosa di simile. Allora, per ottenere questo video composto da 4 video piccoli + 2 video grandi: ![]() serve: - Avisynth per creare lo script che allego di seguito (basterebbe anche notepad, ma AvsP permette di vedere il preview del risultato). - VirtualDub per caricare lo script di Avisynth e salvare come file .avi il testo da inserire in Avisynth è il seguente: Codice:
A=AVISource("Z:\Documenti Luca\Video\AVSP\video-prova (1).avi"). ConvertToYuY2. BicubicResize(358,238).addborders(2,2,2,2, color=$ffffff) B=AVISource("Z:\Documenti Luca\Video\AVSP\video-prova (2).avi"). ConvertToYuY2. BicubicResize(358,238).addborders(2,2,2,2, color=$ffffff) C=AVISource("Z:\Documenti Luca\Video\AVSP\video-prova (3).avi"). ConvertToYuY2. BicubicResize(358,238).addborders(2,2,2,2, color=$ffffff) D=AVISource("Z:\Documenti Luca\Video\AVSP\video-prova (1).avi"). ConvertToYuY2. BicubicResize(358,238).addborders(2,2,2,2, color=$ffffff) E=AVISource("Z:\Documenti Luca\Video\AVSP\video-prova (2).avi"). ConvertToYuY2. BicubicResize(358,238).addborders(2,2,2,2, color=$ffffff) F=AVISource("Z:\Documenti Luca\Video\AVSP\video-prova (3).avi"). ConvertToYuY2. BicubicResize(358,238).addborders(2,2,2,2, color=$ffffff) G=AVISource("Z:\Documenti Luca\Video\AVSP\video-prova (4).avi"). ConvertToYuY2. BicubicResize(358,238).addborders(2,2,2,2, color=$ffffff) H=AVISource("Z:\Documenti Luca\Video\AVSP\video-prova (1).avi"). ConvertToYuY2. BicubicResize(358,238).addborders(2,2,2,2, color=$ffffff) st=StackVertical(e,f,g,d). BicubicResize(180,240) st1=StackVertical(h,g). BicubicResize(360,240) clip=StackHorizontal(st,st1,st) Return clip "A=AVISource("percorso\video.avi")" assegna un "nome" ad ogni video ". ConvertToYuY2" ??? ". BicubicResize(358,238)" assegna la dimensione ".addborders(2,2,2,2, color=$ffffff)" aggiunge i bordi di spessore 2 e il colore ffffff (bianco) ... a presto! ![]()
__________________
grazie! reggio |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 1780
|
Ciao reggio.
Questo è lo script Codice:
x1=720 y1=400 clip1=AviSource("percorso_video",audio=false).BicubicResize (x1,y1) x2=360 y2=200 clip2=AviSource("percorso_video").BicubicResize(x2,y2). Addborders (2,2,2,2, color=$ffffff) offx=(x1-x2)-10 offy=10 clipT=Overlay(clip1, clip2,offx,offy) audio= GetChannel(clip2, 1) return AudioDub(clipt,audio) ![]() Audio=false toglie l'audio alla clip x1 e y1 sono le dimensioni del video di sfondo, se non devi applicare un ridimensionamento del video nella riga successiva, quella che lo carica, puoi omettere il comando BicubicResize. x2 e y2 sono le dimensioni del video da sovrapporre offx calcola automaticamente la posizione orizzontale di questo video, il valore -10 serve per spostarlo verso sinistra di 10 pixel, puoi inserire il valore che vuoi. offy determina la posizione verticale del video, 10 sono i pixel verso il basso, vale il discorso di prima. Il filtro che unisce le clip è Overlay, (si poteva usare anche Layer) però l'audio è sempre quello della clip di sfondo che noi abbiamo eliminato quindi mentre la sintassi semplice sarebbe Overlay(clip1,clip2) dobbiamo agire diversamente: Il filtro GetChannel prende l'audio dalla clip indicata. Il filtro AudioDub prende il flusso video del primo argomento e il flusso audio del secondo e li unisce. Se lo spazio colore dei due video è diverso lo script genera un'errore quindi alle prime righe di caricamento dei due video va aggiunto ConvertToyuy2 per renderle compatibili (e questo spero che ti spieghi perchè è stato usato anche nello script che hai descritto) ![]()
__________________
no pain, no gain
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Dec 2008
Messaggi: 45
|
GRANDE!! ESAVOC!!!!
Funziona alla grande!!! ![]() Adesso però, mi vengo in mente altre 1000 domande per migliorare e aggiungere effetti ... ![]() ... ad esempio - se volessi che clip2 inizi dopo x secondi e sparisca prima della fine di x secondi? - se volessi che clip2 "volteggi" sopra clip1? - se volessi che si sentano 10sec di audio clip1, poi 5sec di silenzio poi 10sec di clip2 poi 5sec di silenzio e di nuovo da capo? ... te l'ho già chiesto mi pare, ma, tu.., dove diavolo le hai imparate tutte stè cose? non c'è un manualetto con i vari comandi usati separatamente con piccoli esempietti? **aggiungo una domanda** partendo da 2 file da 17mb e 48mb, Virtualdub mi crea un avi di 5,3GB!!!!! perchè diventa così enorme?? ![]()
__________________
grazie! reggio Ultima modifica di reggio : 13-01-2015 alle 13:45. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 1780
|
Queste cose le ho imparate in rete, il wiki ufficiale di Avisynth lo trovi a questo indirizzo: http://avisynth.nl/index.php/Main_Page
Per limitare nel tempo la comparsa della clip puoi usare il comando Trim, per farlo con l'audio puoi usare AudioTrim ma ci devi lavorare un pò. Per far svolazzare la clip... beh, Avisynth può molto ma non tutto, non è un'editor lineare quindi magari si può fare ma idrei che è piuttosto complicato specialmente per chi è alle prime armi. Prova a usare il comando trim poi se hai dei problemi contattami pure che ti aiuto.
__________________
no pain, no gain
|
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Dec 2008
Messaggi: 45
|
Quote:
![]() ho guardato quì: http://avisynth.nl/index.php/Trim ed ho provato a smacchinare un poco, ho aggiunto il comando TRIM, che non dà errori, ma che non da luogo a nessun effetto ... ![]() Immagino non sia applicato bene, ma purtroppo l'help di avisynth indica i comandi "puri", con esempi troppo stringati per chi è alle prime armi ... Dove sbaglio sotto? x1=720 y1=400 clip1=AviSource("Z:\Documenti Luca\Video\AVSP\Me and my broken heart.avi",audio=false).BicubicResize (x1,y1) x2=180 y2=100 clip2=AviSource("Z:\Documenti Luca\Video\AVSP\Me and my broken heart (Andie Case Cover).avi").BicubicResize(x2,y2). Addborders (2,2,2,2, color=$ffffff) Trim(clip2, 1000, 0) offx=(x1-x2)-10 #offy=280 offy=(y1-y2)-10 clipT=Overlay(clip1, clip2,offx,offy) audio= GetChannel(clip2, 1) return AudioDub(clipt,audio)
__________________
grazie! reggio |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 1780
|
L'errore è che scritto così il filtro Trim non funziona dato che successivamente il filtro Overlay va a caricare di nuovo la clip2 per intero.
Per farlo funzionare puoi: Aggiungere il comando Trim alla riga dove dichiari la clip2 clip2=AviSource("percorso del video.avi").BicubicResize(x2,y2). Addborders (2,2,2,2, color=$ffffff). Trim(1000,0) Oppure creare una nuova variabile a cui deve far riferimento il comando Overlay: clip2=AviSource("percorso del video.avi").BicubicResize(x2,y2). Addborders (2,2,2,2, color=$ffffff) clip3=Trim(clip2,1000,0) .... clipT=Overlay(clip1, clip3,offx,offy) Però così non riesci ad ottenere l'effetto che cerchi perchè la clip partirà dal frame 1000 ma contemporaneamente alla clip di sfondo. Per farla sia partire che apparire dopo 1000 frame devi aggiungere qualche riga. In genere si crea una funzione dedicata applicando il filtro Animate che deve agire sulla trasparenza e sul volume della clip in modo continuo ma si va nel complicato. Un modo più "semplice" è questo: Crei una prima sovrapposizione con la seconda clip con opacità a 0, volume a 0 di 999 frame clip3=Overlay(clip1, clip2,offx,offy, opacity=0). Trim(0,999) Per rendere compatibili i flussi audio, per portare a zero il volume non si può usare semplicemente KillAudio ma una strada più contorta: audio=GetChannel(clip2, 1) clip3a=AudioDub(clip3,audio). amplifydb(-20).Trim(0,350) Crei una seconda sovrapposizione per il resto della clip clip 4=Overlay(clip1, clip2,offx,offy). Trim (1000,0) Aggiungi l'audio come nello script precedente audio=GetChannel(clip2, 1) clip4a=AudioDub(clip4,audio). Trim (351,0) Unisci le clip clipT=clip3a+clip4a return clipt Quindi lo script completo è: x1=720 y1=400 clip1=Avisource("percorso del video").bicubicresize (x1,y1) x2=360 y2=200 clip2=Avisource("percorso del video").bicubicresize(x2,y2). addborders (2,2,2,2, color=$ffffff) offx=(x1-x2)-10 offy=10 clip3=Overlay(clip1, clip2,offx,offy, opacity=0) audio=GetChannel(clip2, 1) clip3a=AudioDub(clip3,audio). amplifydb(-20).Trim(0,350) clip4=Overlay(clip1, clip2,offx,offy) audio=GetChannel(clip2, 1) clip4a=AudioDub(clip4,audio). Trim (351,0) clipT=clip3a+clip4a return clipt
__________________
no pain, no gain
|
![]() |
![]() |
![]() |
#8 | |
Member
Iscritto dal: Dec 2008
Messaggi: 45
|
Quote:
.. mi ci vorranno anni per capire tutto il codice, ma intanto sono riuscito a editare il video con le Barbie di mia figlia ;P Grazie e a presto!
__________________
grazie! reggio |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:43.