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

Ho un file .avi che il mio lettore stand alone non riesce a leggere.
Il messaggio che appare e' il seguente:
"Il codec non e' supportato bla bla bla"
Codec: MPEG 4 with QPel
Sapete cos'e'?
Se uso gspot non mi parla di quel codec :/
C'e' modo di modificare il file in modo tale da renderlo visibile al mio
lettore?
Ho un kiss dp1000
--
in tutta la mia vita ho sempre avuto meno difficoltà e problemi con
le donne che con gli uomini... sarà che, come dici te, ho il
carattere vicino a quello di una donna e mi sentono come una di loro
                                                    Forrest    (da ICCP)
# Plagez - ICQ: 137886139 # La vera carica erotica di ICCP

 Codec: MPEG 4 with QPel
Devi ricodificare il filmato togliendo l'opzione QPel.
-- 
Saluti, Kap - ICQ 19857429 - ¥'s Fan #01 - 
www.lordkap.it
 - VCC
Un marito, come un governo, non deve mai confessare errori.
Honoré de Balzac

 Ho un kiss dp1000
Anke io ho il Kiss dp1000 e vorrei sapere se da te i filmati in Xvid 
vanno bene xchč quando io metto un filmato compresso con questo codec, 
il video ogni tanto si blocca mentre l'audio scorre per poi ripartire.
In piů sporadicamente il lettore quando č in stand-by (tre linette sul 
display) si blocca e non si riaccende piů dal telecomando e ddevo 
staccare la spina.

 il video ogni tanto si blocca mentre l'audio scorre per poi ripartire.
sono tanti i post in cui vengono lamentati problemi dei lettori
stand-alone con il codec xvid, e sarei curioso di sapere la causa...
forse, quando codificate, usate qualche opzione particolare, che non e'
supportata dal lettore...
o forse il filmato e' stato ottenuto in doppia passata, senza avere
messo un limite al massimo bitrate...
provate a vedere se nelle opzioni del vostro XviD esiste un parametro
che si chiama "max bitrate" o qualcosa del genere, e controllate a
quale valore lo avete impostato prima di procedere con la codifica...
tenete sempre a mente che esiste un limite alla velocita' a cui un
lettore stand-alone puo' leggere dati da un supporto (tale limite, a
occhio e croce potrebbe essere dell'ordine di 8000-10000 kbps) e che,
anche disponendo di un buffer piu' o meno capiente, improvvisi picchi
di bitrate che si protraggono per troppo tempo, possono costringere
il lettore a saltare dei pezzi di filmato...
per illustrare la situazione, si immagini due treni che viaggiano
sullo stesso binario nella stessa direzione, e che in mezzo ci sia
dello spazio; il treno davanti e' il lettore (che piu' di tanto non
puo' correre), il treno dietro e' il filmato, lo spazio in mezzo e'
il buffer; se il treno dietro accelera (bitrate variabile) potrebbe
non succedere niente di male, finche' rimane dello spazio tra i due
treni; ma se il treno di dietro non decelera in tempo, lo spazio si
esaurira' (buffer overflow) e ci sara' una collisione (il filmato
salta); spero di avere reso l'idea...

 salta);
in realta' l'esempio che ho fatto e' sbagliato perche' l'ampiezza dello
spazio tra i treni non gioca lo stesso ruolo dell'ampiezza del buffer:
bisognerebbe considerare l' "opposto" di tale ampiezza (piu' lo spazio
si allunga, piu' il buffer e' pieno, e viceversa); quindi il modello e'
piu' complicato di come l'ho spiegato :-)
nel senso che, essendo il buffer limitato, il treno davanti e'
costretto a rallentare nel caso in cui quello dietro vada piano
(perche' piu' di tanto non puo' bufferizzare); quindi quando ho parlato
di "buffer overflow", in realta' si verifica il fenomeno opposto, cioe'
"buffer completamente svuotato"...
forse conveniva dire che il treno davanti e' il filmato e quello dietro
il lettore :-)
ma mi piaceva di piu' illustrare il problema dei salti del lettore con
una collisione tra treni:-)

 messo un limite al massimo bitrate...
Ho controllatoun filmato "incriminato" con Gspot, mi da un bitrate di 
1353 kbps che è un valore molto inferiore all'esempio che dai tu. 
Possono esserci altre ipotesi a parte l'overflow?


Voncarstein, tesoro mio, ma cosa mi dici mai?

Nessun problema con gli xvid...a volte pero', in particolare nei filmati con
un bitrate attorno ai 1350 mi escono dei brutti artefatti di compressione.
--
Tu ci scherzi, ma mi ricordo che un mio amico che
aveva visto un C=64 da qualche parte mi disse:
"Che figata il commodore, basta scrivere qualcosa
e "calcio" e il computer crea il gioco del calcio"


 Devi ricodificare il filmato togliendo l'opzione QPel.
Non e' che voglio la pappa pronta, pero' non e' che mi sai dare qualche
consiglio o un link a qualche tutorial?
--
Tu ci scherzi, ma mi ricordo che un mio amico che
aveva visto un C=64 da qualche parte mi disse:
"Che figata il commodore, basta scrivere qualcosa
e "calcio" e il computer crea il gioco del calcio"
# Plagez - ICQ: 137886139 # La vera carica erotica di ICCP

 consiglio o un link a qualche tutorial?
Cerca un messaggio di Giubbe in questo NG. Nella sua firma c'è un link
al suo sito che ospita la FAQ.
-- 
Saluti, Kap - ICQ 19857429 - ¥'s Fan #01 - 
www.lordkap.it
 - VCC
All'uomo non capita nulla che dalla natura non sia stato formato a
sopportare. - Marco Aurelio Antonino

 al suo sito che ospita la FAQ.
Quello l'avevo gia' fatto... -_-
Giubbe, help me :)


 Possono esserci altre ipotesi a parte l'overflow?
non mi sono spiegato bene: intendevo il _massimo_ bitrate, non quello
medio (nell'esempio dei treni, poco importa se la velocita' media del
treno-filmato e' bassa, se poi durante il viaggio accelera/decelera di
brutto e l'altro treno-lettore non riesce ad adeguarsi).
anche a me e' capitato per le mani un divx che sul nortek saltava,
e che presentava un bitrate _medio_ di circa 1000 kbps, ma che aveva
delle parti con bitrate superiori a 10000 kbps...
se provi a tagliare in due (con Virtualdub o con qualsiasi altro
programma) un filmato con bitrate molto variabile, controllando con
Gspot potresti ottenere due filmati che hanno bitrate medi molto
diversi tra loro; mi hai seguito?
come scrissi tempo fa:
--------------------------------
il bitrate medio viene calcolato dai programmi in questo modo:
        l = AVI_video_frames( a );
        for ( i = 0, tot = 0 ; i < l ; i++ )
            tot += AVI_frame_size( a, i );
        kbps = tot * AVI_frame_rate( a ) * 8 / ( l * 1000 );
AVI_video_frames e' una funzione che rende il numero totale
dei frames del filmato, AVI_frame_size rende la dimensione in
bytes del frame i-esimo, mentre AVI_frame_rate e' il framerate
(in frame/secondi);
tradotto in parole, l'algoritmo calcola la media artmetica delle
dimensioni (in bytes) dei frames, poi moltiplica per 8 (1 byte = 8 bit)
poi divide per 1000 (nel caso dei bitrate, 1k = 1000) e infine
moltiplica per il framerate.
--------------------------------
per fare un semplice esempio, consideriamo queste due sequenze:
1)   10   10   10   10   10   10   10   10   10   10   10
2)    1    1    1    1  100    1    1    1    1    1    1
la somma della prima sequenza e' 110, la sua media e' ovviamente
10 (son tutti 10); la somma della seconda e' sempre 110, quindi la
media e' sempre 10.
se queste fossero le dimensioni dei frames di due filmati, Gspot
ci direbbe che i due filmati hanno lo stesso bitrate!
eppure il primo ha un bitrate costante, mentre il secondo ha un
"picco" di bitrate che fa saltare i lettori stand-alone!
spero di essere stato piu' chiaro...

 Quello l'avevo gia' fatto... -_-
Allora devi aver trovato scritto quello che fa al caso tuo.
Comunque, a grandi linee.
Segnati il bitrate e il codec (se non vuoi cambiarlo) del video (GSpot).
Apri il video con Virtual Dub Mod.
Nella sezione video metti "full processing mode".
Scegli il codec e cerchi se c'è settato da qualche parte 'sto QPel. Se
sì, lo togli.
Scegli il bitrate che ti eri segnato precedentemente.
Salvi il video con altro nome e aspetti la codifica.
-- 
Saluti, Kap - ICQ 19857429 - ¥'s Fan #01 - 
www.lordkap.it
 - VCC
In ogni epoca gli esempi più vili della natura umana si possono
trovare tra i demagoghi. - Thomas Babington Macaulay

> 1353 kbps che è un valore molto inferiore all'esempio che dai tu. 
non ho idea se GSpot mostri anche il bitrate massimo che viene raggiunto
dallo stream video di un AVI, oltre a quello medio; quindi, dato che mi
occorreva giusto un minuto, ho scritto un programmino (avi-max-bitrate)
che stampa anche tale informazione; avendolo scritto di fretta il
programma e' molto inefficiente e forse da' una risposta in tempi _umani_
solo per filmati di durata inferiore a una ventina di minuti...
comunque, se volete controllare il bitrate massimo dei vostri filmati,
ditemelo e lo compilero' anche per windows...
il programma e' a riga di comando, e funziona cosi':
si batte:
avi-max-bitrate ini-kamoze-here-comes-the-hotstepper.avi
e il programma stampa in uscita quanto segue:
--------------------------------------------------
codec:           DIVX
risoluzione:     512x384
framerate:       25 fps
bitrate medio:   1399.755252 kbps
bitrate massimo: 6084.2 kbps
frames:          6159
keyframes:       347
max keyint:      153
min keyint:      1
--------------------------------------------------
sullo stesso filmato, MPlayer stampa solo questa informazione:
--------------------------------------------------
VIDEO:  [DIVX]  512x384  24bpp  25,000 fps  1399,8 kbps (170,9 kbyte/s)
--------------------------------------------------
come potete vedere, il bitrate medio coincide esattamente con
quello calcolato dal mio programma; pero' MPlayer non dice qual e'
il bitrate massimo, che in questo caso e' 6084.2 kbps.
per calcolare il bitrate massimo, ho semplicemente simulato la
situazione dal punto di vista del lettore che si vede arrivare
lo stream di bit, pero' al momento non ho trovato un modo piu'
efficiente di questo doppio ciclo, che e' molto costoso! 
--------------------------------------------------
        for ( j = 0, sizemax = 0 ; j < l ; j++ )
            for ( i = j, tot = 0 ; i < l ; ) {
                s = AVI_frame_size( a, i++ );
                if ( s < 0 )
                    return UNDEF;
                tot += s;
                if ( tot / ( i - j ) > sizemax ) {
                    sizemax = tot / ( i - j );
                    imax = ( i - j );
                    totmax = tot;
                }
            }
--------------------------------------------------
cerchero' di riscriverlo in una forma piu' efficiente...



be', ho gia' trovato una forma estremamente piu' efficiente! :-)
scrivendo il codice qua sopra, avevo in mente che in seguito
avrei dovuto estenderlo per tenere in considerazione un sistema
di bufferizzazione (stavo gia' cercando materiale sulla "teoria
delle code", che e' la disciplina che studia appunto questo
genere di cose); quello che fa questo doppio ciclo e'
semplicemente di individuare la massima dimensione media di
*TUTTE* le sottosequenze di frame (trascurando la possibilita'
di bufferizzare una quantita' di bit durante i "periodi
tranquilli"), ma e' chiaro che la massima dimensione media,
in questo caso, deve coincidere con la dimensione massima...
in altre parole, basta considerare le sole sottosequenze di
lunghezza 1, e quindi il doppio ciclo si riduce a un solo
ciclo...
in effetti l'ho riscritto e mi vengono gli stessi risultati :-)

 Salvi il video con altro nome e aspetti la codifica.
grazie...fin troppo gentile!
stasera provo. :)
