Newsgroup: it.comp.software.divx
Titolo: Virtualdub

Perchè quando si tenta  di tagliare un file con Virtualdub, non
si trova mai il punto esatto ?
Io per esempio adesso sto tentando di togliere alcuni fotogrammi iniziali
di un film, ma niente, mi ritrovo sempre ad aver tagliato meno di quello
che avevo previsto, si devono fare 100 tentativi per trovare il punto che
a te va bene !!!
Mah........!!!!!!!!!!
Ciao amici

a te va bene !!!
Forse usando le frecce con le chiavi fai prima, tanto dalle altre
parti non puoi tagliare. (o meglio, puoi farlo solo da un "lato",
quello che indica la fine del filmato)
Bye, Giubbe
__
Home page e FAQ: 
http://giubbe.altervista.org/
Inutile scrivere in privato, non ricevo le email.

 Bye, Giubbe
Pablo


formato DivX, non dal programma).
Secondo me dipende proprio dal programma, nel senso che se qualcuno
avesse voglia di programmare qualcosa del genere, "tagliare" in un
punto ben preciso potrebbe anche essere fattibile...... secondo me!

punto ben preciso potrebbe anche essere fattibile...... secondo me!
Non proprio. Il codec memorizza un'immagine intera (il keyframe) e le
altre per differenza.
Se vuoi tagliare una immagine memorizzata come differenza rispetto
alle altre devi prima poterla ricostruire e ovviamente devi anche
ricostruire tutto l'intorno del punto di taglio, altrimenti vedresti
solo una porzione ridotta dell'immagine (potrebbero anche essere pochi
pixel sparsi e non assomigliare per nulla all'immagine reale).
Se pensi che la differenza č fatta non solo con l'immagine che
precede, ma anche con quello successiva (b-frame) al keyframe ti rendi
conto che il lavoro (se mai fosse possibile) sarebbe veramente molto.
Attualmente per "tagliare" in un punto arbitrario non c'č altra strada
che ricomprimere (si ricostruiscono cosě tutte le informazioni), ma
questo, ovviamente, non č un taglio vero e proprio.


ricostruire tutto l'intorno del punto di taglio, altrimenti vedresti
E perche' non lasciamo il compito della costruzione dell'ultimo frame
al player, e il software che taglia non si preoccupa solo di tagliare?
Se io taglio al frame differenziale X e mi porto appresso anche X+1
senza comunque arrivare al successivo keyframe, perche' il player, che
i precedenti li ha tutti, e anche il successivo, non puo' fermarsi
esattamente all'ultima scelta ricostruita? (ricostruita esattamente
come tutte le altre durante il play). Se fermo il player a meta' tra
due keyframe, per visualizzarti quel fermo immagine, ha avuto bisogno
del keyframe successivo?

esattamente all'ultima scelta ricostruita? 
Infatti il problema non si presenta alla fine del primo taglio, ma
all'inizio del secondo (è quello che avevo chiamato ultimo "lato" nel
post precedente).
Per esempio, ho questo filmato
K1
P1=K1-Q1
P2=K1-Q2
P3=P2-Q3
P4=P3-Q4
K2
P5=K2-Q1
P6=P5-Q2
B1=K3-P6-Q3
B2=K3-P6-Q4
Dove K è il keyframe, P è il delta frame (per differenza rispetto al
precedente) e B è il b-frame (differenze rispetto al successivo)
L'esempio non pretende di essere esatto, voglio solo avere una base su
cui discutere.
Ora se taglio così
K1
P1=K1-Q1
P2=K1-Q2
TAGLIO
P3=P2-Q3
P4=P3-Q4
Il decoder (e quindi il player) non ha problemi per tutto il primo
pezzo, ma con la seconda parte come fa? Che "valore" ha il frame P2?
Il programma che taglia deve necessariamente sostituire a P3 il
corrispondente frame intero, in questo caso dovrebbe essere
K1B=K1-Q2-Q3, ovviamente nel caso reale l'unico modo per far ciò è
ricomprimere.
Se il taglio lo faccio così:
K2
P5=K2-Q1
P6=P5-Q2
B1=K3-P6-Q3
TAGLIO
B2=K3-P6-Q4
Il decoder ha ancora qualche problema perchè non conosce la "storia"
di P6. In questo caso anche il primo pezzo ha un problema: chi è k3?
Ora tu dici che nei due casi precedenti il programma di taglio
dovrebbe scrivere qualcosa come
(seconda parte del filmato, la prima è inufliuente)
TAGLIO(K1,Q2)
P3=P2-Q3
P4=P3-Q4
e
(prima parte)
K2
P5=K2-Q1
P6=P5-Q2
B1=K3-P6-Q3
TAGLIO(K3)
(seconda parte)
TAGLIO(P5,K2,Q1,Q2)
B2=K3-P6-Q4
In questo caso abbaimo due problemi, il primo è che l'informazione che
mi serve non è un semplice frame, ma tutta la sua "storia" (come
indicato tra parentesi) e il secondo problema è che il decoder non
conosce la direttiva "TAGLIO" e quindi mostrerebbe le informazioni tra
parentesi come normali frame.
Come vedi il problema più grosso è il secondo (almeno credo che il
primo non sia così casinoso, ma parlo da profano), fino a quando
qualcuno non crea un programma che ricostruisce o non crea un codec in
grado di gestire i tagli, non ci resta che tagliare nei KeyFrame.
Bye


 ma con la seconda parte come fa? Che "valore" ha il frame P2?
Non so se e' possibile inserire keyframe a piacere in un divx, ma se
cosi' fosse si potrebbe iniziare da un keyframe calcolato dal software
che taglia li' nell'esatto punto del taglio, e far iniziare il secondo
pezzo da quel keyframe calcolato. Il software che dovrebbe tagliare ha
tutte le informazioni di cui ha bisogno, per fissare il frame di quel
punto come keyframe!