Newsgroup: it.comp.software.divx
Titolo: Nuova versione del parser AVI

Ho rilasciato una nuova versione del mio parser AVI/MPEG4.
Non e' ancora completa, ma almeno e' un po' piu' rifinita di
quella di ieri :-)
La novita' e' che sono riuscito a compilare anche una versione
per Windows, quindi sul sito, oltre al codice sorgente, trovate
due eseguibili pronti all'uso, uno per Windows, l'altro per Linux.
Ho cambiato il nome del programma: adesso si chiama FilmAnalyzer.
Se vi viene in mente un nome piu' bello, fatemi sapere.
Chi vuole provarlo, puo' scaricarlo da qui:
http://fsinapsi.altervista.org
Attualmente il programma analizza solo AVI, ma forse lo
estendero' ad altri contenitori.
Il programma e' a riga di comando, e attualmente si usa
semplicemente passandogli come argomento il nome del file.
Esempio di utilizzo:
-------------------------------------------------------------
$ filmanalyzer prova.avi
[ Info generiche ]
Durata: 01:37:34 (5854 s)
Streams totali: 3
Stream n. 0 -> video
Stream n. 1 -> audio
Stream n. 2 -> audio
Audio streams: 2
ISFT: VirtualDubMod 1.5.4.1 (build 2178/release)
IAS1: Italiano
IAS2: English
[ Traccia video ]
Fourcc: xvid/XVID
Risoluzione: 608 x 352
Framerate: 25 fps
Frames totali: 146350
Scale: 1
Rate: 25
Start: 0
Ritardo: 0 ms
[ Traccia audio n. 1 ]
Audio tag: 0x2000 (AC3)
Bitrate: 448 kbps CBR
Canali: 6
Frequenza: 48000 Hz
Campioni: 327823104
Ritardo: 0 ms
[ Traccia audio n. 2 ]
Audio tag: 0x2000 (AC3)
Bitrate: 448 kbps CBR
Canali: 6
Frequenza: 48000 Hz
Campioni: 327823104
Ritardo: 0 ms
[ Info sulla codifica MPEG4 ]
QPel: no
GMC: no
Interlaced: no
Quant type: MPEG custom
Custom intra quant matrix:
   8  16  20  23  27  30  32  34
  16  16  23  24  29  31  34  38
  20  23  27  28  30  35  38  40
  23  24  28  29  35  39  40  44
  27  29  30  35  39  42  45  50
  30  31  35  39  42  46  54  59
  32  34  38  40  45  54  62  72
  34  38  40  44  50  59  72  84
Custom inter quant matrix:
  17  19  21  23  25  27  29  31
  19  21  23  25  27  28  29  33
  21  23  25  27  29  30  32  37
  23  25  27  30  31  34  40  45
  25  27  29  31  38  46  54  60
  27  28  30  34  46  58  72  74
  29  29  32  40  54  72  90 100
  31  33  37  45  60  74 100 124
Aspect ratio: Square pixels
-------------------------------------------------------------
Per gli utenti Windows: potete battere dal prompt DOS un comando
tipo questo:
filmanalyzer prova.avi > filminfo.txt
In questo modo verra' creato un file "filminfo.txt" che potete
ispezionare o importare con altri programmi a vostro piacimento.
Le informazioni fornite dal programma sono ancora incomplete
rispetto ad altri programmi, ma ha gia' alcune caratteristiche
interessanti; ad esempio, effettua il confronto tra le
informazioni che nell'AVI compaiono piu' di una volta, e, in
caso trovi qualche discordanza la riporta tra parentesi (accanto
ai valori piu' probabili).
Come al solito, se lo provate e vi imbattete in errori, fatemi
sapere, in modo che possa correggerlo.

 sapere, in modo che possa correggerlo.
Funziona.
Win xp sp2
Che si possa in Info Generiche avere il nome del video
anche quando non c'è stato inserito.
Dal prompt di dos come fare a dargli in pasto un video
con spazi nel titolo senza doverlo prima rinominare in win.
Libavcodec.so in libavcodec-dll.zip è con estensione giusta ?
E' prevista una gui per win ?
Gli unici errori su alcune prove fatte sono stati
con la y del nome del programma
E un paio di sovrascritture del file txt...
-- 
by Isaac (The Original)
Qu...@excite.it
 - Non usare per messaggi privati
Fidolook 2002 (SL) 6.0.2800.94 - 3/3/2005 11:18:26 

 ispezionare o importare con altri programmi a vostro piacimento.
Molto bene. Funziona. Bravo. ;)
-- 
Saluti, Kap - 
www.lordkap.it
 - ¥'s Fan #01 - 
www.pianetalibri.com
 - VCC
Companion, try to understand... It is the nature of our species to be
free. Just as it is your nature to stay here. We will... cease to exist
in captivity. Captain Kirk - Star Trek TOS

 titolo senza doverlo prima rinominare in win.
Supopngo mettendo le virgolette come quando si inseriscono i nomi dei
file nei comandi DOS. O no? Non ho nomi di file senza spazi... ;)
-- 
Saluti, Kap - 
www.lordkap.it
 - ¥'s Fan #01 - 
www.pianetalibri.com
 - VCC
Chi ti loda in presenza, ti biasima in assenza. - Proverbio popolare

 E un paio di sovrascritture del file txt...
questa non l'ho capita...
Comunque, ti ricordi di quel filmatino "battlestar" che ti dette
problemi?
Ebbene, guarda questo:
----------------------------------
[ Traccia video ]
Fourcc: DIVX/DIVX
Risoluzione: 320 x 240
Framerate: 25 fps
Frames totali: 6083 (15387)
----------------------------------
Questo viene riportato dal mio programmino: se ci fai caso, dopo
il numero corretto dei frames totali, tra parentesi viene
riportato (15837). Si tratta di un'anomalia, che potrebbe spiegare
in parte perche' ti dava problemi...
Qualche settimana scrivesti questo:
------------------------------------------------------------
Una cosa strana prima di finire.
Il file iniziale video+audio non manipolabile è di  4'03"
Aprendolo con abcAvi Tag Editor invece
mi dice che è  10'15" e la lunghezza corretta
di  4'03" me la indica solo nella copia successiva senza audio
e ovviamente anche in quelle seguenti.
Accidenti all'eccessiva curiosità....:)
------------------------------------------------------------
Allora non sapevo darti una risposta, ma adesso lo sappiamo :-)
I programmi che utilizzando il valore 6083 frames, calcolano
la durata cosi':
6083/25 = 243 secondi = 4'03"
Quelli che invece usavano il valore bacato (tra cui temo anche
VDubMod), calcolano la durata cosi':
15387/25 = 615 = 10'15"
E ho scoperto che questo non e' il solo valore che viene scritto
da piu' parti nell'AVI...
Cosi' ho messo nel mio programmino tutti i confronti, in modo
che riporti le eventuali discordanze, che potrebbero essere
all'origine di problemi con qualche programma...
Grazie e ciao
Grazie anche a Lord Kap per averlo provato

 file nei comandi DOS. O no? Non ho nomi di file senza spazi... ;)
lo penso anch'io.
Magari faro' una semplice interfaccina grafica.
A me forse piace piu' cosi' :-)

 Grazie anche a Lord Kap per averlo provato
Non l'avrei mai mancato! ;)
-- 
Saluti, Kap - 
www.lordkap.it
 - ¥'s Fan #01 - 
www.pianetalibri.com
 - VCC
La democrazia fondata sull'uguaglianza assoluta è la più assoluta
tirannide. - Cesare Cantù


Per un po' temevo che non andasse, poi ho scoperto che se scrivevo 
"> prova.txt" con lo spazio tra > e prova,txt, si incantava, poi ho
scritto ">prova.txt" e ha funzionato: è normale?
A parte questo, ottimo prog, mi manca la GUI e alcune info basiche :-)
QF
Aspect Ratio
Con la GUI sarebbe anche comoda la funzione di salvare le info di
tanti AVI separatamente come fa GSpot.
Come nome non sarebbe male... Profiler o AVInaptic ;-)
-- 
Paradoxally,
Jan AxHell

 Grazie e ciao
Grazie a te.
Ciao


 scritto ">prova.txt" e ha funzionato: è normale?
Non dovrebbe. Io ho messo lo spazio sempre, ma ho fatto la prova anche
senza spazio ed ho lo stesso risultato.
-- 
Saluti, Kap - 
www.lordkap.it
 - ¥'s Fan #01 - 
www.pianetalibri.com
 - VCC
L'influenza corruttrice di un mondo tranquillo e di una lunga pace.
William Shakespeare

senza spazio ed ho lo stesso risultato.
Classico, arriva il medico e i sintomi scompaiono. Ho riprovato adesso
e non lo fa più. Ritiro quello che ho detto, è il mio Windows che ieri
sera aveva voglia di annoiarmi.
-- 
Paradoxally,
Jan AxHell

 Come nome non sarebbe male... Profiler o AVInaptic ;-)
AVInaptic mi piace :-)
Lo adotto subito, grazie! :-)
E se dovessi supportare altri contenitori oltre all'AVI, pazienza...
queste sono le info che riporta attualmente:
--------------------------------------------------
[ Info generiche ]
Nome: prova.avi
Dimensione del file: 1,368,205,312 bytes
Data del file:  2/10/2006 17:06:13
Durata: 01:37:34 (5854 s)
Streams totali: 3
Tipo stream n. 0: video
Tipo stream n. 1: audio
Tipo stream n. 2: audio
Audio streams: 2
ISFT: VirtualDubMod 1.5.4.1 (build 2178/release)
IAS1: Italiano
IAS2: English
[ Traccia video ]
Fourcc: xvid/XVID
Risoluzione: 608 x 352
Framerate: 25 fps
Frames totali: 146350
Stream size: 706,028,288 bytes
Bitrate: 964.849044 kbps
Qf: 0.180332
Key frames: 2429 (0; 250; 500; 750...)
Null frames: 0
Min key int: 1
Max key int: 250
Key int medio: 60.251132
Scale: 1
Rate: 25
Ritardo: 0 ms
[ Traccia audio n. 1 ]
Audio tag: 0x2000 (AC3)
Bitrate: 448 kbps CBR
Canali: 6
Frequenza: 48000 Hz
Ritardo: 0 ms
[ Traccia audio n. 2 ]
Audio tag: 0x2000 (AC3)
Bitrate: 448 kbps CBR
Canali: 6
Frequenza: 48000 Hz


 In origine dovrebbero essere stati .flv
ho capito

> Aspect Ratio
cosa vuoi che venga visualizzato, il rapporto tra larghezza e altezza?
Dai un'occhiata a questo vecchio post:
http://tinyurl.com/m4vmw

E se dovessi supportare altri contenitori oltre all'AVI, pazienza...
Hehe, anche AVIcodec si chiama così, ma analizza tutti i formati.
-- 
Paradoxally,
Jan AxHell

 suo batch, e lui mi crea i vari log nella cartella di provenienza.
per quanto riguarda il trascinamento:
- se questo viene fatto sull'icona che compare nel dekstop, in certi
  ambienti e' lo stesso windows manager che si occupa di lanciare
  l'applicazione e passargli quel file come argomento, quindi il
  programma non deve fare niente di particolare...
- se viene fatto sulla finestra del programma che sta girando,
  occorre che il programma sia stato fatto a posta per quello specifico
  desktop environment (cosa che non ho intenzione di fare).
Comunque per lo scopo di archiviazione ti conviene senz'altro usare
GSpot, mi sembra gia' abbastanza completo.
Il mio programma puo' essere utile soprattutto in ambito Linux
(dove non c'e' GSpot, ma ci sono altri programmi che finora non mi
piacciono molto per quanto riguarda l'analisi dettagliata delle
caratteristiche...).
GSpot e' un programma specifico per Windows, ed e' utile anche perche'
informa sulla situazione dei codec di sistema adatti al film in esame.
Oltre a Linux, il mio programma puo' essere utile per analizzare
film che danno problemini subdoli (tipo quelli provocati dai frame nulli
oppure dai valori ripetuti discordanti).
Inoltre, ho intenzione di aggiungere la possibilita' di fare semplici
modifiche al volo, essenzialmente impostare i ritardi sugli stream;
questo mi pare utile perche' e' una modifica semplicissima
(reversibile) che evita di dover generare un'intera copia del film.

(reversibile) che evita di dover generare un'intera copia del film.
Ecco su questo GSpot a volte non ci prende, o meglio non rileva alcun
problema in filmati che invece ne hanno.
-- 
Paradoxally,
Jan AxHell

 problema in filmati che invece ne hanno.
bisogna vedere dov'e' il problema. Se un file e' corrotto, e'
difficile rilevare il problema, andrebbe decodificato completamente...
Ho iniziato a guardare i sorgenti di DRF Analyzer... mi sono
spaventato :-) E' un miscuglio di sorgenti presi dai pacchetti
piu' svariati (VDub, Nandud, XviD...), che ha modificato il tizio,
mettendoci commenti in portoghese... ha fatto un casino
incredibile :-)

incredibile :-)
Ahahah, male che vada daremo dei comandi in portoghese con AVInaptic


 Mi viene in mente una cosa: l'interlacciamento è possibile rilevarlo?
si', il primo metodo che mi viene in mente e' facile: basta prendere
un algoritmo di deinterlacciamento esistente (di tipo "area based")
e usare il suo test (e' una specie di "edge detection"). Poi bisogna
controllare quante volte il test e' positivo su un frame e quante
su un numero significativo di frame scelti a caso...
Alla fine si ottiene una specie di "percentuale di seghettature
rilevate" (naturalmente i test non sono mai infallibili, e avranno
sia falsi positivi che falsi negativi).
In genere, nei filmati realmente interlacciati si otterra' una
percentuale piu' alta di quelli progressivi. Facendo un po' di prove
si dovrebbe individuare una soglia che discrimini tra i due casi.
In pratica la situazione e' complicata dal fatto che, se il filmato
ha molte sequenze con pochi movimenti, i frame di quelle scene
sembrano progressivi e questo tende ad abbassare la percentuale
(e andare oltre la soglia impostata, dando un responso errato).
Inoltre, ci sono i famosi filmati 29.97 ottenuti con un metodo
3:2 pulldown, e quelli hanno il 60% di frame progressivi e 40%
interlacciati...
Comunque, non so se faro' una cosa del genere, perche' non rientra
negli scopi di un parser, che dovrebbe limitarsi a fare una analisi
della correttezza sintattica dei formati (nello specifico AVI e
MPEG4). Per fare anche una tale analisi, devo proprio decodificare
lo stream per tirare fuori i frame, e devo appoggiarmi a una
libreria potente come libavcodec... Anche se ho gia' fatto tutto
il lavoro necessario (per altri programmi), non credo che lo
mettero' in questo programma, casomai in un altro... Inoltre,
gli AVI/MPEG4, in pratica sono sempre progressivi; puo' capitare
che siano stati codificati interlacciati per sbaglio, ma i frame
restano progressivi...
Stavo pensado di aggiungere un'opzione "posta su questo Ng" :-)
Mi ci vorrebbe pochissimo a implementarla, ho gia' tutto.
Basterebbe aggiungere al comando qualcosa del tipo "-n 
news.tin.it
"
e il programma posterebbe il risultato dell'analisi su questo Ng
(attravero il nntp server specificato, sul quale l'utente deve
avere il permesso di postare).
Cosi' basterebbe dire alla gente: scarica il programma e batti
questo comando... e potremmo vedere e controllare il risultato :-)
Ma mi sembra un metodo troppo invasivo e brutale...

Ma mi sembra un metodo troppo invasivo e brutale...
mmm, sě, forse č piů sicuro il copia&incolla, metti che a uno gli
scappa x sbaglio un batch ;-)
-- 
Paradoxally,
Jan AxHell

 di comprimerli, ci prende quasi sempre.
A me capita invece che non ci becchi DGIndex (che è dato come software
insieme a Gordian Knot). Capita spesso che lui dica che il flusso è
interlacciato, poi se scorri frame per frame ti accorgi che così non
è...
-- 
Saluti, Kap - 
www.lordkap.it
 - ¥'s Fan #01 - 
www.pianetalibri.com
 - VCC
Nessun uomo può criticare o condannare un altro uomo, perché di sicuro
nessun uomo ne conosce veramente un altro. - Sir Thomas Browne

è...
Sì, è vero. La cosa strana è che sia AutoGK che GK lo usano, ma AutoGK
usa sempre la versione più recente. Io ho provato a creare progetti
con quella, ma se li passo a GK, non li apre. Ora non posso giurare
sulla quantità di volte che AutoGK ci azzecca, ma in generale, avendo
fatto tanti divx, ho la sensazione che sia più preciso. Però non ho
idea del tipo di test che fa, di solito lavora per una decina di
minuti e poi dichiara nel log che tipo di filmato è, e si imposta di
conseguenza.
-- 
Paradoxally,
Jan AxHell