Newsgroup: it.comp.software.divx
Titolo: Strani Avi - Strano comportamento su lettore SA

Ciao.
Ho di recente scaricato una decina di filmati di alcuni documentari 
registrati dal satellite e ricodificati in Xvid.
I filmati sono di buona qualità (lo si vede dai quantizer medi) ma nel 
mio lettore da tavolo, che legge di tutto, hanno uno strano 
comportamento mai verificato prima e mi piacerebbe capire perchè:
appena li mando in play partono accelerati (video e audio), lo si vede e 
sente chiaramente e se non faccio nulla vanno avanti così fino alla 
fine. Se mentre sono in play li faccio avanzare (o indietreggiare) 
qualche secondo e poi ripremo play con il telecomando, poi vengono 
riprodotti perfettamente fino alla fine del filmato.
Riprodotti sul pc non hanno alcun problema.
Il lettore, come ho già detto, è abbastanza nuovo e perfettamente 
funzionante quindi escluderei che possa trattarsi di un suo problema.
Ho analizzato uno di questi filmati con AviNaptic e ho riportato qui 
sotto il log esteso:
[ Info sul file ]
Nome: Video_Test.avi
Data: 26/02/2008 19:20:07
Dimensione: 372,631,552 bytes (355.369 MB)
[ Info generiche ]
Durata: 00:41:27 (2486.56 s)
Tipo di contenitore: AVI OpenDML
Streams totali: 2
Tipo stream n. 0: video
Tipo stream n. 1: audio
Audio streams: 1
ISFT: VirtualDubMod 1.5.10.2 (build 2540/release)
JUNK: VirtualDubMod build 2540/release
[ Dati rilevanti ]
Risoluzione: 624 x 352
Larghezza: multipla di 16
Altezza: multipla di 32
DRF medio: 3.274028
Deviazione standard: 1.002922
Media pesata dev. std.: 0.404850
[ Traccia video ]
FourCC: xvid/XVID
Risoluzione: 624 x 352
Frame aspect ratio: 39:22 = 1.772727 (~16:9)
Pixel aspect ratio: 1:1 = 1
Display aspect ratio: 39:22 = 1.772727 (~16:9)
Framerate: 25 fps
Frames totali: 62164
Stream size: 323,267,118 bytes
Bitrate: 1040.046065 kbps
Qf: 0.189402
Key frames: 1056 (0; 127; 221; 387; 431; ... 62119)
Null frames: 0
Min key int: 1
Max key int: 300
Key int medio: 58.867424
Ritardo: 0 ms
[ Traccia audio ]
Audio tag: 0x55 (MP3)
Bitrate (contenitore): 145.848 kbps VBR
Canali (contenitore): 2
Frequenza (contenitore): 48000 Hz
Chunks: 103607
Stream size: 45,332,832 bytes
Preload: 480 ms
Max A/V diff: 496 ms
Tipo: MPEG-1 Layer III
Initial skip: 480 bytes
MPEG frames: 103606
Durata: 00:41:27 (2486.544 s)
Bitrate (bitstream): 145.848541 kbps VBR
Chunk-aligned: Sì
Emphasis: none
Mode: joint stereo
Ritardo: 0 ms
[ Info sulla codifica MPEG4 ]
User data: DivX503b1393p
User data: XviD0046
Packed bitstream: Sì (*)
QPel: No
GMC: No
Interlaced: No
Aspect ratio: Square pixels
Quant type: H.263
Frames totali: 62164
Drop/delay frames: 0
Frames corrotti: 0
I-VOPs:  1056 (  1.699 %)
P-VOPs: 21809 ( 35.082 %) #########
B-VOPs: 39300 ( 63.219 %) ################
S-VOPs:     0 (  0.000 %)
N-VOPs:     0 (  0.000 %)
Max consecutive B-VOPs: 2
     1 consec:  2998 ( 14.176 %) ####
     2 consec: 18151 ( 85.824 %) #####################
[ Analisi DRF ]
DRF medio: 3.274028
Deviazione standard: 1.002922
DRF max: 5
DRF=1:  1428 (  2.297 %) #
DRF=2: 18418 ( 29.628 %) #######
DRF=3:  6389 ( 10.277 %) ###
DRF=4: 33551 ( 53.971 %) #############
DRF=5:  2379 (  3.827 %) #
DRF>5:     0 (  0.000 %)
I-VOPs DRF medio: 1.700757
I-VOPs deviazione std.: 0.457926
I-VOPs DRF max: 2
P-VOPs DRF medio: 2.091155
P-VOPs deviazione std.: 0.429909
P-VOPs DRF max: 3
B-VOPs DRF medio: 3.972722
B-VOPs deviazione std.: 0.389517
B-VOPs DRF max: 5
Rapporto generato da AVInaptic (18-11-2007) in data  2 mar 2008, h 19:44:55
Spero che qualcuno possa darmi qualche spiegazione.
Grazie mille, ciao.
-- 
Michele

 Spero che qualcuno possa darmi qualche spiegazione.
a una rapida occhiata mi pare che non abbia niente di sbagliato.
Forse l'unica caratteristica che potrebbe dare fastidio a qualche
lettore da tavolo e' la combinazione di packed bitstream e due
b-frames consecutivi.
Puoi provare a riscriverli in forma "unpacked" (con
MPEG-4 Modifier) e vedere se cambia qualcosa.
Comunque la causa la cercherei, piu' che nell'AVI, nel lettore
stesso...
-- 
Home page di Frank: 
http://fsinapsi.altervista.org
Home page di Giubbe e FAQ: 
http://giubbe.altervista.org

 stesso...
Beh, mi sono anche vantato di avere un lettore che legge di tutto, non 
ha problemi con i divx/xvid di grandi dimensione (>2Gb, ne avevamo 
parlato), non ha problemi con audio vbr, ecc.: che dovrei cercare che 
non va nel lettore?
Grazie, ciao.
-- 
Michele

 Ok, farò la prova.
Come temevo, non è cambiato nulla.
Di fatto mi capita tante volte di vedere filmati codificati con il 
packet bitstream e il mio lettore non ha mai avuto problemi.
La cosa curiosa è che tra quei filmati (in tutto sono 9) ce ne è uno, 
uno soltanto, che non presenta il problema che ho denunciato nel thread.
Posto anche per quello l'analisi di AviNaptic anche se, di primo 
acchito, non ho notato differenze apprezzabili con quello (uno degli 
altri 8) che presenta problemi:
[ Info sul file ]
Nome: Video_test_ok.avi
Data: 27/02/2008 09:38:49
Dimensione: 365,844,480 bytes (348.896 MB)
[ Info generiche ]
Durata: 00:41:29 (2489.28 s)
Tipo di contenitore: AVI OpenDML
Streams totali: 2
Tipo stream n. 0: video
Tipo stream n. 1: audio
Audio streams: 1
ISFT: VirtualDubMod 1.5.10.2 (build 2540/release)
JUNK: VirtualDubMod build 2540/release
[ Dati rilevanti ]
Risoluzione: 624 x 352
Larghezza: multipla di 16
Altezza: multipla di 32
DRF medio: 3.269395
Deviazione standard: 0.997398
Media pesata dev. std.: 0.390752
[ Traccia video ]
FourCC: xvid/XVID
Risoluzione: 624 x 352
Frame aspect ratio: 39:22 = 1.772727 (~16:9)
Pixel aspect ratio: 1:1 = 1
Display aspect ratio: 39:22 = 1.772727 (~16:9)
Framerate: 25 fps
Frames totali: 62232
Stream size: 322,986,100 bytes
Bitrate: 1038.006491 kbps
Qf: 0.189030
Key frames: 871 (0; 17; 52; 100; 130; ... 62190)
Null frames: 0
Min key int: 1
Max key int: 300
Key int medio: 71.448909
Ritardo: 0 ms
[ Traccia audio ]
Audio tag: 0x55 (MP3)
Bitrate (contenitore): 128 kbps CBR
Canali (contenitore): 2
Frequenza (contenitore): 44100 Hz
Chunks: 62221
Stream size: 39,828,480 bytes
Preload: 496 ms
Max A/V diff: 500 ms
Tipo: MPEG-1 Layer III
MPEG frames: 95292
Durata: 00:41:29 (2489.260408 s)
Chunk-aligned: No
Emphasis: none
Mode: joint stereo
Ritardo: 0 ms
[ Info sulla codifica MPEG4 ]
User data: DivX503b1393p
User data: XviD0046
Packed bitstream: Sì (*)
QPel: No
GMC: No
Interlaced: No
Aspect ratio: Square pixels
Quant type: H.263
Frames totali: 62232
Drop/delay frames: 0
Frames corrotti: 0
I-VOPs:   871 (  1.400 %)
P-VOPs: 21841 ( 35.096 %) #########
B-VOPs: 39520 ( 63.504 %) ################
S-VOPs:     0 (  0.000 %)
N-VOPs:     0 (  0.000 %)
Max consecutive B-VOPs: 2
     1 consec:  3286 ( 15.353 %) ####
     2 consec: 18117 ( 84.647 %) #####################
[ Analisi DRF ]
DRF medio: 3.269395
Deviazione standard: 0.997398
DRF max: 5
DRF=1:  1344 (  2.160 %) #
DRF=2: 18706 ( 30.058 %) ########
DRF=3:  6115 (  9.826 %) ##
DRF=4: 33975 ( 54.594 %) ##############
DRF=5:  2092 (  3.362 %) #
DRF>5:     0 (  0.000 %)
I-VOPs DRF medio: 1.725602
I-VOPs deviazione std.: 0.446210
I-VOPs DRF max: 2
P-VOPs DRF medio: 2.073623
P-VOPs deviazione std.: 0.411568
P-VOPs DRF max: 3
B-VOPs DRF medio: 3.964271
B-VOPs deviazione std.: 0.378025
B-VOPs DRF max: 5
Rapporto generato da AVInaptic (18-11-2007) in data  3 mar 2008, h 16:46:49
Spero che ad una occhiata meno rapida tu possa scorgere il problema... ;)
Ciao e grazie mille.
-- 
Michele

 Spero che ad una occhiata meno rapida tu possa scorgere il problema... ;)
ad un'occhiata altrettanto rapida, se ricordo bene in quello precedente
l'audio era VBR, e inoltre avevo notato una leggera imperfezione:
c'era un po' di garbage all'inizio (segnalato dal campo "initial skip")
e il numero di chunks audio era pari al numero di "MPEG frames" piu' uno
(in un VBR quei due numeri dovrebbero coincidere). Non te l'avevo detto
perche' queste piccole imperfezioni non danno mai problemi...
Se ne hai voglia, controlla anche gli altri filmati.
In particolare dovresti controllare:
- se il tipo di audio è VBR;
- se il numero di chunks audio e' piu' grande di uno del numero di
  audio frame;
- se viene segnalato "initial skip" sull'audio
Non e' detto che dipenda da questo ma se queste caratteristiche fossero
comuni a tutti eccetto a questo, allora forse si'...


 - se viene segnalato "initial skip" sull'audio
Cavolo Frank, penso che tu ci abbia azzeccato anche stavolta:
tutti gli altri 8 file avi hanno in comune l'audio vbr, il numero di 
chunks audio più grande di 1 rispetto al numero di audio frame e la riga 
"initial skip" di 480 bytes.
Adesso però ho bisogno di chiederti altre cose perchè vorrei capire meglio:
- perchè nella codifica audio vbr i valori MPEG frames e chunks audio 
devono essere uguali?
- nella codifca cbr i primi sono di circa 1/3 superiori ai secondi: è 
normale?
- che cosa sono esattamente quegli 480 bytes di "initial skip" e come si 
creano?
- quei filmati sono stati codificati male o è normale che si producano 
quei valori? Io credo che non sia normale visto che ogni tanto mi capita 
di vedere filmati con audio vbr (anche se cerco di evitarli in quanto 
non capisco proprio come oggi, con la rete a banda larga per tutti e 
storage da centinaia di GB, si stia ancora a codificare a bitrate 
variabile e molto basso per risparmiare 2-3 Kb...) che nel lettore SA 
funzionano perfettamente.
E' possibile sanarli (demux e poi remux, non so)?
Grazie mille Frank. Diavolo, ma quante ne sai?? :)
Ciao.
-- 
Michele

 E' possibile sanarli (demux e poi remux, non so)?
certo.
Estrai la traccia audio (puoi farlo anche con avinaptic:
Demux->EstraiTracciaAudio e lo salvi come "vecchio.mp3"), otterrai
un file "vecchio.mp3" che ha la stessa identica lunghezza che ti
segnala avinaptic nella voce "Stream size" della traccia audio.
A questo file devi togliere i primi 480 bytes.
Puoi farlo con una riga di comando tipo questa:
dd if=vecchio.mp3 of=nuovo.mp3 bs=480 skip=1
Il programma "dd" lo trovi anche per windows, tipo qui:
http://gnuwin32.sourceforge.net
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Puoi controllare il file "nuovo.mp3" con avinaptic: deve venir fuori
che il file MP3 VBR non ha alcun difetto (nessuna parte skippata).
Dopodiche' remuxi il file "nuovo.mp3" al filmato.
Ad esempio puoi usare il programma "avimerge" che trovi nel mio
sito (sezione "Codice->Misc") e dare questo comando:
avimerge -o nuovo.avi -i vecchio.avi -A 0 -p nuovo.mp3
(nota le differenze tra lettere maiuscole e minuscole: la
"A" e' l'unica lettera maiuscola).
Poi controlli il risultato: il numero di chunks audio deve
coincidere con quello dei frame MPEG e non devi piu' avere
"initial skip".
Poi controlli se audio e video sono sincronizzati: puo' succedere
che l'audio sia leggermente in anticipo, ma secondo me e'
improbabile. Comunque, se dovesse succedere, puoi impostare un
ritardo audio opportuno con avinaptic (Modifica->ImpostaRitardi).


 ritardo audio opportuno con avinaptic (Modifica->ImpostaRitardi).
Grazie Frank, per la tua lezione che ho prontamente salvato (insieme 
alle altre).
Ho seguito minuziosamente le tue istruzioni:
- ho usato dd per pulire il file mp3 di quei 480 bytes;
- per remuxare i flussi ho dovuto usare virtualdubmod perchè avimerge mi 
dava questo errore "AVI read video frame: avilib - Error reading from 
AVI file - REASON: Bad address"
- ho analizzato il nuovo file avi e i chunk audio è ora identico ai 
frames MPEG e inoltre non esiste più la voce "initial skip";
- il nuovo file avi è perfettamente sincronizzato
I file generati in questo modo adesso funzionano perfettamente nel mio 
lettore stand alone! :)
Mi sembra evidente quindi che era quella "sporcizia" di soli 480 bytes a 
dargli fastidio...
Tu hai detto che un file del genere lo consideri normalmente "ok"; devo 
presumere che sia quindi una deficienza o malfunzionamento del mio 
lettore, che dici?
Approfitto per chiederti altre cose se non ti rompe: avinaptic demuxa la 
traccia audio senza problemi; se voglio demuxare il video mi viene 
generato un file "raw" che nè avimerge nè virtualdub riescono a gestire: 
a che serve quel formato? Sarebbe comodo se avinaptic estraesse un file 
avi senza audio: non è possibile integrare una simile funzione?
Le coreutils che contengono anche il file dd sono un mare di utility: ma 
servono tutte per la multimedialità? Lo chiedo perchè alcune come who, 
rmdir, pwd mi ricordano il sistema unix che un po' conosco. Ma magari ho 
solo preso un abbaglio...
Bene, per ora non posso che ringraziarti per aver svelato anche questo 
arcano e per avermi insegnato un'altra cosa nuova.
Sei un pozzo di sapere in questo ambito e probabilmente non solo in 
questo... ;)
Ciao.
-- 
Michele

 servono tutte per la multimedialitą?
nessuno serve per la multimedialita', sono generiche utilities GNU.
Ti ho consigliato quello perche' non conosco i programmi per windows.
Se sai fare la stessa cosa con altri programmi, puoi usare quelli :-)
Stessa cosa per "avimerge", per rimuxare hai usato VDubMod e va
benissimo


 benissimo
Immaginavo...
DD  una utility molto potente anche se non proprio "comoda" da 
utilizzare. Ho creato un file batch per correggere tutti quei filmati.
Certo è che se ci fosse una anche piccola utility windows che faccia 
quel lavoro non mi dispiacerebbe; il fatto è che non saprei nemmeno cosa 
cercare...
A proposito di DD, il parametro "skip=1" non ho capito cosa fa...
Grazie ancora, ciao.
-- 
Michele