Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: aac file formats (Read 8193 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

aac file formats

Hi guys,
i had been pretty busy lately, and didn't find the time to try out the new NERO until today.
i've seen that nero produces .mp4 files, and i've also noticed the ''Export ISO 13818-7 AAC track" switch.
i've read thru lots of posts in this forum, but failed to find a complete info regarding those file formats.
as far as i know, there are 3 structures for AAC :
1. ADTS (this was the default format created by AacEnc)
a chain of aac frames. each frame has its own header.
2. ADIF
an 'adif' header and then a stream of headerless frames
3. raw
:-?

up until today, i used to encode aac of the ADTS format , and it was playable by my portable player (EXP501).
-

Ivan's nero plugin now produces .mp4 files, which, i guess are RAW AAC muxed inside .mp4 container.
am i right ?

Quote
The newest mp4creator code from the MPEG4IP CVS automatically adds ADTS headers to extracted AAC files.

i've played with the latest mp4extract, and was able to extract the aac track from the mp4 created by nero.  i've noticed that when forcing nero to be ISO 13818-7 complaint, the mp4 contains only a single track, while when not forcing, the m4p contains 3 tracks.
either way, the main track of both, aac payload, wasn't bit-identical (i guess that's reasonable).
assuming i used the LC profile, what is the difference between the two ?
must admit i didn't find the way to reconstruct the ADTS headers.

Quote
Quote
2. The encoder doesn't seem to have an option to output as *.aac, which is the only extension my Expanium will accept.

It has - take a look "export to ISO 13818-7 AAC file" - I have Expanium and these files work perfectly with it
it seems to me that if enforcing ISO 13818-7 streams, Expanium should be able to directly read those .mp4 files by skipping the first 28bytes until finding first sync, and by ignoring the metadata at the end of the file (no syncwords).

now, i have ISO 13818-7 & ISO 14496-3 documentations, and closely familier with the ADTS structure (due to the AAC implementation part in BeSplit), but i really need more information regarding the 'raw' mode of AAC, the difference between MPEG4 AAC bitstream to MPEG2 NBC bistreams (is it only a few bits when it comes to LC?).

i've read in here that :
Quote
The MPEG2 AAC Decoder library can be used in any product using a 16/32-bit TriMedia VLIW processor. It can handle ADIF as well as ADTS bitstream types. Raw AAC bitstreams can also be decoded, provided that the profile and the sampling rate are provided.
how does a decoder know the track properties in raw mode, and what are the seeking capabilties in this mode ?

let's say i have a scratched cd full of aac tracks. if using the ADTS format, i know i'm pretty safe, but what will happen if i were using RAW/MP4 structure ?


Thank you,
Dg.

aac file formats

Reply #1
Quote
as far as i know, there are 3 structures for AAC :
1. ADTS (this was the default format created by AacEnc)
a chain of aac frames. each frame has its own header.
2. ADIF
an 'adif' header and then a stream of headerless frames
3. raw
:-?

There's some more info here: http://www.audiocoding.com/wiki/index.php?page=AAC

Quote
Ivan's nero plugin now produces .mp4 files, which, i guess are RAW AAC muxed inside .mp4 container.
am i right ?


Yes.

Quote
i've played with the latest mp4extract, and was able to extract the aac track from the mp4 created by nero.  i've noticed that when forcing nero to be ISO 13818-7 complaint, the mp4 contains only a single track, while when not forcing, the m4p contains 3 tracks.
either way, the main track of both, aac payload, wasn't bit-identical (i guess that's reasonable).
assuming i used the LC profile, what is the difference between the two ?
must admit i didn't find the way to reconstruct the ADTS headers.


mp4extract doesn't add ADTS headers, only mp4creator does.
"When forcing nero to be ISO 13818-7 complaint" there will be 2 seperate files after encoding, one aac file and one mp4 file. The raw aac data of both are bit identical.

Quote
it seems to me that if enforcing ISO 13818-7 streams, Expanium should be able to directly read those .mp4 files by skipping the first 28bytes until finding first sync, and by ignoring the metadata at the end of the file (no syncwords).


"When forcing nero to be ISO 13818-7 complaint" there will be 2 seperate files after encoding, one aac file and one mp4 file. Expanium only plays the aac file not the mp4 file.

Quote
now, i have ISO 13818-7 & ISO 14496-3 documentations, and closely familier with the ADTS structure (due to the AAC implementation part in BeSplit), but i really need more information regarding the 'raw' mode of AAC, the difference between MPEG4 AAC bitstream to MPEG2 NBC bistreams (is it only a few bits when it comes to LC?).


It used to be just 2 bits in the ADTS header (plus the ID has a different value) (see link I posted above also), but they changed that in the latest corrigendum to the mpeg-4 standard.

Quote
i've read in here that :
Quote
The MPEG2 AAC Decoder library can be used in any product using a 16/32-bit TriMedia VLIW processor. It can handle ADIF as well as ADTS bitstream types. Raw AAC bitstreams can also be decoded, provided that the profile and the sampling rate are provided.
how does a decoder know the track properties in raw mode, and what are the seeking capabilties in this mode ?


That data has to be provided by the calling application. For faad2 for example there are some command line switches that define these data. In hardware it will probably be hardcoded to some default value.

Quote
let's say i have a scratched cd full of aac tracks. if using the ADTS format, i know i'm pretty safe, but what will happen if i were using RAW/MP4 structure ?


I don't know how well MP4 handles errors, but it is possible to access it randomly, as long as there are no removed bytes (changed bytes shouldn't be a big problem). ADTS also supports random access.
In MPEG-4 some special error resilient profiles are defined, but I'm not sure what this implies for the MP4 file format.

Menno

aac file formats

Reply #2
Hi Menno !
Quote
mp4extract doesn't add ADTS headers, only mp4creator does.
right  !
Quote
"When forcing nero to be ISO 13818-7 complaint" there will be 2 seperate files after encoding, one aac file and one mp4 file. The raw aac data of both are bit identical.
just noticed the aac file, and can confirm they have the very same raw data.
Quote
Expanium only plays the aac file not the mp4 file.
but if expanium is capable of playing RAW data, why can't it play the mp4 product in this mode? maybe it isn't capable of skipping the first 28bytes, but assuming i remove them, i bet it could play it.
Quote
It used to be just 2 bits in the ADTS header (plus the ID has a different value) (see link I posted above also), but they changed that in the latest corrigendum to the mpeg-4 standard.
10x, i've read about it.
Quote
I don't know how well MP4 handles errors, but it is possible to access it randomly, as long as there are no removed bytes (changed bytes shouldn't be a big problem). ADTS also supports random access.
In MPEG-4 some special error resilient profiles are defined, but I'm not sure what this implies for the MP4 file format.
i turn to believe that Philips' AACdecoder doesn't include any integrity check mechnism

EDIT :
is there any way to tell Nero to procue only single aac file ? (without creating the mp4).

aac file formats

Reply #3
yup...


i wan`t to ask a related question to this..

is there any difference between the psytel, nero and quick time mp4 formats..
if any. what..

i tried to encode a track.. with those tree.. and the qualety of psytel/nero
was about the same.. but qt. was "blury" and oversonic..?
but way smaller..



aac file formats

Reply #4
The QuickTime AAC (MP4) format is totally different, because well it's not developed by Ivan Dimkovic , and i'd certainly say that Psytel AACEnc 2.15 is better quality than QuickTime.
The Nero AAC encoder (also by Ivan) is his continued work. Has more features than Psytel AACEnc.

aac file formats

Reply #5
yup...


i do know that.. and i do hear that.. 

but i wanna know ecsact in what ways.  .
(i recond the format code.. is basicly the same.)

especialy when you consider that qt files.. are "a waste of time" 
when it comes to qualety..



aac file formats

Reply #6
thinking about it, i guess i could remove the first 28bytes of the mp4 when on iso mode, replace it with an ADIF header, and end up with a valid stream for expanium. easy!
on the other hand, if i were using the .aac produced by Nero (ADTS), i get faster seeking on this file, better immunity for cd-scratches, but add an extra bitrate of about 2kbps.

aac file formats

Reply #7
Quote
thinking about it, i guess i could remove the first 28bytes of the mp4 when on iso mode, replace it with an ADIF header, and end up with a valid stream for expanium. easy!
on the other hand, if i were using the .aac produced by Nero (ADTS), i get faster seeking on this file, better immunity for cd-scratches, but add an extra bitrate of about 2kbps.

Right, ADTS is better for expanium. Hopefully there will be some mp4 hardware players soon.

Menno

aac file formats

Reply #8
Quote
but i wanna know ecsact in what ways.  .
(i recond the format code.. is basicly the same.)

especialy when you consider that qt files.. are "a waste of time" 
when it comes to qualety..

Quality is not determined by the file format (format can give limitations in quality though) but by the tuning of the encoder. The three you name are different encoders (although Psytel is an older version of the Nero encoder).

Menno

aac file formats

Reply #9
Quote
The QuickTime AAC (MP4) format is totally different, because well it's not developed by Ivan Dimkovic

hmm.. i THINK that Menno is actually the one being responsible for the .mp4 format produced by Nero, while Ivan responsible for the raw AAC data (inside/outside that MP4 file).

aac file formats

Reply #10
Yeah i just mean the coder...so wrote AAC and included (MP4) so that it'll be more understandable, now that i think about it, it can cause confusion instead..

aac file formats

Reply #11
@menno
i want to try converting a floating-point wave into aac/mp4 with Nero, but it seems like Nero doesn't support floating-point waves.
a. am i wrong  ? can Nero read fp waves ?
b. assuming Nero was capable of reading floating-point samples, were they be dithered to shorts before delivered to the aac encoder, or were they passed as-is ?
as far as i remember, aacenc supports floating-point input files .

Thanks again,
Dg.


@SK1
Cheers!

aac file formats

Reply #12
Quote
@menno

You should ask Ivan this, I don't know how the plugin manager works exactly.
Sorry...

Menno

aac file formats

Reply #13
Quote
Quote
@menno

You should ask Ivan this, I don't know how the plugin manager works exactly.
Sorry...

Menno

@Ivan
i want to try converting a floating-point wave into aac/mp4 with Nero, but it seems like Nero doesn't support floating-point waves.
a. am i wrong ? can Nero read fp waves ?
b. assuming Nero was capable of reading floating-point samples, were they be dithered to shorts before delivered to the aac encoder, or were they passed as-is ?
as far as i remember, aacenc supports floating-point input files .

aac file formats

Reply #14

aac file formats

Reply #15
Quote
@Ivan
i want to try converting a floating-point wave into aac/mp4 with Nero, but it seems like Nero doesn't support floating-point waves.
a. am i wrong ? can Nero read fp waves ?
b. assuming Nero was capable of reading floating-point samples, were they be dithered to shorts before delivered to the aac encoder, or were they passed as-is ?
as far as i remember, aacenc supports floating-point input files .

Current version of the NERO audio plug-in manager (5.5.10.0) does not support multichannel wave files, or any other bit depth configuration other than 16-bit (maybe 8-bit, but I haven't checked that)

This has been noted and next version will have multichannel and multiple bit-depth support, I'll see if I can arrange floating point wave support in the same release, too.

After this is implemented, we can see what can be done to improve the plug-in pipeline - at this stage, AAC encoder will accept integer PCM only, but if floating point is implemented, I will probably extend plug-in to accept floating point input directly.

aac file formats

Reply #16
Quote
next version will have multichannel and multiple bit-depth support, I'll see if I can arrange floating point wave support in the same release, too.

After this is implemented, we can see what can be done to improve the plug-in pipeline - at this stage, AAC encoder will accept integer PCM only, but if floating point is implemented, I will probably extend plug-in to accept floating point input directly.

yummy! 10x

aac file formats

Reply #17
Quote
Current version of the NERO audio plug-in manager (5.5.10.0) does not support multichannel wave files, or any other bit depth configuration other than 16-bit (maybe 8-bit, but I haven't checked that)

This has been noted and next version will have multichannel and multiple bit-depth support, I'll see if I can arrange floating point wave support in the same release, too.

After this is implemented, we can see what can be done to improve the plug-in pipeline - at this stage, AAC encoder will accept integer PCM only, but if floating point is implemented, I will probably extend plug-in to accept floating point input directly.

By the way, Ivan, what has been realized of these ideas in the current version of the Nero plugin manager / SDK / AAC plugin apart from the multichannel support?
ZZee ya, Hans-Jürgen
BLUEZZ BASTARDZZ - "That lil' ol' ZZ Top cover band from Hamburg..."
INDIGO ROCKS - "Down home rockin' blues. Tasty as strudel."