PDA

View Full Version : best container for AAC?


Mug Funky
2nd September 2003, 20:18
hey-o

hopefully this hasn't been answered in another thread (my search skills are limited, as i'm not really sure which words would yield better hits).

i was wondering what the best container format for AAC sound is?

i'm a bit n00b with the whole container thing, as i'm mostly just worried aboot getting the video encoded, and if avi works, i use that.

hovever, i've found AAC very problematic when i try to play it back on its own, or inside an avi. same deal with OGM and MKV (though i must confess i'm not expert at these containers and may have overlooked something).

the only format i've got working is simply muxing into an MP4 and playing back with 3ivx filters. however, i have very little control over the postprocessing and whatnot, and i suspect that something like ffdshow could handle it better.

so... anyone use AAC often? i love the quality i get from it, but the compatibility is somewhat lacking. (i use the psytel encoder, either with AACmachine, or commandline, depending on how anal i'm feeling).

i'd like to know which format presents the least problems concerning quality, control, and portability (so i can give a file to a friend and not need 3 hours with their computer to get it working).

so... i invite all to enlighten me.

temporance
2nd September 2003, 21:05
There's no theoretical reason why AVI couldn't be used, indeed AC-3 in AVI was a hack.

...but...

I think you'd have to write your own software to mux and demux AAC into AVI. Come to think of it, why hasn't anyone done this?

wiflye81
2nd September 2003, 21:13
For me it's Matroska the best but it's only my opinion.

KpeX
2nd September 2003, 22:00
Remembering that forum rules prohibit asking what's best.....my opinion would be to use Matroska or MP4 for AAC and some video.

Either container should function fine with AAC, MP4 might have a better shot at future hardware support, although I'm sure the MKV team is pushing for hardware support for that container as well. Either way, it should soon be easy to transmux MP4 to MKV or vice versa losslessly, so it shouldn't mattter which one you choose. I believe OGM has plans to support AAC audio as well.

Oh btw the audio compression gurus over at Hydrogenaudio would probably tell you that you'll get higher quality AAC from Nero or Quicktime encoders than Psytel - but I definitely understand wanting to use the freeware solution. hth,

wiflye81
2nd September 2003, 22:20
OGM already support AAC ( it was tested some weeks ago )

DKDIB
3rd September 2003, 10:08
Ogm don' t support HE profile: if you mux a HE AAC in an Ogm you will lose the SBR part.

shitowax
3rd September 2003, 11:04
Using 3ivx D4 404, you can already use use ffdshow or any decoder supporting "mp4v" fourcc with MP4 (or MOV). Just "open" the splitter and decrease the priority of the 3ivx decoder ...

But the 3ivx video decoder already let you select the level of PP and there is even an autoselection of the highest PP level your hardware can afford without dropping ... what important "control" would you like on postprocessing in addition to that ?

hope that helps.

Originally posted by Mug Funky
hey-o

hopefully this hasn't been answered in another thread (my search skills are limited, as i'm not really sure which words would yield better hits).

i was wondering what the best container format for AAC sound is?

i'm a bit n00b with the whole container thing, as i'm mostly just worried aboot getting the video encoded, and if avi works, i use that.

hovever, i've found AAC very problematic when i try to play it back on its own, or inside an avi. same deal with OGM and MKV (though i must confess i'm not expert at these containers and may have overlooked something).

the only format i've got working is simply muxing into an MP4 and playing back with 3ivx filters. however, i have very little control over the postprocessing and whatnot, and i suspect that something like ffdshow could handle it better.

so... anyone use AAC often? i love the quality i get from it, but the compatibility is somewhat lacking. (i use the psytel encoder, either with AACmachine, or commandline, depending on how anal i'm feeling).

i'd like to know which format presents the least problems concerning quality, control, and portability (so i can give a file to a friend and not need 3 hours with their computer to get it working).

so... i invite all to enlighten me.

Mug Funky
3rd September 2003, 11:08
Remembering that forum rules prohibit asking what's best.....

yeah... sorry. but i'm not really asking this out of some desire to prove one thing better than the other, rather because i'm baffled about how to incorporate these files into my video workflow.

i wouldn't have posted the thread if i'd got results i was happy with using mp4.

i shall try mkv or ogm, but i think i lack the correct dShow filters to make this happen - i use the psytel encoder, and for some reason it tags my files as mpeg-2 not mpeg-4, and this causes some strange things in directshow's graph building. eariler attempts to play back an mkv or ogm file with AAC have led to dshow errors (in spite of the fact that i've installed everything.ax i can find to do with AAC).

i'm a little new to AAC. although i know what all the commandline switches do, the little things like profile and headers and stuff escapes me for now.

@shitowax: i saw the PP settings in 3ivx, but i still got hella choppy playback, even with autoselection, and surprisingly also with no PP at all. i'm more comfortable with ffdshow because it give way, way more options.

a possible reason for the choppy playback is that my video height isn't divisible by 32 or 16. in fact, now that i think of it, i'll give that a try now.

shitowax
3rd September 2003, 11:31
Shoppy playback with 3ivx is often because the system is not using hardware colorspace transformation ... What are your processor, OS and graphic card and what are your movie's dimensions ?

Originally posted by Mug Funky
yeah... sorry. but i'm not really asking this out of some desire to prove one thing better than the other, rather because i'm baffled about how to incorporate these files into my video workflow.

i wouldn't have posted the thread if i'd got results i was happy with using mp4.

i shall try mkv or ogm, but i think i lack the correct dShow filters to make this happen - i use the psytel encoder, and for some reason it tags my files as mpeg-2 not mpeg-4, and this causes some strange things in directshow's graph building. eariler attempts to play back an mkv or ogm file with AAC have led to dshow errors (in spite of the fact that i've installed everything.ax i can find to do with AAC).

i'm a little new to AAC. although i know what all the commandline switches do, the little things like profile and headers and stuff escapes me for now.

@shitowax: i saw the PP settings in 3ivx, but i still got hella choppy playback, even with autoselection, and surprisingly also with no PP at all. i'm more comfortable with ffdshow because it give way, way more options.

a possible reason for the choppy playback is that my video height isn't divisible by 32 or 16. in fact, now that i think of it, i'll give that a try now.

el00343
3rd September 2003, 11:37
Originally posted by DKDIB
Ogm don' t support HE profile: if you mux a HE AAC in an Ogm you will lose the SBR part.

FALSE.I already have a dozen of ogm's playing fine with COREAAC. HE AAC of course.
Better check it out.

Mug Funky
3rd September 2003, 11:41
oh, just tried it with multiples of 32...

earlier the video was 640x360, now it's 640x352 (nuts to correct aspect ratios).

i actually found it was only choppy when i used the VMR9 renderer, not the standard overlay. (ie, in WMP it was fine, but Zoomplayer it wasn't.).

i prefer not to use the overlay mixer because it disagrees with my graphics card, and no matter what i do, i get these ugly vertical broken lines on every MB.

specs... a little out dated i guess: P3-733, geforce 2 mx400@200mhz, omega drivers, ummm... not sure what else to put. the video was encoded with xvid through virtualdub, and muxed with AAC using mp4UI.

i have not yet tried everything to get this working - i was hoping the forum could save me a little time :)

@DKDIB: >> Ogm don' t support HE profile: if you mux a HE AAC in an Ogm you will lose the SBR part.

i haven't a clue what HE profile is... i assume SBR is "smart bitrate", but i'd like to know how to set these things. maybe i'm using an outdated encoder?

DKDIB
3rd September 2003, 16:24
Mug wrote:
> i haven't a clue what HE profile is... i assume SBR is
> "smart bitrate", but i'd like to know how to set these
> things. maybe i'm using an outdated encoder?

You should use Nero 6 to produce an HE AAC.

DKDIB
3rd September 2003, 17:30
El00343 wrote:
> FALSE.I already have a dozen of ogm's playing fine with
> COREAAC. HE AAC of course.

:confused:
Are you sure?
I re-tried to produce an Ogm with a valid HE AAC audio track but I failed (CoreAAC indicates to me that AAC is a "LC AAC").
There is no problem in .aac because SBR part works well in Matroska.

I used:
* Nero 6.0.0.15;
* OGMuxer and OggMux 0.9.5.2 build 5;
* OggDS 0.9.9.5 (obviously! :P);
* CoreAAC 1.0 beta 7;
* Media Player Classic 6.4.6.3.

Mug Funky
3rd September 2003, 18:24
okay, an update.

from now on i'll use the nero one... i guess i don't trust anything that doesn't give me access to every single little switch :)

but for now i fudged it using nic's AAC2WAV wrapper thing. directshow likes AAC much more if it has a RIFF header, it seems.

i have been able to successfully mux this into AVI, OGM, and MKV (well, truth be told AVI was the most stable, but i wish it wasn't due to all that wasted space from using VBR audio in an AVI container).

when i finish a very big 2-pass encode, i'll let y'all know how it plays back. the small sample i tried on wasn't enough for me to tell if it synchs properly (it's 1000 frames out of one of the dream sequences in terry gilliam's Brazil)

unmei
3rd September 2003, 19:40
i assume SBR is "smart bitrate"
hell no, it means "spectral band replication" which stands for encoding the high frequency parts independently and using a different approach than the mpeg etc type of audio compression.

i think something like "put some high frequencies here" which will not give a exact reproduction of the original, but for the really high frequencies its a very efficient way to at least include them instead of cutting them off.

Well correct me if i'm wrong, the latter part is actually a bit a shot into the dark :)

el00343
3rd September 2003, 21:54
Originally posted by DKDIB
El00343 wrote:
> FALSE.I already have a dozen of ogm's playing fine with
> COREAAC. HE AAC of course.

:confused:
Are you sure?
I re-tried to produce an Ogm with a valid HE AAC audio track but I failed (CoreAAC indicates to me that AAC is a "LC AAC").
There is no problem in .aac because SBR part works well in Matroska.

I used:
* Nero 6.0.0.15;
* OGMuxer and OggMux 0.9.5.2 build 5;
* OggDS 0.9.9.5 (obviously! :P);
* CoreAAC 1.0 beta 7;
* Media Player Classic 6.4.6.3.

Well, I used graphedit to mux audio/video.Just make the .mp4 from nero, run graphedit and split the .mp4 using the 3ivx splitter.All others like normal (use the ogg muxer to mux the audio/video etc). Plays fine with latest coreaac, don't remember which version,perhaps yours.Currently IMHO the BEST solution for low-bitrate multichannel audio.At least until ogg 1.1 arrives .. :)

kastro68
4th September 2003, 08:50
Originally posted by el00343
Well, I used graphedit to mux audio/video.Just make the .mp4 from nero, run graphedit and split the .mp4 using the 3ivx splittero etc).


I get HE-AAC on playback while using graphedit to mux into ogm.

I'm just curious as to how you approach a situation where you need to cut the file into segments.

My current solution is long and tedious, as it involves cutting the video and encoding the audio separately then muxing each individually using graphedit.

I tried using mkvmerge for matroska container, but on playback it reported the aac audio as LC...running at 22khz not 44khz.

kl33per
4th September 2003, 09:15
Originally posted by unmei
hell no, it means "spectral band replication" which stands for encoding the high frequency parts independently and using a different approach than the mpeg etc type of audio compression.

i think something like "put some high frequencies here" which will not give a exact reproduction of the original, but for the really high frequencies its a very efficient way to at least include them instead of cutting them off.

Well correct me if i'm wrong, the latter part is actually a bit a shot into the dark :)
Basically SBR is a technology that writes a small amount of data every second (say approx. 5kbit's) so that on playback, the decoder can 'predict' what the high frequncies of the file would have been. HE AAC is not transparent, but does provide very good quality for really low bitrates when compared to other codecs like Vorbis.

temporance
4th September 2003, 09:39
Originally posted by Mug Funky
i have been able to successfully mux this into AVI, OGM, and MKV (well, truth be told AVI was the most stable, but i wish it wasn't due to all that wasted space from using VBR audio in an AVI container).IMHO, this is an implementation problem, not a specific problem of VBR audio in AVI.

For VBR audio to work properly in AVI, a specific implementation of the AVI spec is needed (some would call this a "hack").

The common interpretation of the "hack" is that you must place exactly one audio frame per AVI chunk. Because each frame has a fixed duration (in seconds) but variable size (in bytes), this can achieve VBR and still allow AVI parsers to seek accurately. One frame per chunk is wasteful as each chunk has an overhead of ~24 bytes for header and indexing.

I have experimented with using n-frames-per-chunk (using VBR mp3, but same should work for VBR AAC). If you put, say, 4 audio frames in every AVI chunk and set the AVI headers appropriately, then seeking still works correctly. After all, the AVI parser knows nothing about the audio format within each chunk. With n-frames-per-chunk, n=4, the AVI overhead is quartered, and with a higher n, the overhead would be even smaller.

So the AVI overhead should not be a problem. I used to be pro-mp4 and anti-AVI, but now with hardware support for AVI on the increase, I'm pleasantly surprised about what this format can achieve. IMHO, the flexibility and power of formats like mp4 and matroska are to their disadvantage when it comes to embedded implementations.

-JF

Mug Funky
5th September 2003, 00:48
thanks for your help, y'all...

@unmei: ha! i really should do my homework on these things... well, i guess that's why the forum's here. so it works very similarly to mp3PRO. that's pretty good to hear considering the higher bitrates available with AAC. i'll definitely have to try nero's thing.

but for now i've got my video encoded to fit my audio EXACTLY (ie. they add up to 700mb to the k), so i'll not be re-encoding my audio, VBR as it is. maybe next time :)

the problem i have now is:
after muxing my audio and sound, there is about 1 sec delay. i've encountered this in every container i've tried - avi, mp4, ogm and mkv.

i've decided not to use mp4 - 3ivx's decoder screws up on b-frames. don't ask why, but it does. so i'd rather not use it. and seeing as the delay is the same no matter what container i use, i'd rather just use MKV or OGM (these perform identically, as far as i've seen, and ffdshow performs admirably on my video).

now you're probably all thinking (??) that it's the delay you get from ripping ac3. except that it's not. the audio is correctly synched when i look at timings of things compared to when they occur in the video (this is with the streams seperate - i look at the explosion in cooledit for the AAC, and the first frame it happens in virtualdub, and they line up exactly). the delay is coming from the muxing, but i've not told it to do this.

any ideas?

hehe. i promise when i finally get a good result to write a guide aboot AAC, or at least put a link to an existing one in my signature :)

OBcecado
5th September 2003, 01:43
Hi, without wanting to seem too lame (ok, I'm lame) how do you output the .aac file from a .mp4 file, if I choose nero to output a iso .aac file it won't playback, but through graphedit I can listen to it using 3ivx splitter as it has been wrote before, but I can't find a way to mux it with any container.



Thanks in advance.

Mug Funky
5th September 2003, 01:54
@OBcecado: not sure there... if you use mp4UI to put the aac into an mp4 containter, directshow has a better chance of finding out what to do with it...

and to everyone else - another update (i really need to get some sleep, but i seem to be determined to get this right first). it seems the desynch was (for whatever reason) caused by the fact i was using a RIFF header. so instead of using VdubMod to mux my movie, i've turned my AAC into an MP4, and used graphedit to mux into OGM (the dshow MKV muxer i've got doesn't seem to treat the video well, resulting in an unplayable video stream).

this has better synch, but seems to drift in and out - the explosion was in time, but a minute later when mr. buttle as being arrested, the lips were all out of synch by about 1 syllable (my eyes aren't fast enough to tell you the desynch in ms...). this is kinda annoying, maybe caused by the VBR stream, but that doesn't make much sense to me.

it's possibly because i used the CBR setting in aacenc.exe, but got a VBR stream anyway. strange, really, but it's all i can think of.

i'm considering re-encoding everything - using nero 6 HE encoding (now that i've had it explained, i feel kinda dumb using oldschool psytel :P). this will mean my computer stays on for another 2 days. well, worse things have happened.

i'll see how i go doing the whole movie in OGM (rather than stopping it after a couple of minutes).

[edit]... what am i talking about. i can just use nero to make a slightly smaller audio track... with SBC it shouldn't sound any worse (probably a hella lot better).

OBcecado
5th September 2003, 01:58
Hi, the .mp4 file was the output from nero 6 encoder, it has two options that .mp4 file or a iso .aac track, but if it outputs that iso track I can't play that, not even parse it in graphedit.
Any suggestions ?

Mug Funky
5th September 2003, 02:35
umm... if the mp4 file works, use it!

directshow won't take aac files. just wont. i don't know why, but when i use the psytel encoder (only outputs aac, not mp4), then i have to use an external app to mux it into an mp4 file.

there's one called mp4UI... it should be on the doom9 main page.

ChristianHJW
5th September 2003, 02:41
If its a HE AAC track your only choice currently is to use MP4 as output container and use Graphedit and Gabest's matroska muxer filter in conjunction with the 3ivX MP4 splitter filter, as only with the MP4 container the necessary information is available such that the matroska tools know if its HE AAC or not.

menno from Ahead suggested a trick to the matroska team to find out if an .aac file is HE or not, but Mosu's tests were not successful, so using MP4 and Graphedit is a must until Mosu has implemented MP4 parsing into mkvmerge ...

OBcecado
5th September 2003, 03:00
I already managed to connect Gabest's matroska muxer to this way: File -> 3ivx d4 media splitter -> coreaac audio decoder -> matroska muxer
I'm not understanding how I'm gonna be able to put the aac track out of the graph, that's gotta be the easiest part, the one I'm not understanding.
Thanks in advance.





P.S: If it's not asking too much could you show up in corecodec, it's easier to talk.

unmei
5th September 2003, 03:17
kl33per wrote:

..but does provide very good quality for really low bitrates when compared to other codecs like Vorbis.

i sure do hope so after all the fuzz that was generated about it :D
Well, i have to believe you for now as i'm not going to use HE-AAC anytime soon for two reasons:

a)overwriting my nero 5.5 with a probably bloated 6.0 which maybe would require me to get a new license and all the install (it was hell to get it working on my comps)

b)i frekkin cant understand why i should open a disc burn program to encode a file ><

..on top of that i was really diappointed by LC AAC twice already: 18 month ago or so when i tesed it first i could not get good quality below 160kbps and even there lame could beat it easily and about 2-3 month ago itested it again as i was looking for a alternative for vorbis in video and at 64 kbps vorbis clearly sounded better (on headphones, the vorbis was dulled a bit, but aac was oversharped in a scary way hurting my ears).
[blahblahblah..]

today HE has to bring a quantum leap to AAC to conquer the 64kbps range and for high quality it should be able to compete with MPC (altho MPC is nowhere in video)
..that cos i would really like to see my future AVC videos accompanied by AAC audio -the names match so nicely :p

ChristianHJW
5th September 2003, 07:31
Originally posted by OBcecado
[B]I already managed to connect Gabest's matroska muxer to this way: File -> 3ivx d4 media splitter -> coreaac audio decoder -> matroska muxer
I'm not understanding how I'm gonna be able to put the aac track out of the graph, that's gotta be the easiest part, the one I'm not understanding.
Thanks in advance.

Delete the CoreAAC decoder from the graph, else you have uncompressed audio in the MKV ...

calinb
5th September 2003, 21:22
Originally posted by kastro68
I get HE-AAC on playback while using graphedit to mux into ogm.


Yes, graphedit and CoreAAC are working well for me too. I'm using 3ivx to split the audio stream from a Nero6 generated HE-AAC mp4 file, then muxing to ogm with graphedit. I haven't found a way to deal with file splitting problem either, but I'm usually trying to fit one DVD movie into a 795MB ogm file for a single XCD with 5.1 sound. Given that HE-AAC is about 1/3 of the typical AC3 5.1 bitrate, this is often possible -- with quality loss, of course! In other words, if I'm going for a single CD rip, I use HE-AAC. My multi-CD rips don't get burned to CDs--they get burned to DVD-Rs, in which case, I keep the original audio stream.

Although HE-AAC 5.1 sound is impressive for the low bitrate, if I really care about sound, I don't use HE-AAC but rather keep the original AC3 or DTS stream. Hence I've not ever needed to split an ogm file containing AAC.

One problem I have encountered, but not yet solved, is the insertion of a non-zero DVD2AVI audio delay value. When muxing with graphedit, how is everyone inserting an appropriate audio delay, when necessary? Normally I use the Nero AC3 plugin, but it doesn't support audio delay. I've used BeSweet to make a wav first, when an audio skew adjustment is required, but Nero sometimes has problems with 5.1 waves (even with the wav replacement plugin) and this adds a step.

Also, what about gain adjustments? How do you know how much gain to add, if you don't run it through BeSweet first?

calinb
5th September 2003, 21:31
Originally posted by unmei
kl33per wrote:
...i'm not going to use HE-AAC anytime soon for two reasons:

a)overwriting my nero 5.5 with a probably bloated 6.0 which maybe would require me to get a new license and all the install <snip>

b)i frekkin cant understand why i should open a disc burn program to encode a file <snip>


unmei:

You don't need the full meal deal (new burner, etc.). You just need Nero6 "Mix." It's a nice little proggy that plays and "records"/encodes. There are many ways to access the Nero AAC encoder and the Mix interface seems to be the best way. If you download the demo version, the Mix launcher splash screen says you can buy it for $22! I don't see Mix in the Nero online store, though so you might have to email them and wait a month :(
I ran Mix successfully with Nero 5.5 installed alongside it, but now I've installed the Nero6 burner too.

calinb
5th September 2003, 21:45
Originally posted by KpeX
Either container should function fine with AAC, MP4 might have a better shot at future hardware support,

I tried muxing my DivX and HE-AAC into an mp4 file, but ran into a problem. mp4creator60 doesn't seem to respect my framerate and it won't let me change it. It's slightly off due to some kind of rounding error. Even if I "preload" and adjust the framerate on the input video file, the framerate resolution of mp4creator60 is simply not fine enough to keep A/V in sync over an hour or more. I don't recall exactly, but the framerate values seemed to have a resolution of about 0.01 fps and that's not good enough. You need something closer to 0.001 fps, if you want to make videos longer than the typical MTV clip :)

Anyone notice this problem.

Also, has anyone had any luck using the Nero6 "Mix audio into existing MP4 files" preferences option? It never works for me--at least not with a DivX video mp4 file.

DeXT
6th September 2003, 14:48
Originally posted by calinb
I tried muxing my DivX and HE-AAC into an mp4 file, but ran into a problem. mp4creator60 doesn't seem to respect my framerate and it won't let me change it. It's slightly off due to some kind of rounding error. Even if I "preload" and adjust the framerate on the input video file, the framerate resolution of mp4creator60 is simply not fine enough to keep A/V in sync over an hour or more. I don't recall exactly, but the framerate values seemed to have a resolution of about 0.01 fps and that's not good enough. You need something closer to 0.001 fps, if you want to make videos longer than the typical MTV clip :)

You can get a millisecond-accurate framerate on mp4creator by adjusting the timescale value, usually with a value equal to fps*1000 (such as 23976). The default one is only valid for integer fps values (24, 25, 30 fps). Look at this post from the Mighty Chibi Jasmin for more information:

http://forum.doom9.org/showthread.php?s=&threadid=26861

unmei
6th September 2003, 23:26
thanks, calinb. "Mix" could be OK :)

Neo Neko
9th September 2003, 06:38
Originally posted by temporance
IMHO, this is an implementation problem, not a specific problem of VBR audio in AVI.


It is not of a standard implementation of AVI therefore it is a specific problem of VBR audio in AVI.

Originally posted by temporance
[B]For VBR audio to work properly in AVI, a specific implementation of the AVI spec is needed (some would call this a "hack").


Alex and I recently discussed this elsewhere. Not only would many call it a hack. But other words like kludge come to mind as well. And it is one of the worst kinds of hacks. A hack that relies on Directshow's assumptions. And not relying on the AVI standard. What does this mean? You are more or less tying yourself to Windows for propper playback. And even that does not work 100% reliably. And in the greater scheme of things you are unintentionally lying to people. AVI never has, does not, and never will have VBR audio support. As such it is fine when using it where there are compatability concerns in combination with CBR audio.

Originally posted by temporance
[B]So the AVI overhead should not be a problem. I used to be pro-mp4 and anti-AVI, but now with hardware support for AVI on the increase, I'm pleasantly surprised about what this format can achieve. IMHO, the flexibility and power of formats like mp4 and matroska are to their disadvantage when it comes to embedded implementations.

-JF

Actually it is quite the other way round as I see it. The AVI support you are seeing now is likely only an interim phenomina that will caese to exist in future players once MP4 support is solidified. Which we have made great strides on of late. To the best of my knowledge there are no standalones that support VBR audio in AVI. That is because it is non standard and AVI simply does not support it.

It is important and I feel greatfull for all the time so many people spend on their free time programming. We have so much to be thankfull for that. But I also think it important that we keep our focus foreward and design things the best we can to work the same everywhere. As such I really think this hack is in poor taste. If you are going to use a compatablility format such as AVI why do incompatable things with it. If you are going to do nonstandard things why not create a standard format for them. So that dificulty can be minimised. IE Matroska or even OGM kinda.

As far as Matroska or MP4 being at a disatvantage on embeded devices due to flexibility and power I really don't see it. And neither do the companies building these devices. Keep in mind that MPEG4 including MP4 was originally designed for embedded devices in the first place! How do you see it being a disadvantage? I am sure Apple, Microsoft, etc would all be eager to hear. True MP4 and Matroska encompas some very demanding technologies that might outpace embeded systems. But that is why most of those technologies are optional from the base working profiles. And even if they are included the system is flexible so the standalone can simply skip what it can not handle or does not recognise. With AVI on the other hand there is a very solid format. Parsers are writen to that format. There is no flexibility built in. So if you add something non-standard the parser can often times outright crash. If standalones can play MPEG files there is no reason on God's green earth they should have massive problems with MP4 or Matroska. Why would a non-standard/broken AVI be better suited than formats designed with the very things that break AVI in mind?

Call me biased being a new formats mod. But MP4 is going to be a major player. And AVI is on it's way out. Period. I know AVI is like an old friend with whom we are all familiar and comfortable with. But his time is passing. Lets not tarnish the memory of AVI with kludges and hacks that give rise to complaints of incompatability or dificulty.(Because they do. I see it every day. :( ) Rather lets retire it with grace and dignity and lend our full support to the new lineup. MP4 is the MPEG container of the new mellinia. What will be the new AVI? My vote goes to Matroska. But we as an important part of the community need to get behind something. Otherwise support will not come so easy. And it should not be AVI.

ChristianHJW
9th September 2003, 14:25
Originally posted by Neo Neko ..... But we as an important part of the community need to get behind something. Otherwise support will not come so easy. And it should not be AVI. .....

... wise words my friend, as always ....

For MKV hardware support : One of the next things we will focus on is the inherent error detection and correction in matroska files for enhanced mode2 form2 / XCD support, and the same tools will have an automatic feature integrated to reorder the elements in matroska files such that hardware devices will have a much easier life. In short, the MKV files will be written in a new, mandatory way for improved hardware support, and this element order will be a part of the matroska hardware profiles specs ....

temporance
9th September 2003, 17:05
Dear Mr. Neko,

Originally posted by Neo Neko
Alex and I recently discussed this elsewhere. Not only would many call it a hack. But other words like kludge come to mind as well. And it is one of the worst kinds of hacks. A hack that relies on Directshow's assumptions. And not relying on the AVI standard. What does this mean? You are more or less tying yourself to Windows for propper playback. And even that does not work 100% reliably. And in the greater scheme of things you are unintentionally lying to people. AVI never has, does not, and never will have VBR audio support. As such it is fine when using it where there are compatability concerns in combination with CBR audio.A year ago I would have agreed with you. I'm from the old-school MPEG world where the spec is king and must be obeyed. But AVI is an entirely different ball game - there is not one document or authority you can go to for a definitive, formal, well-written spec.

True, VBR audio in AVI originated as a lucky kludge, but it's now such a well-understood kludge that it has become a part of the de facto "AVI standard". Now there is no reason why any self-respecting player, whether s/w on a PC or embedded hardware, should not be able to play back VBR audio in AVI files.

As far as Matroska or MP4 being at a disatvantage on embeded devices due to flexibility and power I really don't see it. And neither do the companies building these devices. Keep in mind that MPEG4 including MP4 was originally designed for embedded devices in the first place! How do you see it being a disadvantage?The problem with MP4 is that there are no profiles defined for the standard yet. It's perfectly legal in MP4 to have the first frame of a movie near the end of the file and the second frame at the start of the file. As soon as someone defines a subset of MP4 with some restrictions on this (and defines some navigation information between data chunks) then MP4 will be cleared for take-off on embedded devices.

MP4 is currently suitable only really as a server-side file format - to be parsed and read by a streaming server. But it is much much more flexible than that, and is, IMPO, the best bet for a future media standard.

MP4 is the MPEG container of the new mellinia. What will be the new AVI? My vote goes to Matroska. But we as an important part of the community need to get behind something. Otherwise support will not come so easy. And it should not be AVI.
I think it will be a long time before AVI is properly retired. To my mind, it's worse shortcoming is lack of support for variable video frame-rate. But this really only affects a minority of users.

Neo Neko
15th September 2003, 23:16
Originally posted by temporance
Dear Mr. Neko,

A year ago I would have agreed with you. I'm from the old-school MPEG world where the spec is king and must be obeyed. But AVI is an entirely different ball game - there is not one document or authority you can go to for a definitive, formal, well-written spec.

True, VBR audio in AVI originated as a lucky kludge, but it's now such a well-understood kludge that it has become a part of the de facto "AVI standard". Now there is no reason why any self-respecting player, whether s/w on a PC or embedded hardware, should not be able to play back VBR audio in AVI files.


Actually there are rather well defined and rather definative specs. And none of them bring to bear handling VBR audio. There has been alot of experimentation and muddying of the specs in the last few years to bring partial support for a limited number of VBR audio codecs. But it is not VBR audio support to speak of. And it is no such defacto standard. The defacto standard is CBR. And in fact only a very few programs propperly implement the kludge to where it works ok on a large number of Windows systems only. If you are dealing with a format that for whatever reason you do not think is well defined you should always stick to the lowest common denominator. Which in the case of AVI excludes VBR audio. That is what those writing software for standalones do. And that is why they are not going to support the kludge enmasse if at all.


Originally posted by temporance
The problem with MP4 is that there are no profiles defined for the standard yet. It's perfectly legal in MP4 to have the first frame of a movie near the end of the file and the second frame at the start of the file.


Yes but most everyone follows common sense. And linear progression to boot. So there is not a piece of software on the planet that creates such strange MP4 files even if it would be allowed. And therefore is not a problem.


Originally posted by temporance

As soon as someone defines a subset of MP4 with some restrictions on this (and defines some navigation information between data chunks) then MP4 will be cleared for take-off on embedded devices.


Like any file format there is a base subset of elements the file must contain to be playable. Any standalone or portable need only read them and ignore what they don't understand or can't handle and we are off and better off than with AVI. Later firmware revisions can be updated to support any feature subset proposed as standard in the future. In short there is no reason not to go full steam to MP4.

Originally posted by temporance

MP4 is currently suitable only really as a server-side file format - to be parsed and read by a streaming server.


That is the main place it is in use to date. But that is not because it is not suitable for anything else. Perhaps I should mention that the Apple iPod uses AAC audio in MP4 files. Why would they use it if it were not suited to the aplication. Answer is they would not.

Originally posted by temporance

I think it will be a long time before AVI is properly retired.


Only in the face of continued non-arguments such as these being used to justify keeping it around.

Originally posted by temporance

To my mind, it's worse shortcoming is lack of support for variable video frame-rate. But this really only affects a minority of users.

But you said so yourself that there is no clear spec for AVI. Which is not true. But if it were would be the most damning thing of all. And should make us want to ditch it in a heart beat for something with some sturdy specification for ease of use and problem free opperation. There is no real argument to keep AVI around for anything but using it with CBR audio for compatabilities sake. If compatability is not a concern and you use incompatable things like VBR audio in AVI then why not use a format other than AVI that propperly supports it? All forms of VBR audio. And does not rely on lucky nonstandard kludges.

calinb
16th September 2003, 21:36
Originally posted by DeXT
You can get a millisecond-accurate framerate on mp4creator by adjusting the timescale value
Thanks DeXT! It's working for me now. Funny how the guides I read didn't mention this feature. I guess they were all using PAL video framerates.