Log in

View Full Version : Is there any GSpot-like tool to analyze a MP4 file?


numaios
1st September 2005, 02:50
Hello!

I'd like to know if there is any tool (like GSpot does with AVIs) that could analyze MP4 files and tell which codec was used to encode it, if it's ASP or AVC, if it has B-frames or not, the kind of AAC used and all that.

Or maybe FourCCs don't exist in MP4 container...

And is there any other tool capable to do the same with Matroska files?

clong
1st September 2005, 04:42
mp4box -info video.mp4

numaios
1st September 2005, 06:47
I didn't find that option using YAMB as GUI. Do I have to use it with command lines? Because I don't know how to run a command line program withou a GUI.

I've tried to do: Start-->Run-->MP4Box--> and adding after the exe's path "-info "the-path-of-the-mp4.mp4"--> OK.

And a DOS window appears and disappears suddenly (but I didn't get any info...) :(

EDIT:
-OK, using YAMB, in the "Extract" tab, I've seen the info, but I've still got some questions:
-Is it possible to run MP4Box without a GUI and seeing the info?
-I got this info:
* Movie Info *
Timescale 600 - Duration 00:02:03.040
Fragmented File no - 1 track(s)
File Brand avc1 - version 0

File has root IOD
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: AVC/H264 Profile (0x15)
Audio PL: No audio capability required (0xff)
No streams included in root OD

Track # 1 Info - TrackID 1 - TimeScale 25 - Duration 00:02:03.040
Media Info: Language "und" - Type "vide" - Sub Type "avc1" - 3076 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 720 x 304
Self-synchronized
But it doesn't say anything about which codec has been used, it only says AVC/H264 (without specifying x264, NeroDigital AVC...)
- Then I guess FourCCs don't exist in the MP4 container...
- Where can I get the info about B-frames in a MP4 file?

Drachir
1st September 2005, 08:51
You will get the information about the used codec from the ObjectTypeIndication. There is no info about the used implementation stored in the container. For some streams you will get this info with mpeg4vol from http://mpeg4ip.sf.net . The indicated profile level may be a hint if b-frames are used or not. If set right.

Value ObjectTypeIndication Description
0x00 Forbidden
0x01 Systems ISO/IEC 14496-1
0x02 Systems ISO/IEC 14496-1
0x03-0x1F reserved for ISO use
0x20 Visual ISO/IEC 14496-2
0x21 Visual ISO/IEC 14496-10
0x22 Visual ISO/IEC 14496-10 Parameter Sets
0x23-0x3F reserved for ISO use
0x40 Audio ISO/IEC 14496-3
0x41-0x5F reserved for ISO use
0x60 Visual ISO/IEC 13818-2 Simple Profile
0x61 Visual ISO/IEC 13818-2 Main Profile
0x62 Visual ISO/IEC 13818-2 SNR Profile
0x63 Visual ISO/IEC 13818-2 Spatial Profile
0x64 Visual ISO/IEC 13818-2 High Profile
0x65 Visual ISO/IEC 13818-2 422 Profile
0x66 Audio ISO/IEC 13818-7 Main Profile
0x67 Audio ISO/IEC 13818-7 LowComplexity Profile
0x68 Audio ISO/IEC 13818-7 Scaleable Sampling Rate Profile
0x69 Audio ISO/IEC 13818-3
0x6A Visual ISO/IEC 11172-2
0x6B Audio ISO/IEC 11172-3
0x6C Visual ISO/IEC 10918-1
0x6D - 0xBF reserved for ISO use
0xC0 - 0xFE user private
0xFF No object type specified

IF HE-AAC is signaled MP4Box will show you this info.

SeeMoreDigital
1st September 2005, 12:53
I must admit I would love to see an "MPEG Modifier" type application for MP4 contained files!


Cheers

bond
1st September 2005, 21:35
mp4info from mpeg4ip also shows you the type of content, asp, avc, aac aso plus the profiles/levels, the videosize, length, bitrate, framerate

mp4box has been mentioned already (of course you can also get the same info displayed as in yamb via cmdl)

with mpeg4vol you can read out the used codec for asp from asp with popular codecs (divx, xvid, nero, 3ivx, ffmpeg...)
i actually described how to do it in the mp4 faq

you can also identify nerodigital and x264 avc streams when extracting them to raw and than run the h264_parse tool over it

lots of complicated things, after all i think all you need is only mp4info or mp4box

numaios
3rd September 2005, 09:11
Thanks for your answers :)

I saw this in the thread called "HowTo find out which codecs where used to create a MP4 file":
this info can be read out by the nice MPEG4VOL tool, which is part of the MPEG4IP toolset (thanks to DeXT, you can download it here. beaware the version on rarewares is outdated and will not work correctly!).
mpeg4vol is a commandline tool and therefore you have to feed it with the following commandline (copy it to a .txt file, place it in the same folder as mpeg4vol.exe, rename the .txt to .bat and execute it):
I did it but it's impossible to read the info, because I haven't got enough time. Is there any way to "pause" the DOS window? (I have version 1.1, because it's the only one I found as binary).
______________________________________________________________
you can also identify nerodigital and x264 avc streams when extracting them to raw and than run the h264_parse tool over it
Is h264_parse in the MPEG4IP tool kit? EDIT: At least it isn't in v.1.1.

Using MP4Box via YAMB I've obtained this info of other MP4 file (encoded with Quicktime Pro, would it be possible to know?)

* Movie Info *
Timescale 30000 - Duration 00:02:30.283
Fragmented File no - 2 track(s)
File Brand mp42 - version 1

File has no MPEG4 IOD/OD

Track # 1 Info - TrackID 1 - TimeScale 44100 - Duration 00:02:30.302
Media Info: Language "eng" - Type "soun" - Sub Type "mp4a" - 6473 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 44100
Self-synchronized

Track # 2 Info - TrackID 2 - TimeScale 30000 - Duration 00:02:30.300
Media Info: Language "eng" - Type "vide" - Sub Type "avc1" - 4509 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 320 x 240
Synchronized on stream 1
So, 0x21 means MPEG-4 part 10 (h.264/AVC), but it doesn't specify the profile used. By the way, what does "avc1" mean?).
And 0x40 means AAC (but this time it specifies Low-Complexity profile)
If I want to know more info about the video stream I should extract it to raw MPEG-4 data and analyze it with h264_parser, is that correct?

Drachir
3rd September 2005, 11:05
At Type MP4Box will show you if the the streamType is set to 4 (vide) or 5 (soun). (There are streamType for BIFS/OD too)

At Sub Type MP4Box will show you the Sample Description Atom/Box (stbl). Possible values are mp4v, mp4a , mp4s, avc1 or avcC if I am right. (There are some values for hint Tracks too)
Avc1 is used with AVC/H.264.

Sample Mpeg 1 layer 3 in mp4:
Media Info: Language "und" - Type "soun" - Sub Type "mp4a" - 295737 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x6b

Sample AAC in mp4:
Media Info: Language "und" - Type "soun" - Sub Type "mp4a" - 256323 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40

bond
3rd September 2005, 13:22
I did it but it's impossible to read the info, because I haven't got enough time. Is there any way to "pause" the DOS window? (I have version 1.1, because it's the only one I found as binary).
you can add a "> log.txt" at the end of your commandline to make it write the output to a txt file

Is h264_parse in the MPEG4IP tool kit? it is

So, 0x21 means MPEG-4 part 10 (h.264/AVC), but it doesn't specify the profile used. By the way, what does "avc1" mean?).
And 0x40 means AAC (but this time it specifies Low-Complexity profile)mp4info from mpeg4ip will tell you the profile/level name used in a readable format

If I want to know more info about the video stream I should extract it to raw MPEG-4 data and analyze it with h264_parser, is that correct? yes, it can show you nearly all features used in an avc stream, like cabac, loop, weighted predicition aso, but you need to know what all the flags mean ;)

numaios
3rd September 2005, 18:05
Thanks again, Drachir and Bond :)
Is h264_parse in the MPEG4IP tool kit?
it is
Maybe it is in version 1.3, but it isn't in 1.1. I've downloaded 1.3 from sourceforge but I can't find the exe. Do you know where can I found it compiled already?

yes, it can show you nearly all features used in an avc stream, like cabac, loop, weighted predicition aso, but you need to know what all the flags mean
- And using that info is it possible to deduce if x264 or Nero Digital AVC were used? Because both of them can use CABAC, loop, weighted prediction..., so would I find any difference?
- By flags you mean those codes like 0x40, 0x21? Is there any list with their translation?

bond
3rd September 2005, 19:16
Thanks again, Drachir and Bond :)

Maybe it is in version 1.3, but it isn't in 1.1. I've downloaded 1.3 from sourceforge but I can't find the exe. Do you know where can I found it compiled already?search for celtic_druids site

- And using that info is it possible to deduce if x264 or Nero Digital AVC were used? Because both of them can use CABAC, loop, weighted prediction..., so would I find any difference?both x264 and nero store their name/version number in the userdata sei which h264_parse can display

- By flags you mean those codes like 0x40, 0x21? Is there any list with their translation? no i dont mean those. the list of the flags meaning is available in the specs, but most are selfexplanatory

SeeMoreDigital
3rd September 2005, 19:36
Somebody please make a reading tool with GUI?

numaios
3rd September 2005, 20:12
the list of the flags meaning is available in the specs, but most are selfexplanatory
You mean that pdf of 284 pages? Do you know the exact page? Because I don't know how to start...

Somebody please make a reading tool with GUI?
Oh, that would be great!

bond
3rd September 2005, 20:17
You mean that pdf of 284 pages? Do you know the exact page? Because I don't know how to start...the adobe reader offers a search function

numaios
3rd September 2005, 21:40
Ok, but are we talking about the same document?

IYG
11th March 2008, 07:38
So do we have that kind of program now?

setarip_old
11th March 2008, 09:48
@numaios

Hi!if there is any tool (like GSpot does with AVIs) that could analyze MP4 files and tell which codec was used to encode it, if it's ASP or AVC, if it has B-frames or not, the kind of AAC used and all that.Load your video into VLC and see if (From the "View" dropdown menu) the "Stream and Media Info" "Advanced Information" is what you're looking for...

bond
11th March 2008, 19:50
:search::readfaq: