Newsgroup: it.comp.software.divx
Titolo: Trenta!!!

Bentrovati, pastrugnatori di divuics che non siete altro :)
Trenta, o per la precisione 29,97 al secondo e' il frame rate
di un filmato che dovrei dare in pasto al lettore standalone...
lettore compatibile *solo* con lo standard PAL (25fps), pena 
una scattosita' in riproduzione a dir poco intollerabile.
Domandona: no problem per il framerate 23,976 facilmente
"accelerabile" a 25, ma per caso avete consigli per il 29,97??
Grazie sin d'ora e un salutone a tutti, guru e non ;)

 "accelerabile" a 25, ma per caso avete consigli per il 29,97??
per prima cosa dovresti capire se il filmato "nasce" a 29.97
oppure se c'e' stato portato (da 24) con procedimento "telecine".
se e' un film, quasi sicuramente c'e' stato portato; se e' un
programma televisivo o un concerto, o evento sportivo... molto
probabilmente e' nato proprio a 29.97.
per capirlo si puo' scorrere frame per frame: se sono tutti
interlacciati, allora e' nato cosi'; se alcuni sono progressivi
e altri interlacciati (per la precisione: 2 interlacciati seguiti
da 3 progressivi, seguiti da 2 interlacciati, ecc.) allora si
tratta di un film che in origine e' stato filmato a 24 fotogrammi
al secondo e in seguito, per poterlo vedere su un televisore ntsc,
e' stato sottoposto a procedimento telecine (3:2 pulldown):
http://en.wikipedia.org/wiki/Telecine
per convertire a PAL 25fps un filmato 29.97 nativo, il metodo
piu' semplice e ovvio e' quello di buttare via i frame in
eccesso :-) cercando di distribuirli nel modo piu' regolare
possibile; questo e' quanto fanno quasi tutti i programmi...
questa rozza tecnica da' risultati sufficientemente buoni
eccetto qualche scattino nelle scene piu' movimentate; una
tecnica piu' sofisticata, che da' risultati piu' fluidi
(purche' si guardino sul televisore) e' quella descritta in
fondo a questa pagina:
http://www.guthspot.se/video/AVSPorts/SmoothDeinterlacer/
mi riferisco a quel frammento di script AviSynth che inizia con
questo commento:
# NTSC DVD (59.94 fps) to PAL DVD (50 fps)
(i framerate sono raddoppiati perche' sono riferiti ai singoli
campi, non ai frame interi)
se invece hai a che fare con film "telecined", in teoria
dovresti applicare un procedimento "ivtc" (inverse telecine),
ma la cosa potrebbe risultare abbastanza complessa...
se hai fortuna, applicando un semplice filtro "ivtc", puoi
riottenere un filmato progressivo 24 fps (i fotogrammi
originali), e questo poi lo sapresti gia' portare a 25...
se hai sfortuna, il filmato, dopo essere stato sottoposto
a 3:2 pulldown, potrebbe essere stato in seguito rimaneggiato
e aver subito nuovi montaggi... e questo rende piu' difficile
il procedimento ivtc;
se non ricordo male, dovrebbe esistere un filtro "furbo" in
grado di effettuare l' "ivtc" anche in casi difficili, ma
non saprei dirti come si chiama.
mplayer/mencoder ha 4 o 5 filtri "ivtc", da quanto mi pare di
capire uno dovrebbe essere una versione piu' sofisticata del
precedente; tuttavia non li ho mai usati...

 oppure se c'e' stato portato (da 24) con procedimento "telecine".
dopo averti risposto, mi sono accorto che tutto quello che ho
scritto vale se si sta parlando di un filmato 29.97 in DVD...
poi ho pensato: "mi sa che lui abbia per le mani un DivX, non un
DVD" ma fino ad ora non ho potuto rettificare :-)
se il tuo filmato 29.97 e' un DivX, allora e' probabile che chi
lo ha codificato lo abbia gia' "trattato", ad esempio puo' averlo
deinterlacciato e scalato a una risoluzione inferiore...
in tal caso non ha senso che tu applichi i procedimenti di cui
ti ho parlato; mi sa che l'unica cosa che abbia senso fare e'
applicare una tecnica rozza di eliminazione dei "frames di
troppo" (frame dropping).
per farti capire meglio, dai un'occhiata a questa pagina, dove
vengono descritti alcuni filtri di AviSynth:
http://www.avisynth.org/FPS
la tecnica che gia' conosci e che applichi per portare un filmato
da 23.976 a 25 corrisponde al filtro AviSynth che si chiama
"AssumeFPS" (i frame non vengono toccati, viene solo cambiato il
framerate nominale nell'header: e' la tecnica di "avifrate").
la tecnica di cui hai bisogno per passare da 29.97 a 25 corrisponde
al filtro "ChangeFPS" (versioni di AviSynth successive alla 2.05).
il filtro "ConvertFPS" dovrebbe fare un lavoro simile a quello
descritto nella pagina del tizio svedese che avevo segnalato nel
precedente post...
comunque, credo che tu possa fare semplicemente con VDub la
stessa cosa che fa "ChangeFPS" di AviSynth.

 DVD" ma fino ad ora non ho potuto rettificare :-)
Ciao grande Frank, grazie per la gentilezza, la completezza
e la competenza delle tue risposte. Esemplari.
Per quanto riguarda il caso in esame, trattasi di un vecchio film 
pertanto a 24 fps, e che e' stato portato a 30 (passami gli arrotondamenti)
"semplicemente" aggiungendo 6 frames (raddoppiati) al secondo
1
2
3
4
5 (che in realta' e' l'esatta ripetizione del 4)
6
7
8
9
10 (che in realta' e' l'esatta ripetizione del 9)
e cosi' via. Inoltre i frames sono PERFETTI, no artefatti da inter-
lacciamento; in soldoni, servirebbe un programmino/filtro che rimuova 
tutti i frames raddoppiati e restituisca solo quelli "originali"; 
a quel punto, portare il framerate a 25 ridiventa semplice routine.
Potrei farlo anche a mano, uno per uno, ci si rilegge a Natale, OK? ^_^

> DVD" ma fino ad ora non ho potuto rettificare :-)
Dimenticavo: si' e' un dvx, analizzato "visivamente" con VDMod.
Ciao e grazie ancora.

 "semplicemente" aggiungendo 6 frames (raddoppiati) al secondo
In questo caso ti basta un IVTC (inverse telecine). Con virtualdubmod lo
trovi in video->frame rate. Ti basta un direct stream copy.
Se il risultato è scattoso dovresti provare il filtro decimate, altrimenti
si sceglierà un'altra strada.
bye, giubbe
-- 
HomePage e FAQ: 
http://giubbe.altervista.org
Inutile scrivere in privato, non ricevo le email

 si sceglierà un'altra strada.
Caro Giubbe, ho pastrugnato con VDMod come dici tu ma non ne vengo 
a capo, e dovrebbe essere una cosa facilissima...
In pratica e' una semplice sequenza ABCDDEFGHHILMNNOPQRR... alla
quale bisogna solo rimuovere i doppioni D,H,N,R... nient'altro.
Continuero' col pastrugnamento, in attesa di un volontario al quale
mandarne uno spezzoncino (9mb) cosi' ci dara' un'occhiata lui stesso :)

 mandarne uno spezzoncino (9mb) cosi' ci dara' un'occhiata lui stesso :)
Se vuoi, puoi mandarlo a me. Nell'oggetto dell'email metti
holoviaq...@tin.it
 altrimenti ti verrà cancellata automaticamente
Fallo più piccolo di 9MB (intorno a 7 MB) altrimenti nella casella postale
non ci sta.
Il tutto, ovviamente, se non si lede la privacy di qualcuno.
Bye


 Se vuoi, puoi mandarlo a me. 
Hai posta, che magari cambiavi idea... ^_^

 Hai posta, che magari cambiavi idea... ^_^
Perfetto, questa sera gli do un'occhiata, sempre che il client non l'abbia
cancellata... (te ne accorgi perchè ti arriva un messaggio di avvertimento)
bye
-- 
 Home page e FAQ (divx): 
http://giubbe.altervista.org/
Inutile scrivere in privato, non ricevo le email. 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 tutti i frames raddoppiati e restituisca solo quelli "originali"; 
se non riesci a risolvere, fammelo sapere, ti scrivero' un
programmino ad hoc per questo caso specifico; dovrebbe essere
molto semplice.
pero' vorrei sapere cosa ti stampa il programmino sopra...

 Perfetto, questa sera gli do un'occhiata
Effettivamente ho detto una bischerata, non basta il semplice VirtualDub.
Mi ricordavo male.
Ci sono due strade, vedi tu quale ti fornisce miglior risultati.
La prima precede l'uso di tmpgenc con cui dovrai ricomprimere sia l'audio
che il video. La sincronizzazione non viene persa.
Crea nuovo progetto, apri il file avi 
Vai in Setting e seleziona advanced-->invece telecine, premi OK
Riapri Setting, in video seleziona Framerate 25 fps
Dal menu file scegli Oputput to file->avi file e scegli il codec per il
video e l'audio.
Il secondo metodo prevede l'uso di avisynth, dovrai ricomprimere solo il
video. Non viene persa la sincronizzazione.
Crea un file avs come il seguente
loadplugin("E:\avisynth2.5\decomb.dll")
avisource("spezzone.avi")
Telecide()
Decimate(5)
convertToYuy2
ConvertFPS(25)
Il filtro decomb lo trovi qui:
http://www.avisynth.org/warpenterprises/
Apri il file in VirtualDubMod e imposta "Fast Recompress" e di seguito
imposta il codec video.
Salva e confronta i due filmati. A me sembra migliore il secondo, ma forse
è solo una mia impressione.
Se decidi di ottenere 24, ti basta togliere gli ultimi due filtri in avs o
l'impostazione del framerate in tmpgenc. In verità otterrai 23.977, ma
dovrebbe essere ugualmente buona, altrimenti scrivi 24 al posto di 25.
Bye
-- 
HomePage e FAQ: 
http://giubbe.altervista.org


 pero' vorrei sapere cosa ti stampa il programmino sopra...
Zero. Comunque se vuoi lo spezzone lo invio anche a te,
sono solo quasi 6MB... fammi sapere. E ri-grazie!

 No, non riesco; 
Scritto prima di aver letto il post di Giubbe delle 22:54,
provero' domani. Grazie ancora Giubbe, ti faccio sapere.

 convertToYuy2
Big Giubbe, sto provando or ora, solo una curiosita', mi spiegheresti
l'ultimo comando che purtroppo e' descritto come "really time spending"? 
Voglio dire: in riferimento a "spezzone.avi" che conosci, ometterlo
cosa comporta? Grazie mille ancora.

 cosa comporta? Grazie mille ancora.
Per ultimo comando cosa intendi? Comunque te le spiego entrambi.
convertToYuy2
ConvertFPS(25)
"Il ConcertFPS cerca di convertire il frame rate del clip alla nuova
velocità senza togliere o inserire frames, con una conversione uniforme con
risultati simili a quelli di apparati di conversione standalone." (dal
manuale in italiano, vedi link sul mio sito).
Questo filtro lavora solo con la modalità di colore Yuy2, mentre i filmati
in DivX sono in Yv12, occorre quindi cambiare la modalità di colore in
Yuv2. Tale compito è fatto da ConvertToYuy2. Con questa conversione i tempi
si allungano, ama non si può fare altrimenti volendo utilizzare uil
convertFPS.


 convertToYuy2
Intendevo questo; ad ogni modo l'avs che ho usato e'
loadplugin("C:\decomb.dll")
avisource("C:\filmato.avi")
Telecide(0)                 (lasciare () mi dava errore)
Decimate(5)
sul solo video, l'audio l'avevo estratto come wav e accelerato
con besweet 23,977->25,000, quindi ho riunito questo stream
e il video-no-doppioni alzando alla fine il framerate a 25...
*perfetto*.
Ri-grazie mille, Giubbe.