Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > New and alternative a/v containers

Reply
 
Thread Tools Search this Thread Display Modes
Old 14th June 2004, 12:53   #1  |  Link
bond
Registered User
 
Join Date: Nov 2001
Posts: 9,779
HowTo find out which codecs where used to create a MP4 file

as in MP4 all streams are "equal", no matter what codec was used to create them, its not that easy to find out which codec was used for the creation of a specific MP4 file, but its possible:

MPEG-4 ASP Video:

in AVI a so called FourCC System is used to describe the stored content (the fourcc normally tells the used encoder (unless someone changed it) and allows only specifc decoders to connect to a specific fourcc (DivX5 decoder by default connects to the DIVX/DX50 fourcc, XviD decoder to the XVID fourcc aso...))
in MP4 for storing MPEG-4 Video nothing comparable to a FourCC exists! why should it exist? all streams are MPEG-4 compliant anyways (DivX5 = MPEG-4 = XviD) so why mark them as "DIVX", "XVID" aso...? for example are MP3 audio files marked using a fourcc? allowing only specific MP3 decoders to connect to them? wouldnt make much sense, right?
therefore in MP4 all MPEG-4 (A)SP video streams are equally marked as "mp4v"

now how to find out what encoder was used?

most mpeg-4 asp encoders mark in the video bitstream (not in the container), in the so called "user data"/"bitstream description", that the stream was encoded by them

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):
Code:
mpeg4vol.exe "c:\path to\file.mp4"
it will now display a whole bunch of infos about the video stream and at the end under "user data" hopefully one of the following known descriptions indicating the used encoder (they dont have to be 100% the same):
Code:
XviD: 			XviD0029 	("DivX999b000p" indicates packed bitstream, "C" cartoon mode)
DivX5: 			DivX503b1031 	("p" indicates packed bitstream has been used)
ffmpeg/ffvfw/ffdshow: 	FFmpeg0.4.8b4684
3ivx: 			3ivx@—
NeroDigital: 		em4v 4.1.4.14
Quicktime/Sorenson/DivX4: these MPEG-4 encoders dont seem to set a bitstream info
as alternative to mpeg4vol you can also extract the video stream to AVI with your favourite tool and than analyse it with the nice DRF Analyser tool via Analyse DivX -> View Report
dont look at "FourCC" cause it most likely will not be the correct one, have a look at "Codec", which shows the bitstream description on the bitstream level (DRF Analyser simply displays the used FourCC again (like DIVX, which doesnt mean that DivX5 was used of course) if no bitstream info has been set (like with Quicktime/Sorenson/DivX4 streams))


MPEG-4 AAC Audio:

to my knowledge the current AAC encoders dont set an user data comparable to the video codecs, or at least no tool exists to read it out, but its possible already to identify nero and faac encoded streams:
open up the MP4 containing the nero/faac aac track in the foobar audio player, right click -> properties -> technical info
on files encoded with newer versions of faac/nero there will be displayed which version was used to encode the stream. with files outputted by other encoders nothing will be displayed

this is not a good solution, i know, and it also seems that this info gets lost if you export to .aac and transmux to another .mp4


MP3 Audio

as its the case for AAC audio there also is no 100% correct method to get to know what codec was used to encode a MP3 stream, but there is a smart tool existing which is able to detect the encoder most of the time correctly: EncSpot
it is really a must have tool for every MP3 freak
__________________
Between the weak and the strong one it is the freedom which oppresses and the law that liberates (Jean Jacques Rousseau)
I know, that I know nothing (Socrates)

MPEG-4 ASP FAQ | AVC/H.264 FAQ | AAC FAQ | MP4 FAQ | MP4Menu stores DVD Menus in MP4 (guide)
Ogg Theora | Ogg Vorbis
use WM9 today and get Micro$oft controlling the A/V market tomorrow for free

Last edited by bond; 26th June 2004 at 00:24.
bond is offline   Reply With Quote
Old 15th June 2004, 10:40   #2  |  Link
hans-jürgen
Registered User
 
hans-jürgen's Avatar
 
Join Date: May 2003
Location: Hamburg, Germany
Posts: 219
Re: HowTo find out which codecs where used to create a MP4 file

Quote:
Originally posted by bond
MPEG-4 AAC Audio:
with files outputted by other encoders nothing will be displayed
FAAC is identified in foobar2000's file properties since the first versions of foo_faac.dll and a little bit later also for faac.exe. This only works with the MP4 container though, so AAC ADTS files do not carry this information.
__________________
ZZee ya, Hans-Jürgen

BLUEZZ BASTARDZZ on Myspace, YouTube and Last.fm
INDIGO ROCKS on Myspace and Last.fm
hans-jürgen is offline   Reply With Quote
Old 15th June 2004, 11:24   #3  |  Link
bond
Registered User
 
Join Date: Nov 2001
Posts: 9,779
Re: Re: HowTo find out which codecs where used to create a MP4 file

Quote:
Originally posted by hans-jürgen
FAAC is identified in foobar2000's file properties since the first versions of foo_faac.dll and a little bit later also for faac.exe. This only works with the MP4 container though, so AAC ADTS files do not carry this information. [/B]
is this the same method for storing the info as used by nero?
how is it stored? itunes tags?
__________________
Between the weak and the strong one it is the freedom which oppresses and the law that liberates (Jean Jacques Rousseau)
I know, that I know nothing (Socrates)

MPEG-4 ASP FAQ | AVC/H.264 FAQ | AAC FAQ | MP4 FAQ | MP4Menu stores DVD Menus in MP4 (guide)
Ogg Theora | Ogg Vorbis
use WM9 today and get Micro$oft controlling the A/V market tomorrow for free
bond is offline   Reply With Quote
Old 15th June 2004, 14:19   #4  |  Link
SeeMoreDigital
Life looks better in HD
 
SeeMoreDigital's Avatar
 
Join Date: Jun 2003
Location: Notts, UK
Posts: 11,177
Yes,

dBpowerAMP seems to be able to identify the many different types of AAC encoder used and sometimes the version type!





It's not perfect though. And ofcourse the detailed information is lost as soon as you demux content out and then back into the container.


Cheers

EDIT: Links to images re-established
__________________
| I've been testing hardware media playback devices and software A/V encoders and decoders since 2001 | My Network Layout & A/V Gear |

Last edited by SeeMoreDigital; 18th February 2005 at 10:57.
SeeMoreDigital is offline   Reply With Quote
Old 15th June 2004, 17:11   #5  |  Link
hans-jürgen
Registered User
 
hans-jürgen's Avatar
 
Join Date: May 2003
Location: Hamburg, Germany
Posts: 219
Re: Re: Re: HowTo find out which codecs where used to create a MP4 file

Quote:
Originally posted by bond
is this the same method for storing the info as used by nero?
Probably, because Case developed this first for FAAC, as far as I remember.

Quote:
how is it stored? itunes tags?
No tags, it's probably using an atom of the MP4 container, but I don't know which one.

@SeeMoreDigital: This seems to be from dBpowerAMP...
__________________
ZZee ya, Hans-Jürgen

BLUEZZ BASTARDZZ on Myspace, YouTube and Last.fm
INDIGO ROCKS on Myspace and Last.fm
hans-jürgen is offline   Reply With Quote
Old 15th June 2004, 18:36   #6  |  Link
SeeMoreDigital
Life looks better in HD
 
SeeMoreDigital's Avatar
 
Join Date: Jun 2003
Location: Notts, UK
Posts: 11,177
Quote:
Originally posted by hans-jürgen
SeeMoreDigital: This seems to be from dBpowerAMP...
You're absolutely right... my mistake I meant dBpowerAMP.

Previous post altered accordingly...


Cheers
__________________
| I've been testing hardware media playback devices and software A/V encoders and decoders since 2001 | My Network Layout & A/V Gear |
SeeMoreDigital is offline   Reply With Quote
Old 15th June 2004, 19:20   #7  |  Link
bond
Registered User
 
Join Date: Nov 2001
Posts: 9,779
Quote:
Originally posted by hans-jürgen
No tags, it's probably using an atom of the MP4 container, but I don't know which one.
hm interesting
its surely stored in udta atom, as its lost when extracting to .aac and remuxing to .mp4
__________________
Between the weak and the strong one it is the freedom which oppresses and the law that liberates (Jean Jacques Rousseau)
I know, that I know nothing (Socrates)

MPEG-4 ASP FAQ | AVC/H.264 FAQ | AAC FAQ | MP4 FAQ | MP4Menu stores DVD Menus in MP4 (guide)
Ogg Theora | Ogg Vorbis
use WM9 today and get Micro$oft controlling the A/V market tomorrow for free
bond is offline   Reply With Quote
Old 15th June 2004, 20:33   #8  |  Link
SeeMoreDigital
Life looks better in HD
 
SeeMoreDigital's Avatar
 
Join Date: Jun 2003
Location: Notts, UK
Posts: 11,177
Quote:
Originally posted by bond
hm interesting
its surely stored in udta atom, as its lost when extracting to .aac or and remuxing to .mp4
What is kinda cool is that when muxing .aac (or .mp3) streams into the .MP4 container, tools like dBpowerAMP and Foobar200 are still able to list basic information. Including the muxing tool.

Here are a couple of examples from Foobar2000: -






Cheers


EDIT: Link to image re-established
__________________
| I've been testing hardware media playback devices and software A/V encoders and decoders since 2001 | My Network Layout & A/V Gear |

Last edited by SeeMoreDigital; 21st April 2005 at 16:30.
SeeMoreDigital is offline   Reply With Quote
Old 18th February 2005, 10:13   #9  |  Link
Elias
MPEG-4 Crazy Lunatic!
 
Elias's Avatar
 
Join Date: Dec 2004
Posts: 1,096
Re: HowTo find out which codecs where used to create a MP4 file

Quote:
Originally posted by bond
in MP4 for storing MPEG-4 Video nothing comparable to a FourCC exists! why should it exist? all streams are MPEG-4 compliant anyways (DivX5 = MPEG-4 = XviD) so why mark them as "DIVX", "XVID" aso...? for example are MP3 audio files marked using a fourcc? allowing only specific MP3 decoders to connect to them? wouldnt make much sense, right?
therefore in MP4 all MPEG-4 (A)SP video streams are equally marked as "mp4v"
Actually, it makes quite sense. For example, XviD has the general consensus of being somewhat higher quality than DivX5/3ivX/ffdshow as an MPEG-4 ASP codec. So, if the fourcc code was stored in mp4, we would at least know if it's a little higher quality. Then again, at high bitrates with any MPEG-4 codec, it's all the same anyway
__________________
Elias is offline   Reply With Quote
Old 18th February 2005, 12:09   #10  |  Link
stephanV
gone
 
Join Date: Apr 2004
Posts: 1,709
?

How does a FourCC say anything about quality? With the right/wrong settings, you can virtually let any codec look better than another. Bitrate being the easiest of settings to influence that. Not to mention that a FCC is way to easy to change to count as any sort of reliable information.
stephanV is offline   Reply With Quote
Old 18th February 2005, 12:11   #11  |  Link
Elias
MPEG-4 Crazy Lunatic!
 
Elias's Avatar
 
Join Date: Dec 2004
Posts: 1,096
Quote:
Originally posted by stephanV
?

How does a FourCC code say anything about quality? With the right/wrong settings, you can virtually let any codec look better than another. Bitrate being the easiest of settings to influence that.
True, but with the exact same settings for all MPEG-4 compliant ASP codecs, XviD is the best quality wise, right?
__________________
Elias is offline   Reply With Quote
Old 18th February 2005, 12:44   #12  |  Link
stephanV
gone
 
Join Date: Apr 2004
Posts: 1,709
That is still a matter of opinion and even so, its too easy to change the FCC.
stephanV is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 02:00.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2017, vBulletin Solutions Inc.