View Full Version : mp4UI 1.0 Beta 1
etiRkca
3rd February 2004, 01:34
Check it out, and I was just settling in with MPEG4IP too. GUIs are just irresistable.
http://mp4ui.sourceforge.net/
parts based on... MPEG4IP 1.0.2
What's new?
-----------
2004-02-02 | mp4UI 1.0 Beta 1 (Build 3)
- added metadata dialog (lower right M button)
- added optimize on close
- improved usability/GUI
2004-01-30 | mp4UI 1.0 Alpha 2 (Build 2)
- improved thread locking
- added support for MPEG-1/2 video (incl. audio) import
- changed to static MFC 7.0 linking
- hinting is now performed as operation
- various bug fixes and improvements
2004-01-20 | mp4UI 1.0 Alpha 1 (Build 1)
- public open source release
etiRkca
3rd February 2004, 02:05
*.aac files are allowed to be imported into mp4UI, so I'm guessing that mp4UI can multiplex AVI and AAC files properly. But how about HE-AAC audio files that are in the *.mp4 container?
mp4UI does not list *.mp4 as an acceptable file to be multiplexed. It accepts my XviD RC1 *.avi fine.
bond
3rd February 2004, 14:35
hm yes, it seems to be not able to add .mp4 files via the import option. i understand that this is not so easy cause .mp4 can hold multiple (audio and video) streams, and you would have to add a function which allows to choose which stream to add via import...
i guess for the moment its better to open he-aac .mp4 files via the "open" option and add other video or audio streams to this file via import
and as always the warning:
dont use mp4ui with divx5 avi files with b-frames (bi-directional encoding) and also not with xvid files with b-frames and packed bitstream
-> the created mp4 file will be borked otherwise
use the 3ivx mp4 muxer for such files!
etiRkca
3rd February 2004, 19:11
Is MPEG4IP even able to recognize HE-AAC files?
MP4INFO version 1.0
D:\A\1.mp4:
Track Type Info
1 audio MPEG-4 AAC LC, 6627.690 secs, 49 kbps, 48000 Hz
2 od Object Descriptors
3 scene BIFS
MP4INFO thinks my HE-AAC track is LC, but the time, bitrate, and samplerate info is correct. After muxing, CoreAAC 1.0b9 recognizes the HE-AAC audio stream as LC, but my sound seems to be working alright.
P.S. Is there a way to delay the audio track in the MP4? Maybe I just missed it completely, but I can't seem to find it. MPEG4IP is far from equaling the tools for OGM and MKV, which is surprising for me given that MP4 is supposedly backed by corporate interests and thus is bound to be included in next-gen hardware decoders.
bond
3rd February 2004, 19:28
Originally posted by etiRkca
[B]Is MPEG4IP even able to recognize HE-AAC files?
MP4INFO thinks my HE-AAC track is LC, but the time, bitrate, and samplerate info is correct.hm thats wierd
normally i would say that it doesnt recognize he-aac (cause thats what i thought is the case) but as the samplerate is correct i am not sure about it, normally it would only display 24000hz (48000/2)
he-aac has a special flag in the mp4 container, so if muxing video and he-aac in mp4, i would open the he-aac mp4 and add the video to it, to be sure that the he-aac flag is preserved
After muxing, CoreAAC 1.0b9 recognizes the HE-AAC audio stream as LC, but my sound seems to be working alright.well if it also uses 48khz and displays lc aac, i wonder if you are sure that it is he-aac!?
normally it would also display 24000hz and the sound would be really low quality
P.S. Is there a way to delay the audio track in the MP4? Maybe I just missed it completely, but I can't seem to find it.yes, there is
use search i wrote how you can do it with the 3ivx muxer, also there is a guide about that on the 3ivx support page
MPEG4IP is far from equaling the tools for OGM and MKV, which is surprising for me given that MP4 is supposedly backed by corporate interests and thus is bound to be included in next-gen hardware decoders.well the industry only started to be interested in mp4 lately it seems, with 3ivx and nero releasing tools which uses it
a virtualdub version with mp4 support would be cool of course, but still there has to be someone who wants to do it...
etiRkca
3rd February 2004, 21:58
Originally posted by bond
well if it also uses 48khz and displays lc aac, i wonder if you are sure that it is he-aac!?
normally it would also display 24000hz and the sound would be really low quality
I'm positive that it's HE-AAC. Before I muxed the AVI into the MP4, I opened the MP4 with foobar2000 and:
codec = AAC
bitrate = 49
samplerate = 48000
channels = 2
aac_profile = HE AAC
tool = Nero AAC Codec 2.6.1.1
----------
318129152 samples @ 48000Hz
Originally posted by bond
hm thats wierd
normally i would say that it doesnt recognize he-aac (cause thats what i thought is the case) but as the samplerate is correct i am not sure about it, normally it would only display 24000hz (48000/2)
he-aac has a special flag in the mp4 container, so if muxing video and he-aac in mp4, i would open the he-aac mp4 and add the video to it, to be sure that the he-aac flag is preserved
Good call. Now the sound is recognized as HE-AAC, but I'm not sure about the sample rate.
Profile: AAC+SBR
Sample Rate: 24000 -> 48000 Hz
What does it mean when it says "24000 -> 48000 Hz"?
And what exactly is "borked" with b-frame encodes? I noticed that seeking is a major problem, but haven't noticed any other side effects of using mp4UI/MPEG4IP to mux. Maybe it's because I'm using the Nero Video Decoder.
bond
3rd February 2004, 22:33
Originally posted by etiRkca
Good call. Now the sound is recognized as HE-AAC, but I'm not sure about the sample rate.
Profile: AAC+SBR
Sample Rate: 24000 -> 48000 Hz
What does it mean when it says "24000 -> 48000 Hz"?thats correct
the sbr technology is able to reconstruct 24000hz
if you play this file with a decoder, which doesnt understand he-aac, it will only play the exisiting 24000hz -> crap quality
And what exactly is "borked" with b-frame encodes?avi is not really able to store b-frames, as its simply an old outdated container format
now to be able to put b-frames into avi, divx5 and xvid use a hack called "packed bitstream"
a good mp4 creator should remove this hack from the video stream when muxing into mp4, but mp4ui and mp4creator dont do this
so the result is, that the created mp4 files are simply not spec compliant, maybe you can play such files somewhere, but you can never be sure
if you want 100% spec compliant mp4 files, use the 3ivx muxer!
etiRkca
3rd February 2004, 22:55
bond: Thanks for all the help. The answers to my questions were exactly what I was looking for. So the 3ivx muxer it is. I got a perfectly working encode using it. Yay.:cool:
Originally posted by bond
avi is not really able to store b-frames, as its simply an old outdated container format
now to be able to put b-frames into avi, divx5 and xvid use a hack called "packed bitstream"
a good mp4 creator should remove this hack from the video stream when muxing into mp4, but mp4ui and mp4creator dont do this
I thought that this packed bitstream "feature" could be disabled in XviD. I always disable packed bitstream so I can play my XviD encodes with ffdshow. I'm missing something here.:confused:
bond
4th February 2004, 12:36
Originally posted by etiRkca
I thought that this packed bitstream "feature" could be disabled in XviD. I always disable packed bitstream so I can play my XviD encodes with ffdshow. I'm missing something here.yes, if you disable packed bitstream in xvid you should also be able to correctly mux with mp4ui
etiRkca
4th February 2004, 23:01
Originally posted by bond
yes, if you disable packed bitstream in xvid you should also be able to correctly mux with mp4ui
I guess it should, but it doesn't. The file plays OK with MPC using the CoreAAC and Nero Video Decoder filters, however, seeking is completely broken. Also, approximately the first 13 seconds of video does not play, there is just a black screen with sound, then at the 13 second mark, the video comes on. Weird. At least play/pause works.:rolleyes:
ffdshow does not pick up the video stream until I manually set the MPEG2 format to be decoded using libavcodec in the ffdshow configuration, but doing this results in no video (see error log (http://k.50free.net/mp4ui.txt)). This is puzzling because MP4INFO picks up the video stream properly as an MPEG-4, but I think somewhere along the line the video stream is incorrectly interpreted it as an MPEG-2 stream? Maybe the XVID FourCC gets stripped somewhere and this confuses everything?
mp4info version 1.0
D:\BCSK\BCSK 24ms.mp4:
Track Type Info
1 audio MPEG-4 AAC LC, 6627.690 secs, 49 kbps, 48000 Hz
4 video MPEG-4 Adv Simple@L5, 6626.338 secs, 768 kbps, 704x288 @ 23.98 fps
5 od Object Descriptors
6 scene BIFS
Metadata Tool: Nero AAC Codec 2.6.1.1; mp4UI 1.0 Beta 1 (based on MPEG4IP 1.0.2)
Yes, I know about the 3ivx muxer, but I'm just doing this for educational purposes I guess. I hope by testing this out, improvements can be made to MPEG4IP and mp4UI.
Stux
4th February 2004, 23:51
Are you using the 3ivx Splitter?
(you should be)
If you are, are you sure?
etiRkca
5th February 2004, 01:48
Originally posted by Stux
Are you using the 3ivx Splitter?
(you should be)
If you are, are you sure?
Yes, I'm using the 3ivx splitter. Is there any other working alternative?
Am I sure? I don't know. That's why I posted, so I can be sure. I'm just posting what I see.
shitowax
5th February 2004, 10:05
Last time I checked, the Nero Video Decoder couldn't connect to the 3ivx splitter ... Can it now ?
If you want to be sure of your synchronization, just mux LC-AAC and simple profile video and don't use 64 bits atoms, then you will be able to test with a lot of different players... As far as I know, all splitters have problems, but concerning timestampings, the Quicktime one is the best (Philips, Envivio and ND are massively broken, the 3ivx one has less problem each days ;)). Btw, the OpenQuicktime lib of 3ivx 4.5.1 didn't like at all the (64 bits/version 1) atoms of mpeg4ip (it's fixed in our CVS).
Other things, I did some tests with the latest mp4ui, MPEG-4 I and B frames are not muxed correctly, the audio timescale seems strange. The way MPEG-2 is muxed doesn't seem compliant as well (no DecoderSpecificDescriptor in the esds).
hope that helps.
Drachir
5th February 2004, 12:26
I muxed a mpeg2 video (audio:mp2) with mp4ui.
And looked at the scene/OD with mp4edit. I found a DecoderConfigDescriptor there.
ObjectDescriptor {
objectDescriptorID 20
esdescr [
ES_Descriptor {
es_id 1
streamPriority 0
decConfigDescr DecoderConfigDescriptor {
objectTypeIndication 97 # 0x61 Visual ISO/IEC 13818-2 Main Profile
streamType 4
upStream false
bufferSizeDB 87716
maxBitrate 6006496
avgBitrate 2685054
# missing/have to be there or optional ????
# decSpecificInfo DecoderSpecificInfoString {
# info "??????????"
}
slConfigDescr SLConfigDescriptor {
}
}
]
}
I can play it with GPAC 0.1.2 and VideoLanClient7(no sound)
shitowax
5th February 2004, 13:43
The DecoderSpecificInfo has in theory to be present. It's especially usefull with directshow ...
SeeMoreDigital
5th February 2004, 15:12
Can somebody please explain this...
If I create an 'audio only' AAC.mp4 stream using QuickTime and run it thru' MP4UI (v1.0) Beta 1. The exracted AAC (ADTS) File (*.aac) file will not play in MPC. And can not be read by AVI-Mux (v1.16.2)
If I run the same stream thru' MP4UI (v0.95). The exracted AAC (ADTS) File (*.aac) file will play in MPC. And can be read by AVI-Mux (v1.16.2)
I don't know about any of you guys but I've had no luck at all creating 'working' AAC (ADTS) File (*.aac) files from encodes created by iTunes
Any ideas anybody?
Cheers
bond
5th February 2004, 15:39
hm it seems that mp4ui isnt also able anymore to detect non mpeg-4 streams in mp4
the old 0.95 version could detect the vobsub streams added by nero, but the new version cant
bond
5th February 2004, 16:11
Originally posted by shitowax
The way MPEG-2 is muxed doesn't seem compliant as well (no DecoderSpecificDescriptor in the esds)would the 3ivx splitter be able to pass everything needed to the mpeg-1/2 decoders already if mp4ui would mux correctly?
shitowax
5th February 2004, 16:57
The 4.5.1 can not (especially OQT needed a serious refresh). The next one should (the current CVS can). But anyway, without the DecoderSpecificInfo, there are massive problems.
SeeMoreDigital
5th February 2004, 17:12
Originally posted by bond
hm it seems that mp4ui isnt also able anymore to detect non mpeg-4 streams in mp4
the old 0.95 version could detect the vobsub streams added by nero, but the new version cant My worry is that if this new version of MP4UI can't create accuratly extracted 'AAC (ADTS) File (*.aac)' streams, then what hope do we have at being able to mux these streams into other applications including GraphEdit!
Cheers
Drachir
6th February 2004, 12:53
It seems that MP4UI generate only from the first imported Elementary Stream an ObjectDescriptor.
If I use MP4UI to create a mp4 file and import first a avi (video only) and then an aac(mp3) file it doesn't create an OD for the audio. If I first import the audio. I only get for it an OD and not for the later imported video.
If i import a source with video/audio like a mpeg ps or avi with mp3, both Elementary Streams get an ObjectDescriptor.
Drachir
6th February 2004, 20:39
I searched a little bit with google (DecoderConfigDescriptor +decSpecificInfo) because mp4 files created with MP4UI which have mp3 audio, have too no decSpecificInfo for them. But it seems that in this case it is not needed:
Assistance in the use of decSpecificInfo and accessUnit for the MPEG-1/2 Layer I, II and III case
...
There is no need to define decSpecificInfo for MPEG-1 or MPEG-2 decoders. These decoders receive all relevant information in the ‘header()’ element of their own bitstream and can forward the composition memory format to the composition memory.
...
source: ISO/IEC JTC 1/SC 29/WG 11N5717 July 2003, Trondheim, Norway (http://www.itscj.ipsj.or.jp/sc29/open/29view/29n5556t.doc)
But i found nothing about mpeg2 video. ( Could it be there the same ?)
shitowax
6th February 2004, 22:06
I also read this paper. The problem is that what they state is especially not the case under directshow ... So the only solution under directshow would be to parse the first audio frame to find the layer and version ... bloody norm :(
Anyway, Annex K of the MPEG-4 video norm contains hints about what shall contain the DecoderSpecificInfo. I guess asking in the M4IF mailing lists would give you precise answers of THE experts on the file format (descriptor mandatory or not, and what they must contain precisely).
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.