View Full Version : AVInaptic. Free utility which analyzes multimedia files (Linux and Windows)
buzzqw
16th September 2007, 13:23
update the mirror http://www.64k.it/andres/a/avinaptic-20070916-full.zip
thanks Frank!
BHH
Schrade
18th September 2007, 01:38
DRF = "Detail Removal Factor" or "quantizer".
Thanks. When I googled it, I noticed one of the links is right back to this thread earlier on in it. I suck :(
Thanks for answering though. It was just an abbreviation I had not seen in other programs before.
So the higher the DRF the more compression/blurriness the video has?
fsinapsi
18th September 2007, 08:30
So the higher the DRF the more compression/blurriness the video has?
yes. The quantizer is involved in the quantization of "DCT coefficients".
A typical effect of an excessive quantization is blockiness.
microcosmos
20th September 2007, 21:56
I think i found a little error:
[ Audio track ]
Codec ID: A_AAC (AAC Low complexity)
Channels: 1
Sample rate: 24000 Hz
Output sample rate: 48000 Hz
this should be HE-AAC with parametric stereo not "Low complexity"
foxyshadis
20th September 2007, 22:33
HE, PS, and PNS are all part of LC, technically, but they aren't signaled - the only way to detect them is to decode the beginning of the stream, so it's pretty tricky without doing that.
fsinapsi
21st September 2007, 06:34
I think i found a little error:
[ Audio track ]
Codec ID: A_AAC (AAC Low complexity)
Channels: 1
Sample rate: 24000 Hz
Output sample rate: 48000 Hz
this should be HE-AAC with parametric stereo not "Low complexity"
I used the definition of object type I found in the following page:
http://wiki.multimedia.cx/index.php?title=Understanding_AAC
There is a variety of methods for packaging AAC data from transport. 2 methods used in packaging raw streams are to use ADTS and ADIF headers. The libfaad knowledge base also makes reference to LATM and LOAS packaging.
Much AAC data is encapsulated in MPEG-4 files which is an extension of the QuickTime container format. the MPEG-4 file will have an audio 'trak' atom which will contain a 'stsd' description atom which will contain an 'mp4a' atom which will contain an 'esds' atom. Part of the esds atom contains the setup data for associated AAC stream. (TODO: need to document the precise format and method for obtaining the setup data.) This setup data is generally 2 bytes. This setup data has the following layout:
5 bits: object type
4 bits: frequency index
if (frequency index == 15) 24 bits: frequency
4 bits: channel configuration
1 bit: frame length flag
1 bit: dependsOnCoreCoder
1 bit: extensionFlag
These are the possible object types:
0: NULL
1: AAC Main
2: AAC Low complexity
3: AAC SSR
4: AAC Long term prediction
5: AAC High efficiency
6: Scalable
7: TwinVQ
8: CELP
9: HVXC
10: Reserved
11: Reserved
12: TTSI
13: Main synthetic
14: Wavetable synthesis
15: General MIDI
16: Algorithmic Synthesis and Audio FX
17: AAC Low complexity with error recovery
18: Reserved
19: AAC Long term prediction with error recovery
20: AAC scalable with error recovery
21: TwinVQ with error recovery
22: BSAC with error recovery
23: AAC LD with error recovery
24: CELP with error recovery
25: HXVC with error recovery
26: HILN with error recovery
27: Parametric with error recovery
28: Reserved
29: Reserved
30: Reserved
31: Reserved
So, if the value of the field object type is 2, then avinaptic reports the stream as "AAC Low complexity"; if that value is 5, then avinaptic reports the stream as "AAC High efficiency".
If my source of information is wrong, please tell me where can I find the right infos.
P.S.
Maybe your track should be reported as "LC/SBR" (Spectral Band Replication)... ?
Codec ID: A_AAC (AAC Low complexity)
Channels: 1
Sample rate: 24000 Hz
Output sample rate: 48000 Hz
wata
22nd September 2007, 03:39
can't run the program
it popup this
http://img245.imageshack.us/img245/5122/snap1rt8.jpg
don't know what it mean
salehin
22nd September 2007, 06:42
Great tool...thanks a lot :)
fsinapsi
22nd September 2007, 07:27
can't run the program
[...]
don't know what it mean
the program can't create the file ".../avinaptic.db": (sqlite3-open path)
where path (in the Windows version) is defined by (change-extension (argv 0) path "db")...
(argv 0) is the first argument the program receives (it should be the path of the program, i.e. something like C:/avinaptic/avinaptic.exe), so path should be something like C:/avinaptic/avinaptic.db
wata
23rd September 2007, 11:12
so how to run the program?
i download avinaptic-20070916-full.zip (there is no avinaptic.db inside the zip)
unpack it into directory c:\avinaptic
doubleclick avinaptic.exe
and get this dialog everytime
http://img245.imageshack.us/img245/5122/snap1rt8.jpg
fsinapsi
23rd September 2007, 11:52
so how to run the program?
i download avinaptic-20070916-full.zip (there is no avinaptic.db inside the zip)
unpack it into directory c:\avinaptic
doubleclick avinaptic.exe
and get this dialog everytime
I'm sorry but I'm not a Windows user and I have never used Windows. I hope some Windows user can tell you how he/she succeeded in running the program
Brother John
23rd September 2007, 12:09
@wata
Which version of Windows are you running? Make sure you have write permission for the avinaptic folder.
nicco
23rd September 2007, 18:08
wow really nice tool!!
Ty!
talen9
23rd September 2007, 20:33
@wata:
Download sqlite3-dll.zip (http://fsinapsi.altervista.org/code/dll/sqlite3-dll.zip) from fsinapsi's web site, then unzip the DLL into your "windows\system32" path, it should do the trick :)
@fsinapsi: nice job :thanks:
wata
24th September 2007, 05:41
sqlite3.dll is include in avinaptic-20070916-full.zip i put it in system32 same problem
i am running WinXP SP2 32-bits
fsinapsi
24th September 2007, 07:29
i am running WinXP SP2 32-bits
please donwload this file (http://rapidshare.com/files/57854372/argv0.zip.html), unpack it into avinaptic directory and double click on it.
You should see a little window like this:
http://img521.imageshack.us/img521/7675/argv0pz8.png
I'd like to know the message in your window
wata
25th September 2007, 04:15
sorry can't download the file from rapidshare, my isp using transparent proxy
buzzqw
25th September 2007, 07:06
@wata
mirrored here http://www.64k.it/andres/data/a/argv0.zip
BHH
wata
26th September 2007, 06:46
thanks
got same dialog window
http://img219.imageshack.us/img219/3/snap1aji1.jpg
fsinapsi
26th September 2007, 07:20
thanks
got same dialog window
http://img219.imageshack.us/img219/3/snap1aji1.jpg
this is very strange...
Please create the following directories:
C:\cygwin
C:\cygwin\Tmp
Then doubleclick on avinaptic, and tell me if you get the same dialog window
bkman
26th September 2007, 14:31
Hi. I'd like to see a full bitrate distribution graph (not just partial average).
Any plans for this?
Very nice work so far. Thanks.
Mtz
26th September 2007, 15:19
I see that your program can extract DMF subtitles in a raw stream. Can this raw be converted to anything? If not, why is the option to demux them?
Will be nice a drag and drop possibility.
enjoy,
Mtz
fsinapsi
26th September 2007, 16:29
Hi. I'd like to see a full bitrate distribution graph (not just partial average).
do you mean a graph like DRF Analyzer "DRF & Frame Size Graphic" (http://www.geocities.com/analyzerdrf/index.html)?
http://www.geocities.com/analyzerdrf/DRFAnalyserGRAF090.png
What is its usefulness?
The "partial average bitrate" graph allows to easily say if a movie is CBR (i.e. it was coded in a single pass - target bitrate).
For example, here is a typical graph of a VBR encoding:
http://img213.imageshack.us/img213/2354/graphvbrau0.png
and here is a typical CBR (1-pass) encoding:
http://img213.imageshack.us/img213/466/graphcbrwa1.png
Any plans for this?
Maybe... but I am not sure...
Rather, I'd like to implement a "video buffering verifier" (VBV is an algorithm for checking a bitstream with its delivery rate function to verify that the amount of rate buffer memory required in a decoder is less than the stated buffer size, see ISO/IEC 14496-2 Annex D).
I'm reading this paper (http://researchweb.watson.ibm.com/journal/rd/434/westerink.pdf): in section 2 - "Two-pass encoding principle" a simple decoder buffer model for VBR is described...
fsinapsi
26th September 2007, 16:33
I see that your program can extract DMF subtitles in a raw stream. Can this raw be converted to anything? If not, why is the option to demux them?
I haven't the specification of that format (I'm afraid it's not an open format, but if I'm wrong please tell me where can I find the needed infos), so the program can only extract the raw block, like any other stream. I was just curious about that...
Will be nice a drag and drop possibility.
This is not possible: I don't use Windows.
akupenguin
26th September 2007, 16:41
say if a movie is CBR (i.e. it was coded in a single pass - target bitrate).
Not the same. I'd bet that x264's single pass target bitrate registers as VBR on your scale.
fsinapsi
26th September 2007, 16:47
Not the same. I'd bet that x264's single pass target bitrate registers as VBR on your scale.
If so, then x264's single pass target bitrate is not CBR, but VBR :)
Other codecs, like DivX and XviD, single pass target bitrate generate CBR streams...
bkman
26th September 2007, 18:17
do you mean a graph like DRF Analyzer "DRF & Frame Size Graphic" (http://www.geocities.com/analyzerdrf/index.html)?
http://www.geocities.com/analyzerdrf/DRFAnalyserGRAF090.png
What is its usefulness?
Yes the frame size graph is basically what I had in mind. The usefulness would that the user could see which parts of the movie take up larger parts of the bit distribution; ie. which parts are more and less complex.
D-Skott
26th September 2007, 18:18
Great program, thank you!
foxyshadis
26th September 2007, 18:43
Generally CBR is used to refer to rate controls with averaging periods of a second or less (.6s is common, since it's the buffer period for dvd/hddvd/bluray), but your graph can't show anything that small. Divx uses, what, a minute or more? It can fluctuate quite a bit in that time and still appear smooth to within a pixel or two shortly into the graph. A running average hides a lot of interesting information.
An instantaneous graph would show you how much it actually fluctuates, true CBR would still be flat, constrained ABR would oscillate around the average, unconstrained and VBR would just go off and do their thing (the former usually with a sharp up or down spike near the end). Most importantly, it gives you a view into peak bitrate areas, which are at least as important for playback and streaming than average bitrate.
fsinapsi
26th September 2007, 19:37
A running average hides a lot of interesting information.
[...]
An instantaneous graph would show you how much it actually fluctuates, true CBR would still be flat, constrained ABR would oscillate around the average, unconstrained and VBR would just go off and do their thing (the former usually with a sharp up or down spike near the end). Most importantly, it gives you a view into peak bitrate areas, which are at least as important for playback and streaming than average bitrate.
clearly, the goal of the "partial average bitrate" is not that
fsinapsi
27th September 2007, 15:42
Yes the frame size graph is basically what I had in mind. The usefulness would that the user could see which parts of the movie take up larger parts of the bit distribution; ie. which parts are more and less complex.
I have added a "frame size graph", and here is a screenshot:
http://img232.imageshack.us/img232/8097/newgraphop0.png
The dashed red line is the max frame size (59954); the green line is the average frame size (4832).
The difference is high... any hints?
I have not finished yet. I'll release a new version as soon as I have time to get it working again...
olnima
28th September 2007, 21:27
Just want to admit: This is really a very nice tool !!!
Keep up that great work,
Olnima
bkman
28th September 2007, 23:17
I have added a "frame size graph", and here is a screenshot:
The dashed red line is the max frame size (116000); the yellow line is the average frame size (8597).
The difference is high... any hints?
I have not finished yet. I'll release a new version as soon as I have time to get it working again...
Wow, nice work. As for the difference.. maybe allow the user to set the averaging resolution of the graph. As in each point will be the average of N frames around it.
fsinapsi
29th September 2007, 11:53
maybe allow the user to set the averaging resolution of the graph. As in each point will be the average of N frames around it.
good idea... thanks :) .
I'll do so...
I'll add a new "spin button" to the window, near the "Goto frame" (default value = min value = 1, max = ??? 100?)
P.S.
In the next version, frames will be displayed in "coding order"...
SeeMoreDigital
29th September 2007, 12:21
good idea... thanks :)P.S.
In the next version, frames will be displayed in "coding order"...A nice touch :)
fsinapsi
29th September 2007, 14:14
maybe allow the user to set the averaging resolution of the graph. As in each point will be the average of N frames around it.
There are two options (at least):
size(i) is replaced with (size(i)+size(i+1)+...+size(i+n-1))/n;
size(i) is replaced with (size(i-n+1)+...+size(i-1)+size(i)+size(i+1)+...+size(i+n-1))/(2*n-1)
where n = value of "spin button avg int" (see the picture), n >= 1.
Which option do you prefer?
bkman
29th September 2007, 15:51
I think the second method would be better, but probably harder to implement. It's up to you.
fsinapsi
29th September 2007, 20:40
I think the second method would be better, but probably harder to implement. It's up to you.
I have chosen the second one:
size(i) is replaced with (size(i-n)+...+size(i-1)+size(i)+size(i+1)+...+size(i+n))/(2*n+1)
where n = value of "spin button avg int" (see the picture), n >= 0.
fsinapsi
29th September 2007, 20:45
update 29/09/2007
http://fsinapsi.altervista.org/code/avinaptic/index.html
"ID3 tags";
DRF and frame size graphs
If there is a bug (it's possible), I'll fix it in the next version...
Hint: click over the graphs (both left and right buttons)
buzzqw
29th September 2007, 21:38
update mirrot http://www.64k.it/andres/data/a/avinaptic-20070929-full.zip
Thank Frank!
BHH
wata
30th September 2007, 05:08
this is very strange...
Please create the following directories:
C:\cygwin
C:\cygwin\Tmp
Then doubleclick on avinaptic, and tell me if you get the same dialog window
i do that, it still the same dialog
fsinapsi
1st October 2007, 16:18
i do that, it still the same dialog
I'll try to fix this problem in the next version
CruNcher
3rd October 2007, 03:47
clicking on DRF Graph in the menu but nothing happens ?
in the bitrate graph also the numbers of time and bitrate seem to be missing ?
fsinapsi
3rd October 2007, 07:37
clicking on DRF Graph in the menu but nothing happens ?
click on "DRF Analysis", then "DRF Graph".
foxyshadis
3rd October 2007, 08:32
Thanks, that makes it very quick and easy to see bitrate spikes now!
CruNcher
3rd October 2007, 12:20
click on "DRF Analysis", then "DRF Graph".
i tried with x264 and Apple created files for those it's working but it doesn't work for .mp4 created with Nero Recode for those after the analyzing the drf graph doesn't show up.
fsinapsi
3rd October 2007, 12:58
it doesn't work for .mp4 created with Nero Recode for those after the analyzing the drf graph doesn't show up.
please upload a short .mp4 created with nero recode, and I'll try to fix the problem
LoRd_MuldeR
3rd October 2007, 14:05
fsinapsi, would it be possible to update to a recent version of the GTK+ lib? I don't care much about the archaic look, but the file open dialog can be horrible. Especially when you have a folder with 1000+ video files ;)
http://img103.imageshack.us/img103/4559/fileavinapticopennn9.th.png (http://img103.imageshack.us/my.php?image=fileavinapticopennn9.png) http://img521.imageshack.us/img521/4149/fileavinapticopen2xa0.th.png (http://img521.imageshack.us/my.php?image=fileavinapticopen2xa0.png)
fsinapsi
3rd October 2007, 16:19
fsinapsi, would it be possible to update to a recent version of the GTK+ lib?
I'll take into account your request. However Gtk2 is huge (I think Gtk1 is huge, too).
Do you like fltk (http://www.fltk.org)?
Do you know other open source toolkits?
Here you can see the "File chooser" of fltk :)
http://www.fltk.org/doc-1.1/Fl_File_Chooser.html
LoRd_MuldeR
3rd October 2007, 16:29
I'll take into account your request. However Gtk2 is huge (I think Gtk1 is huge, too).
Nice :)
If the size is the problem, you could offer the GTK+ runtime libs as a separate download:
http://gimp-win.sourceforge.net/stable.html
Nevertheless I think ~4 MB (uncompressed) is not too big in times of 500 MB HDD's and Broadband internet....
Do you know other open source toolkits?
QT4 :cool:
http://en.wikipedia.org/wiki/Qt_(toolkit)
And there also is WxWdigets:
http://en.wikipedia.org/wiki/WxWidgets
Do you like fltk (http://www.fltk.org)?
Here you can see the "File chooser" of fltk :)
http://www.fltk.org/doc-1.1/Fl_File_Chooser.html
Never heard about FLTK so far, but could be worth a try.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.