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

Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone'
Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone'
Zenfone 11 Ultra ha tantissime qualità interessanti, fra cui potenza da vendere, un display di primissimo livello, un comparto audio potente e prestazioni di connettività fra le migliori della categoria. Manca però dell'esclusività del predecessore, che in un settore composto da "padelloni" si distingueva per le sue dimensioni compatte. Abbiamo provato il nuovo flagship ASUS, e in questa recensione vi raccontiamo com'è andata.
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA
Abbiamo partecipato ad Appian World 2024, evento dedicato a partner e clienti che si è svolto recentemente nei pressi di Washington DC, vicino alla sede storica dell’azienda. Nel festeggiare il 25mo anniversario, Appian ha annunciato diverse novità in ambito intelligenza artificiale
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Primo contatto con il monitor Lenovo ThinkVision 3D 27 che grazie a particolari accorgimenti tecnici riesce a ricreare l'illusione della spazialità tridimensionale senza che sia necessario utilizzare occhialini
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


Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone' Recensione Zenfone 11 Ultra: il flagship ASUS ri...
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA Appian: non solo low code. La missione è ...
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini Lenovo ThinkVision 3D 27, la steroscopia senza o...
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing La Formula E può correre su un tracciato ...
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming Lenovo LEGION e LOQ: due notebook diversi, stess...
X-Apply: se non riesci a mettere la past...
Termostato intelligente Tado e teste ter...
Progetti sempre più avanzati, com...
AMD Ryzen Strix Halo: le prossime APU mo...
Google Pixel 8 256GB 649€, iPad 399€ e a...
Sono i migliori PC portatili tuttofare s...
Super prezzi Motorola: G84 5G 12GB/256GB...
eFootball taglia il traguardo dei 750 mi...
MS-DOS 4.0 diventa open source: Microsof...
Micron riceverà 6,1 miliardi di d...
STALKER 2 Heart of Chornobyl: nuovo trai...
Google: ancora un rinvio per lo stop ai ...
Lotus Evija X è la seconda auto elettric...
NIO e Lotus annunciano una grossa novit&...
Esclusive PlayStation su Xbox? Sì...
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: 12:13.


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