View Full Version : Problems splitting .aac (he-aac) streams via BeSplit
DeeGee
30th June 2004, 21:00
I was just trying to do 2 cd rip of dvd into mp4... i also noticed problems, but i didn't have clicks or popping in sound, but video played at 2xspeed when the audio ( ac3 -> he-aac mp4 -> raw aac -> (be)split -> 2xmp4 ) was muxed in. I guess I can bypass this problem by doing the split for the ac3 file before encoding into he-aac. This unfortunatly means that I need to do the encoding twice (first time for the unsplitted file to get the final audio size). Quite the pain in the arse...
i splitted your post as it didnt had anything to do with importing problems of .aac to matroska
does your problem also occur with normal aac streams (not he-aac)?
i assume the increased speed has something to do with the low samplerate of he-aac files (maybe besplit cant handle the headers of he-aac correctly somehow?)
how did you remux from the splitted .aac to .mp4? if you did it via the graphedit than you found a bug in the current aac parser filter
try it with mp4creator!
DeeGee
1st July 2004, 22:50
Ok, sorry about that. As this operation requires the usage of so many different programs I haven't got a clue which one could cause this problem, so i woudn't blame besplit yet.
The MP4 HE-AAC was created by oagmachine + nero(aac.dll 2.5.9.6, aacenc32.dll 2.6.2.2). Nero settings were Variable bitrate = Streaming :: Medium, Encoder quality High, AAC profile = HE-AAC. BeSplit v0.82 by DSPguru.
First I tried MP4UI (1.0b2 uses MPEG4IP 1.0.2) to demux the HE-AAC from the mp4 container but the resulting .aac was something else than a standard AAC as BeSplit gave long list of errors when splitting and the playback of the original unsplit file and the splitted ones was unpossible.
Next I tried graphedit (3ivx) but it seems that you can't just connect the 3ivx media splitters audio out to file writer...
So I looked for help from the audio faq and wound out Ivan&Menno. Next I noticed it is simply a gui for MP4Creator (MPEG4IP) and had my doubts as MP4UI failed but this seemed to make proper .aac that i could play back even after the split. Only problem is that this aac reports as Profile: "AAC Main" and Sample rate: "44100 -> 44100" by CoreAAC and as LC AAC in winamp. But i guessed that this shouldn't be a problem as the faq reads:
Note that when muxing HE-AAC from raw .aac streams, you have to indicate to the muxer that "AAC is SBR" in MKVtoolnix and AVImux GUI. When muxing .mp4, SBR is automatically detected.
Then I fired up graphedit again, this time to do the muxing. Everything seemed to work fine exept when I tried the playback of the resulting MP4 that contained the sound and video = audio playes back nicely but video is at 2xspeed and coreaac reports 44100 -> 44100hz instead of 22050(sbr) -> 44100 and LC AAC.
As I did the muxing again I noticed that the unsplit file muxed into a MP4 also reports falsely as LC AAC. So the broblem isn't in besplit, but either in MP4Creator, AAC Parser or 3ivx Media Muxer.
There seems to be one more possibility. Does the aac-parser work with raw aac files or does it require ADTS stream? I assume MP4Creator makes raw aac files?
Sorry about the ammount of text but I had lot of time to spend as I had to remake all the encoding, demuxing and muxing in he-aac and normal aac.
Originally posted by DeeGee
First I tried MP4UI (1.0b2 uses MPEG4IP 1.0.2) to demux the HE-AAC from the mp4 container but the resulting .aac was something else than a standard AACstrange. did you try the latest mp4ui linked to in the mp4ui thread in this forum (not the one on sourceforge)
as BeSplit gave long list of errors when splitting and the playback of the original unsplit file and the splitted ones was unpossible.ic, btw are you sure that besplit can "officially" spli .aac files?
Next I tried graphedit (3ivx) but it seems that you can't just connect the 3ivx media splitters audio out to file writer...no you cant, you always need something like a "muxer filter", which doesnt exist for .aac afaik
Only problem is that this aac reports as Profile: "AAC Main" and Sample rate: "44100 -> 44100" by CoreAACcoreaac has some workaround which assume that 22050 hz files are he-aac and "upsamples" them to 44100, afaik it doesnt display that its he-aac/aac+sbr tough, thats why it displays "aac main"
But i guessed that this shouldn't be a problem as the faq reads:this is the faq about mkvmerge. this has nothing to do with what you are doing ;)
Then I fired up graphedit again, this time to do the muxing. muxing the audio from .aac or from .mp4?
Everything seemed to work fine exept when I tried the playback of the resulting MP4 that contained the sound and video = audio playes back nicely but video is at 2xspeed and coreaac reports 44100 -> 44100hz instead of 22050(sbr) -> 44100 and LC AAC.if you muxed from .aac you found the typical bug in the "aac parser" directshow filter, which leads to the behaviour you described
normally muxed an aac stream from inside .mp4 should not show this problem
As I did the muxing again I noticed that the unsplit file muxed into a MP4 also reports falsely as LC AAC. So the broblem isn't in besplit, but either in MP4Creator, AAC Parser or 3ivx Media Muxer.use search!
1) he-aac is lc-aac + sbr
2) the he-aac/sbr part is marked in the .mp4 container. this flag tells the decoder that the file is he-aac during playback
3) now when you extract the aac stream from .mp4 the he-aac flag gets lost -> the decoder doesnt know that the file is he-aac anymore -> th decoder displays lc-aac (BUT coreaac offers a workaround also able to detect he-aac without the flag)
4) of course if you remux the he-aac stream to .mp4 the flag is still not there.
There seems to be one more possibility. Does the aac-parser work with raw aac files or does it require ADTS stream? I assume MP4Creator makes raw aac files?no, afaik there is no way to create a real raw aac stream, all tools add an adts header (including mp4creator)
to sum it up:
1) muxing .aac files in graphedit is buggy and should never be used until this bug gets fixed!
2) therefore remux the cutted .aac to .mp4 in ivan&menno
3) after that mux the created audio .mp4 with the video file inside graphedit with 3ivx
DeeGee
27th July 2004, 08:34
Well the method of first demuxing aac from mp4, splitting and then muxing it back into mp4 with ivan&menno works even coreaac reports falsely LE-AAC.
But now I have different phoblem. Playback of mp4 files with more than one audio stream is very jerky because something is taking up humongous ammount of cpu time. This happens with MPC + 3ivx + coreaac + ffdshow combination (using mpc internal audio switcher, morgan doesn't seem to work at all) , but whem I use VLC the same files play back fine? As I prefer myself MPC I wonder what could I do to fix this.
khmm ... i'm a bit confused. i've known that there's no 'raw he-aac' as there's no space in the stream for signing it as he. consequently, when a 'raw' stream is extracted from an mp4 container that can't be anything else than lc. am i correct ? maybe, the whole problem comes from this.
a cheap-solution can be muxing into an avi and split with avimuxgui (it will work). the avi can be splitted on-the-fly when muxing. the parts can be remuxed to mp4 with any mp4 muxer (mp4ui, 3ivx, or so). this way the he info tag wont be lost and there's no need to reencode anything ... if i'm correct here.
bsplit is able to cut aac but 0.82 is quite old. the latest version is 0.9b2. working fine.
mpc: maybe your slowdown is the same as my 'favourite mistake'. if every stream is kept in the same folder and if autoload funcs are on (default!) mpc tries to handle as many streams as many it finds in the folder. (sometimes i got playback, say, with 6 audio streams just because of my stupidity) pop-up the filter panel and check how many instances are handled. autoloaded audio streams can be checked on the audio panel.
the bests
y
bond
27th July 2004, 19:30
Originally posted by DeeGee
Well the method of first demuxing aac from mp4, splitting and then muxing it back into mp4 with ivan&menno works even coreaac reports falsely LE-AAC. :search:
coreaac reports lc-aac, but it is able to detect he-aac streams even if they are not marked in .mp4, still it displays lc-aac in this case
But now I have different phoblem. Playback of mp4 files with more than one audio stream is very jerky because something is taking up humongous ammount of cpu time. This happens with MPC + 3ivx + coreaac + ffdshow combination (using mpc internal audio switcher, morgan doesn't seem to work at all) , but whem I use VLC the same files play back fine? As I prefer myself MPC I wonder what could I do to fix this.try playing the file in graphedit, to make sure that no problems from the player side kick in
also i think you muxed the file with ivan&menno? if you used the 3ivx muxer for muxing a .aac stream into .mp4, than its known for causing problems
Originally posted by yaz
khmm ... i'm a bit confused. i've known that there's no 'raw he-aac' as there's no space in the stream for signing it as he. consequently, when a 'raw' stream is extracted from an mp4 container that can't be anything else than lc. am i correct ? maybe, the whole problem comes from this.no the extracted aac stream still contains the sbr part, meaning its is he-aac
but nothing tells the decoder that its he-aac as there is no flag, therefore it only decodes the lc-aac part (meaning lower quality)
still coreaac has a workaround detecting he-aac even without the flag
SiXXGuNNZ
28th July 2004, 02:04
if you use a bewseet created he-aac, and try to split it with the nero muxer in graphedit, the same thing happens, now, if you take a recode made he-aac and try the same thing, it magically works ;)
lc-aac has no problems with the nero muxer in the tests I have performed.
@bond
thx for the explanation. that's exactly what i wanted to say :-) anyway. what's your opinion about my cheap-ware solution ? it would work (imho) but i don't know what to suggest for trans/remuxing an avi to mp4 ? (i know, there are some threads discussing this topic but i haven't found a definite conclusion anywhere) what would u suggest ?
thx
y
bond
28th July 2004, 16:35
no other muxers than 3ivx and mp4box should be used for transmuxing from .avi to .mp4
if you think about transmuxing aac hacked into .avi via alexnoes tool: forget it, i doubt that any mp4 muxer (nor other tools) handle this private hackery
Originally posted by bond
no other muxers than 3ivx and mp4box should be used for transmuxing from .avi to .mp4thx. 3ivx works fine (for 30 days :-( i'll give mp4box a goOriginally posted by bond
if you think about transmuxing aac hacked into .avi via alexnoes tool: forget it, i doubt that any mp4 muxer (nor other tools) handle this private hackery yes, i meant exatly this. i'm not aware of any other tool for muxing aac into avi. and it worx for me. say, mpc plays such avis fine.
so then what do u mean by 'transmuxing from avi to mp4' ?
btw, (afaik) muxing anything else than wav into avi is 'hackery'. but why is it a problem ? if i can play back that 'hackery' it's ok for me.
thx
y
bond
29th July 2004, 15:20
Originally posted by yaz
3ivx works fine (for 30 days :-(the 3ivx muxer is unlimited, only the audio filters (enc/decoder) are limited because vialicensing wants it that way
so then what do u mean by 'transmuxing from avi to mp4' ?transmuxing from avi to mp4 means transmuxing from avi to mp4 ;)
like feeding mp4box with an .avi file and make it output a .mp4 file
btw, (afaik) muxing anything else than wav into avi is 'hackery'. but why is it a problem ? if i can play back that 'hackery' it's ok for me.:search: all this has been discussed a thousand times already
Originally posted by bond
... the 3ivx muxer is unlimited ...hmmm ... & does it mean that i can use it unlimited ? just ask because all dsf is bunched via a single configurator wich doesn't pop up after the trial period. maybe, i missed sgOriginally posted by bond
transmuxing from avi to mp4 means transmuxing from avi to mp4 ;)
like feeding mp4box with an .avi file and make it output a .mp4 filereally ? would never think of it.
of course, i know what the words mean & i'm able to figure out what would the whole sentence mean. the question is(was) 'how'.
i suggested a way (working well for me) but u simply sentenced it as 'forget it'. i'm still not aware of any other way of muxing aac into avi than i wrote? i just thought u are (sorry)
it seems as if we used the word 'transmuxing' in different manners. imho, it means converting a pack (containing all streams intended) into an other. it involves that the aac stream has been muxed somehow into that avi. that's all i meant.Originally posted by bond
all this has been discussed a thousand times already yeah, sure. but it's not a question really, it's a statement.
pls, don't be off-hand. i record(ed) you as being on the track & being willing to answer even to the most stupid questions. imho, i haven't asked or stated anything making u acting such a way.
don't feel offended but ... if u don't want to answer me don't do that. simple like that.
thx anyway
y
bond
30th July 2004, 14:13
Originally posted by yaz
hmmm ... & does it mean that i can use it unlimited ? just ask because all dsf is bunched via a single configurator wich doesn't pop up after the trial period.sure you can use it unlimited. what configurator do you mean?
of course, i know what the words mean & i'm able to figure out what would the whole sentence mean. the question is(was) 'how'.
i suggested a way (working well for me) but u simply sentenced it as 'forget it'. i'm still not aware of any other way of muxing aac into avi than i wrote? i just thought u are (sorry)
it seems as if we used the word 'transmuxing' in different manners. imho, it means converting a pack (containing all streams intended) into an other. it involves that the aac stream has been muxed somehow into that avi.hm you proposed muxing aac into .avi for splitting and after that you want to remux the aac-in-avi to .mp4 and i said that i doubt there is a mp4 muxer which handles aac hacked into avi
that's all i meant. yeah, sure. but it's not a question really, it's a statement.pls, don't be off-hand. i record(ed) you as being on the track & being willing to answer even to the most stupid questions. imho, i haven't asked or stated anything making u acting such a way.
don't feel offended but ... if u don't want to answer me don't do that. simple like that.yep, sorry maybe i overreacted, this week is not my week :/
still this avi hackery discussion has been discussed very often already and it nearly everytime lead to a flamewar, so i am happy if it can be avoided
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.