Torna indietro   Hardware Upgrade Forum > Software > Editing e Codec video

Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Mentre Ubisoft vorrebbe chiedere agli utenti, all'occorrenza, di distruggere perfino le copie fisiche dei propri giochi, il movimento Stop Killing Games si sta battendo per preservare quella che l'Unione Europea ha già riconosciuto come una forma d'arte. Abbiamo avuto modo di parlare con Daniel Ondruska, portavoce dell'Iniziativa Europa volta a preservare la conservazione dei videogiochi
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Abbiamo provato il nuovo Galaxy S25 Edge, uno smartphone unico per il suo spessore di soli 5,8 mm e un peso super piuma. Parliamo di un device che ha pro e contro, ma sicuramente si differenzia dalla massa per la sua portabilità, ma non senza qualche compromesso. Ecco la nostra prova completa.
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
Pensato per il professionista sempre in movimento, HP Elitebook Ultra G1i 14 abbina una piattaforma Intel Core Ultra 7 ad una costruzione robusta, riuscendo a mantenere un peso contenuto e una facile trasportabilità. Ottime prestazioni per gli ambiti di produttività personale con un'autonomia lontano dalla presa di corrente che permette di lavorare per tutta la giornata
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-09-2010, 09:21   #1
depe_
Junior Member
 
Iscritto dal: Sep 2010
Messaggi: 4
Cronometro o timer su video?

Se ho un video e voglio metterci un cronometro o un timer che programma devo usare? (Io ho sony vegas) Spiegatemi passo x passo come si deve fare.
Grazie
depe_ è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2010, 11:01   #2
Esavoc
Senior Member
 
L'Avatar di Esavoc
 
Iscritto dal: Jun 2009
Messaggi: 1780
Qualcosa tipo questo?
http://www.youtube.com/watch?v=W5GKeNl5CS8
Esavoc è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2010, 12:06   #3
depe_
Junior Member
 
Iscritto dal: Sep 2010
Messaggi: 4
Quote:
Originariamente inviato da Esavoc Guarda i messaggi
Sì, una cosa del genere
depe_ è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2010, 12:37   #4
Esavoc
Senior Member
 
L'Avatar di Esavoc
 
Iscritto dal: Jun 2009
Messaggi: 1780
Quel timer è stato ottenuto con Avisynth, ho provato tempo fa a farne uno uguale ed è piuttosto semplice.

Avisynth è un programma che funziona da frameserver cioè si interpone tra la fonte video ed il software di montaggio applicando i suoi filtri al video quindi non viene usato direttamente ma richiamato tramite uno script.

Non so se Vegas accetta gli script con formato .avs, controlla se tra i tipi di file accettati c'è questa estensione, con le versioni vecchie mi pare che funzionasse altrimenti devi appoggiarti ad altri software tipo VirtualDub.

Il funzionamento è semplice, crei lo script col blocco note, lo salvi con estensione .avs e lo carichi col programma di videoediting.

Lo script per creare il timer è questo:

Codice:
function counter(clip clip, int n )
{
  n = n / clip.framerate()
  sec = int(n)
  secs = string(sec)  
  secs = strlen(secs) < 2 ? "0" + secs : secs
  ms = string(int(10 * (n - sec)))
   clip.subtitle( "Nome      " + secs + ":" + ms,-1 ,POSIZIONE VERTICALE ,FRAME INIZIO,FRAME FINE, "arial", 20, $FFF000,$000000)
   
}

clip = directshowsource("PERCORSO DEL VIDEO") 
   animate( FRAME INIZIO,FRAME FINE , "counter", clip , FRAME INIZIO , clip , FRAME FINE)
Le voci colorate sono in dipendenza del video, di quando vuoi che inizi e finisca il conteggio e della posizione del timer nel video, una volta inseriti i valori il resto è automatico.

Se hai dei problemi chiedi pure.
Esavoc è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2014, 21:54   #5
reggio
Member
 
Iscritto dal: Dec 2008
Messaggi: 45
Quote:
Originariamente inviato da Esavoc Guarda i messaggi
Lo script per creare il timer è questo:
...
Se hai dei problemi chiedi pure.
Ciao, lo script funzia, l'ho copia.incollato e inserito i valori, l'unica cosa non chiara è COSA conta: non sembrano nè secondi nè minuti nè millisec ...
Come ottengo il conteggio dei secondi e dei minuti? mm.ss
__________________
grazie!
reggio
reggio è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2014, 19:54   #6
Esavoc
Senior Member
 
L'Avatar di Esavoc
 
Iscritto dal: Jun 2009
Messaggi: 1780
Ti spiego come funziona questo script.

Tutto si basa sulla funzione definita counter che nella prima riga stabilisce la base dei tempi n.
N si incrementa ogni frame e viene trasformata nella variabile sec come numero intero quindi tutti i valori compresi tra 0 e 0,9 daranno come risultato sec=0, tutti i valori tra 1 e 1,9 daranno come risultato sec=1 e così via.

I decimi di secondo vengono calcolati in modo simile, moltiplicando per 10 il risultato della sottrazione n-sec e prendendo solo l'intero senza virgola.

Quindi dato che la base dei tempi si incrementa in pratica ogni frame, più è alto il framerate più preciso sarà il conteggio dei decimi di secondo che in realtà non vengono incrementati in modo lineare ma solo quando il loro intero cambia di valore. Il risultato finale sarà sempre preciso, i valori intermedi no.

Per lo stesso motivo con questo script non si possono contare i centesimi o i millesimi, ovvero si possono contare ma i valori visualizzati saranno quelli corrispondenti a quel singolo frame quindi ammesso che il video scorra a 25 fps gli incrementi saranno di 4 centesimi o di 40 millesimi di secondo.

Comunque per simularli puoi aggiungere queste due righe:
ms2= string(int(100*(n-sec)))
ms2= strlen(ms2) <2 ? ms2 + "0" : ms2

ed aggiungere alla visualizzazione del sottotitolo anche il valore ms2, così lo script completo diventerà:

Codice:
function counter(clip clip, int n )
{
  n = n / clip.framerate()
  sec = int(n)
  secs = string(sec)  
  secs = strlen(secs) < 2 ? "0" + secs : secs
  ms = string(int(10 * (n - sec)))
ms2= string(int(100*(n-sec)))
ms2= strlen(ms2) <2 ? ms2 + "0" : ms2
   clip.subtitle( "Nome      " + secs + ":" + ms + ms2,-1 ,POSIZIONE VERTICALE ,FRAME INIZIO,FRAME FINE, "arial", 20, $FFF000,$000000)
   
}

clip = directshowsource("PERCORSO DEL VIDEO") 
   animate( FRAME INIZIO,FRAME FINE , "counter", clip , FRAME INIZIO , clip , FRAME FINE)
Esiste una funzione di Avisynth che riproduce il tempo nel formato minuti:secondi:framerate ma parte sempre dall'inizio del filmato, comunque per applicarla bastano solo due righe come in questo esempio:

Codice:
directshowsource("PERCORSO DEL VIDEO") 
ShowSMPTE(x=105, y=320, font="Arial", size=20, text_color=$ffffff)
Spero di essere stato esaustivo.
__________________
no pain, no gain
Esavoc è offline   Rispondi citando il messaggio o parte di esso
Old 14-02-2014, 05:51   #7
reggio
Member
 
Iscritto dal: Dec 2008
Messaggi: 45
Quote:
Originariamente inviato da Esavoc Guarda i messaggi
Ti spiego come funziona questo script.

Tutto si basa sulla funzione definita counter che nella prima riga stabilisce la base dei tempi n...
...Spero di essere stato esaustivo.
Ciao, tu sei sempre chiaro, sono io che fatico a comprendere a volte ...
In questo caso ho usato il cod sotto, ma avendo un video di prova da 29fps, il risultato del primo contatore non è corretto e non ho capito come variare il codice per passare dal 25 a 29fps e ottenere un formato
min-min:sec-sec (00:00) e un formato sec-sec:decimi-decimi (00:00) ...

Scarterei invece il secondo timer perchè io NON voglio contare dall'inizio e nemmeno con tutti quei valori 00:00:00:00:...

Codice:
function counter(clip clip, int n )
{
n = n / clip.framerate()
sec = int(n)
secs = string(sec) 
secs = strlen(secs) < 2 ? "0" + secs : secs
ms = string(int(10 * (n - sec)))
ms2= string(int(100*(n-sec)))
ms2= strlen(ms2) <2 ? ms2 + "0" : ms2
#clip.subtitle( "Nome " + secs + ":" + ms,-1 ,POSIZIONE VERTICALE ,FRAME INIZIO,FRAME FINE, "arial", 20, $FFF000,$000000)
clip.subtitle( "Timer " + secs + ":" + ms + ms2,-1 ,55,0,330, "arial", 36, $FFF000,$000000)

}

clip = directshowsource("C:\Users\Public\Videos\Sample Videos\Farfalla.avi") 
animate( 3,222 , "counter", clip , 3 , clip , 99)

Subtitle("...il timer non scorre correttamente...",40,50,1,1000,"Arial",40,$FF0000)

#directshowsource("C:\Users\Public\Videos\Sample Videos\Farfalla.avi") 
ShowSMPTE(x=205, y=320, font="Arial", size=50, text_color=$ffffff)
Subtitle("...questo conta bene ma ha troppi 00.00.00 ...",20,350,1,1000,"Arial",35,$ffffff)
Subtitle("...e poi non può partire dal 3° secondo del film ...",20,400,1,1000,"Arial",35,$ffffff)
Grazie e a presto

PS: Ma puoi consigliarmi link dove trovare tanti piccoli progetti AVS per capire come fare le varie funzioni? In rete ho trovato pochissimo se si esclude il manuale che però non riesco a "tradurre" in funzioni utili ...
L'ideale sarebbe avere tanti piccoli esempi da copiare, studiare e unire, sai darmi qlc dritta?
__________________
grazie!
reggio

Ultima modifica di reggio : 14-02-2014 alle 05:56.
reggio è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2014, 09:55   #8
Esavoc
Senior Member
 
L'Avatar di Esavoc
 
Iscritto dal: Jun 2009
Messaggi: 1780
In realtà il codice così come è costruito prescinde dal framerate, quando arrivi al frame che corrisponde al secondo intero viene visualizzato il numero intero.
Puoi provare ad avanzare di un frame alla volta e arrivando al trentesimo dovresti visualizzare il primo secondo intero nel formato 01:000

Ricordati che il framerate esatto non è 29 ma 29,97 fps quindi dato che lo script lavora con numeri interi lo arrotonda a 30.

Quote:
PS: Ma puoi consigliarmi link dove trovare tanti piccoli progetti AVS per capire come fare le varie funzioni? In rete ho trovato pochissimo se si esclude il manuale che però non riesco a "tradurre" in funzioni utili ...
In rete trovi qualcosa sul forum Doom's 9 ma nella maggioranza sono scirpt dedicati alla conversione quindi oltre ad essere molto complicati da apprendere dato che sono pieni di funzioni utente, sono indirizzati alla conservazione della qualità dell'immagine.
Semplici script si trovano ma bisogna cercare, specialmente se rivolti all'editing vero e proprio, ci vuole pazienza...
__________________
no pain, no gain
Esavoc è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2014, 10:50   #9
reggio
Member
 
Iscritto dal: Dec 2008
Messaggi: 45
Quote:
Originariamente inviato da Esavoc Guarda i messaggi
In realtà il codice così come è costruito prescinde dal framerate, quando arrivi al frame che corrisponde al secondo intero viene visualizzato il numero intero.
Puoi provare ad avanzare di un frame alla volta e arrivando al trentesimo dovresti visualizzare il primo secondo intero nel formato 01:000
...
Ciao, ehm no, nel mio caso non fà proprio così e non è questione di 29,7 o 30, c'è proprio un errorone grosso guarda:



considera che, come vedi dal codice sopra, i timer dovrebbero essere allineati e invece ... quello giallo non ha proprio senso

Riesci a capire cosa non và?

E poi se volessi ottenere un formato
min-min:sec-sec (00:00) e un formato sec-sec:decimi-decimi (00:00) come dovrei fare (con il timer giallo)?
__________________
grazie!
reggio
reggio è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2014, 18:16   #10
Esavoc
Senior Member
 
L'Avatar di Esavoc
 
Iscritto dal: Jun 2009
Messaggi: 1780
Allora...
L'errore è questo: animate( 3,222 , "counter", clip , 3 , clip , 99)

Devo spiegarti qualcos'altro su questo script.

Alla fine della funzione counter c'è il filtro subtitle che può essere definito oltre che col tipo di font, colore, posizione e gli altri valori propri del carattere, anche con le variabili int first_frame, int last_frame che stabiliscono quando la stringa deve essere visualizzata. nel caso del tuo script i valori sono 0 e 330 quindi dopo il frame 330 il filtro cessa di visualizzare.

La funzione animate invece ha qualcosa in più:
Animate(clip clip, int start_frame, int end_frame, string filtername,start_args, end_args)

Start_frame e end_frame stabiliscono l'intervallo nel quale la funzione agisce, nel tuo caso dal frame 3 al frame 222.

Start_args, end_args stabiliscono l'intervallo dei valori che il filtro deve applicare, nel nostro caso alla funzione counter.
L'errore che hai fatto è che hai inserito 3 e 99. Questo vuol dire che il filtro per la durata che va dal frame 3 al 222 applicherà l'intervallo tra questi valori con il risultato che vedi.
In pratica se tra start_frame e end_frame c'è una differenza di 219 frame come nel tuo caso, la solita differenza deve esserci anche tra start_args e end_args quindi avresti dovuto inserire ugualmente 3 e 222 oppure anche altri valori ma la cui differenza sia sempre 199.

Se per esempio vuoi far apparire il contatore dal terzo secondo fino al sesto, e vuoi che il conteggio parta da zero i valori da inserire nella funzione subtitle sono 90 (3° secondo a 29.97fps) e 180 mentre nella funzione animate devi inserire 90 e 180 in start_frame e end_frame e 0 e 90 in start_args e end_args. Come vedi la differenza è sempre 90 frame.



Se invece vuoi che nonostante il conteggio tra i secondi 3 e 6 vuoi che la visualizzazione duri un tempo diverso, puoi inserire un valore a piacere sempre nella funzione subtitle.
__________________
no pain, no gain
Esavoc è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2014, 21:55   #11
Esavoc
Senior Member
 
L'Avatar di Esavoc
 
Iscritto dal: Jun 2009
Messaggi: 1780
Quote:
E poi se volessi ottenere un formato
min-min:sec-sec (00:00) e un formato sec-sec:decimi-decimi (00:00) come dovrei fare (con il timer giallo)?
Per risolvere il problema della visualizzazione dei decimi alla fine ho modificato sostanzialmente lo script, restando fermi i punti detti nel post precedente riguardo i valori di subtitle ed animate.

Il nuovo script è questo:

Codice:
function counter(clip clip, int n )
{
  n = n / clip.framerate()
  sec = int(n)

  mi=int(sec/60)
  mis=string(mi)
  mis = strlen(mis) < 2 ? "0" + mis : mis
  
  sd = leftstr(string(n-int(n/60)*60,"%06.3f"),5)
  sd1=leftstr(string(sd),2)
  sd2=rightstr(string(sd),2)
   

  clip.subtitle(mis + ":"+sd1+ ":"+sd2,-1,POSIZIONE VERTICALE ,FRAME INIZIO,FRAME FINE, "arial", 20, $FFF000,$000000)
   
}

clip = directshowsource("PERCORSO DEL VIDEO")    
  animate( FRAME INIZIO,FRAME FINE , "counter", clip , FRAME INIZIO , clip , FRAME FINE)
Il problema che si creava col vecchio script era dovuto ai secondi dato che era sostanzialmente un timer per tempi brevi non avevo preso in considerazione che arrivato al 59° secondo non tornava a zero ma proseguiva il conteggio incrementando di uno, quindi 60, 61, 62 ecc.
L'altro problema era dovuto ai centesimi di secondo, se guardi bene erano ricavati semplicemente dividendo per 100 il valore dei secondi ma l'incremento che si aveva era non corrispondente al vero tranne che per il passaggio da un secondo al successivo.

Quindi cercando in giro tra i vari timer proposti ho trovato una soluzione più fattibile.

La variabile sec ora serve solo come numero incrementale e viene convertita in minuti dalla riga mi=int(sec/60), le due successive sevono per la conversione da numerico a stringa e per l'inserimento dello zero davanti ai primi 9 conteggi.

Per contare i secondi ed i decimi ho usato un'altra strategia.
Ho utilizzato la funzione leftstr che consente di utilizzare solo un numero definito di caratteri di una stringa.
In questo caso ho preso i primi 5 caratteri della stringa sd che contiene i valori di n convertiti in mod 60 ed ho stabilito il formato con %06.3f cioè la stringa deve essere di 6 bit con lo zero a sinistra e 3 numeri decimali in virgola mobile.
Come ti ho detto è un sistema che ho trovato in rete, dubito che ci sarei arrivato da solo...

Però il formato risultante è ss.dd essendo sostanzialmente un numero con la virgola quindi ho creato altre due variabili stringa che contengono i primi due caratteri corrispondenti al formato ss e gli ultimi due in formato dd intervallati dal simbolo :.

Ora il risultato è soddisfacente, in dipendenza di cosa vuoi visualizzare basta che modifichi la linea:
clip.subtitle(mis + ":"+sd1+ ":"+sd2,-1,POSIZIONE VERTICALE ,FRAME INIZIO,FRAME FINE, "arial", 20, $FFF000,$000000) ricordandoti che:
mis sono i minuti
sd1 sono i secondi
sd2 sono i decimi ed i centesimi.
__________________
no pain, no gain

Ultima modifica di Esavoc : 18-02-2014 alle 16:55.
Esavoc è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart Intervista a Stop Killing Games: distruggere vid...
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione Samsung Galaxy S25 Edge: il top di gamma ultraso...
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto HP Elitebook Ultra G1i 14 è il notebook c...
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
FIA e Formula E rinnovano il matrimonio:...
Windows 11 24H2 approda su nuovi sistemi...
Le restrizioni americane hanno generato ...
Una Mercedes EQS con batterie allo stato...
Il robot Walker S2 della Cina cambia la ...
Cosa vuol dire "vantaggio quantisti...
Retelit punta sulla connettività ...
Novità WhatsApp: promemoria sui m...
AMD: la prossima generazione di schede v...
MediaWorld potrebbe diventare cinese: Ce...
Amazon in delirio da sconti: 22 articoli...
EOLO ha più di 700 mila utenti in...
Una spin-off del MIT ha creato dei super...
Il radiatore di una BMW M4 per raffredda...
OpenAI accelera su GPT-5: lancio estivo ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v