View Full Version : mp4 audio AND Video file MUX: How..?
hk
20th September 2004, 14:31
Hi,
I produced an
-MP4 Audio file (audio.mp4)with BeSweet (2channel, LC) and a
-MP4 Video file (video.mp4)with mp4creator (from a DivX5.2pro file)
and I wish to mux the two in one container. Itīs not working with mp4ui, , nor with mpeg4ip tools, so what did I do wrong? how do I go about it?
Any help is appriciated,
Yours
HK
yaz
20th September 2004, 14:53
- use 3ivx muxer in graphedit
- strip the audio (mp4 -> aac) or take the 'raw' aac audio and add it to the mp4 video with mp4creator
- add the 'raw' divx stream to the mp4 audio stream with mp4creator
- (re)encode the audio with nero: click '~mix audio to existing mp4 video' and give the mp4 video file as target.
- ... (there may be some other solutions)
- oh yeah ... bond's mp4 faq and doom9's guides are pretty good. may help
the bests
y
hk
20th September 2004, 15:45
Hi Yaz!
Thanks for your advice. Iīm sort of inexperienced so Question:
- Does raw divx mean: Just the video file without the audio?
- I tried Graphedit woth 3ivx before, but I didnīt succeed in draging both, the video.mp4 and the audio.mp4 file in the window. Then I also couldnīt link the filter properly, aaargh! Could you detaill this out ( what filters, what file first etc)? I would like to learn that cause it seems that graph is a very nice tool?
I read Bonds fay before, but couldnīt find detailled solutions. So if you could provide that, would be nice!
Best regards from
Hans Kaspar
KpeX
20th September 2004, 16:52
Originally posted by hk
Hi,
I produced an
-MP4 Audio file (audio.mp4)with BeSweet (2channel, LC) and a
-MP4 Video file (video.mp4)with mp4creator (from a DivX5.2pro file)
and I wish to mux the two in one container.
Use MP4Box from the gpac project (there are some download links in this thread (http://forum.doom9.org/showthread.php?s=&threadid=82078): MP4Box -merge video.mp4 audio.mp4 output.mp4
bond
20th September 2004, 18:40
best would be to use 3ivx (i assume the divx stream uses b-frames, which most likely are f*ed up when you mux such streams with mp4creator + mp4box will not fix this once the stream is inside .mp4)
1) download graphedit from doom9s download site
2) install 3ivx
3) open graphedit and choose open -> media files
3a) open this way the video file
3b) open this way the audio file too
4) delete all parts of the graphs after the splitters
5) load the filter list and add the 3ivx muxer
6) add the file writer and give the output a xxx.mp4 name
7) connect the splitters to the muxer
8) connect the muxer to the file writer and push play
9) enjoy your .mp4 file
(first time you do this it might be confusing, but once you figuered out how graphedit works, its fairly easy :) )
SeeMoreDigital
20th September 2004, 20:33
Hi hk,
Can you confirm which DivX B-VOP encoding method you used? As the "adaptive" method does not use packed bit-stream!
If you don't fancy using GraphEdit, you could use mp4UI. I've used it to mux the bulk of my Mpeg4/AAC encodes. Although it does not (yet) produce 100% compliant results. Even so, they all seem to work in both hardware and software players.
All you need to create muxes is for one of the streams to be in the MP4 container. Some time ago I made this How to... Use mp4UI Guide (http://SeeMoreDigital.net/05_How_to..._Files/How_to..._Use_MP4UI/MP4UI.html).
What's more, you can, use 3ivx splitter and muxer in GraphEdit, to re-mux the entire .MP4 file, and create an fully compliant file at a later time!
Cheers
hk
21st September 2004, 16:40
Hi everybody,
thank you all for your help. Now, once agian KPex soltution worked right away, although I canīt tell, wether BFrames are "fucked" (to use the moderator`s terminus) but at least: I got a result and thatīs fine!
Regarding Bondīs solution there are several problems:
- why would I need the splitter filters as my files are not muxed resp. in the same container? They are of formattype m4a and m4v! In other words: They are both x.mp4 files. Each consists either of audio or video, not both!
- if I open the files with files>render media files (as far as I know the only way to open two files in Graphedit at the same time) and if I try to connect both to the 3ivx muxer filter, a popup says "the connection is invalid, missing filters inbetween". However, which ones?
- connection between the muxer and the filewriter works fine.
So: What are the missing links (filters) here?
SeemoreDigital: I used Bframes and addaptive processing, but no QPEL and No GMC! Codec was DivX5.2pro, Divx Hometheaterprofile.
Since BeSweet encodes AC3 to mp4 (AAC), I canīt use MP4UI anymore, as it accepts only aac files as audio tracks.
To produce AAC Files, thereīs of course AACMachine, which works fine and there would be Nero. But Neroīs aac or mp4 audio files have this "Popping sound" despite me having unchecked "PNB" (or similar). So Iīm sort of bound to BeSweet, which furthermore has the Boost option, which is quite nice to adjust the volume of the ripped audiotracks.
The solution here would be, either that Markus makes mp4ui accepting mp4 files, or me getting ride of this popping sound problem in Nero inorder to make aac files with the "EXPORT ISO ... AAC track" option checked.
Any thoughts&ideas?
HK
For Bond only: Do you know this one:
- I know that I know nothing
- I know ...
or even better:
- I know that I know nothing ...
- Oh shut up, you know nothing AT ALL.
;)
SeeMoreDigital
21st September 2004, 16:59
Originally posted by hk
SeemoreDigital: I used Bframes and addaptive processing, but no QPEL and No GMC! Codec was DivX5.2pro, Divx Hometheaterprofile.Good... this means, at leased your encode isn't "fucked-up" with packed bit-stream ;)
Originally posted by hk
Since BeSweet encodes AC3 to mp4 (AAC), I canīt use MP4UI anymore, as it accepts only aac files as audio tracks.
To produce AAC Files, thereīs of course AACMachine, which works fine and there would be Nero. But Neroīs aac or mp4 audio files have this "Popping sound" despite me having unchecked "PNB" (or similar). So Iīm sort of bound to BeSweet, which furthermore has the Boost option, which is quite nice to adjust the volume of the ripped audiotracks.. This is not a problem with mp4UI.
mp4UI can open an AAC stream in MP4 - no problem at all. As long as it's imported first. Once this has been done, import your DivX Mpeg4 stream in AVI - there's no need to mux your Mpeg4 stream into MP4 before hand :D
I agree, it would be very useful if mp4UI was able to import more than just one MP4 file (either video or audio streams). It has been discussed with Markus
Cheers
Oh... How do you know you know nothing. If you know nothing?
hk
21st September 2004, 19:43
Hi Seemoredigital,
it worked .. so can I assume that in the newlyy created mp4 file, the video stream has b-frames and complies to the m4v standart? Iīm just wondering, because you said, itīs not a 100% compliant!
Regarding further processing in Graphedit: I opened the file created with MP4UI in GE and tried to link it with the 3ivx splitter and the pins didnīt agree to the connection (linking the muxer with the filewriter was again ok) Here the pin properties:
Pins on the mp4 file in graphedit:
- Video (out):
Major Type: Video - Sub Type: {E7D5085C-3752-4E4C-8CB2-A9086A4BD273} - Format: {E1C79847-41CF-4477-9087-12C879CC3D60}
Major Type: Video - Sub Type: {50AD890E-DC99-4B4C-803C-5254F5295F90} - Format: {E1C79847-41CF-4477-9087-12C879CC3D60}
- Audio (out):
Major Type: Audio - Sub Type: {2476CBD2-51B6-4593-B26F-637D90378FCA} - Format: WaveFormatEx: 48.000 KHz 16 bit stereo
Major Type: Audio - Sub Type: {EAC8E2A2-7DD0-421C-B344-EC112F7D98D8} - Format: WaveFormatEx: 48.000 KHz 16 bit stereo
Pin on 3ivX D4 media splitter (Input):
- Major Type: Stream - Sub Type: QTMovie - Format: GUID_NULL
Anyway, Iīm quite happy with the result, so far, but maybee you have another idea,
Best regards,
HK
-----------
AH, the two liners should be understood as DIALOGS, e.g.
Sokrates: I know that I know nothing
Sokrates mum: I know ...
on the second one, it was probably Socīs DAD (tired after work and a few pints intus)
:sly:
SeeMoreDigital
21st September 2004, 20:44
Originally posted by hk
...It worked .. so can I assume that in the newlyy created mp4 file, the video stream has b-frames and complies to the m4v standart? Iīm just wondering, because you said, itīs not a 100% compliant! Great!
I can't remember why mp4UI is unable to generate compliant encodes. To be honest I don't know whether it's a problem with mp4UI or the MPEG4IP 1.1 code it's based on. Maybe bond can help us out with this one?
Originally posted by hk
Regarding further processing in Graphedit: I opened the file created with MP4UI in GE and tried to link it with the 3ivx splitter and the pins didnīt agree to the connection (linking the muxer with the filewriter was again ok) Try building this graph: -
http://img63.exs.cx/img63/7315/Snap7.gif
Cheers
hk
21st September 2004, 22:45
well ... I couldnīt build it. because of the problems Iīve described earlier. Maybe itīs because mp4 files on my system are played back by Dicasī mpegable Filter and not by 3ivx.
However, I donīt know how to unregister mpegable and to make 3ivx the default for mpeg4 files. That maybe would help, although itīs quite unlikely.
So Iīm stuck on that, for tonight.
Regards,
HK
bond
22nd September 2004, 01:13
Originally posted by hk
- why would I need the splitter filters as my files are not muxed resp. in the same container? They are of formattype m4a and m4v! In other words: They are both x.mp4 files. Each consists either of audio or video, not both!you always need a splitter or parser filter no matter if the stream is inside a container or not
- if I open the files with files>render media files (as far as I know the only way to open two files in Graphedit at the same time) and if I try to connect both to the 3ivx muxer filter, a popup says "the connection is invalid, missing filters inbetween". However, which ones?you have to use the 3ivx splitter in between of course + i assume that it will not work if you use mpegable filters in the graph
Originally posted by SeeMoreDigital
I can't remember why mp4UI is unable to generate compliant encodes. To be honest I don't know whether it's a problem with mp4UI or the MPEG4IP 1.1 code it's based on.the mpeg4ip code (which mp4ui is using too) cant handle packed bitstreams as used by divx5 with 1 consecutive b-frames being set, because its not a bitstream defined by the mpeg-4 standard, meaning noone has to support it when aiming at working with mpeg-4 compliant streams
Originally posted by hk
I couldnīt build it. because of the problems Iīve described earlier. Maybe itīs because mp4 files on my system are played back by Dicasī mpegable Filter and not by 3ivx.well as i wrote above: dont use dicas filters in the graph
it has to be
file source (async) -> 3ivx splitter -> 3ivx muxer -> file writer
SeeMoreDigital
22nd September 2004, 09:53
Originally posted by bond
the mpeg4ip code (which mp4ui is using too) cant handle packed bitstreams as used by divx5 with 1 consecutive b-frames being set, because its not a bitstream defined by the mpeg-4 standard, meaning no one has to support it when aiming at working with mpeg-4 compliant streams Actually, I was not thinking about that particular MP4 compliancy issue (although it cant be mentioned enough).
If you remember, some months ago I was trying to create very 'simple profile' Mpeg4/AAC 'streaming' encodes that could be played using QuickTime (and for eventual streaming via QT enabled web browsers). But every time I created them using mp4UI, the QT player background would go white and the following error message would appear: -
http://img51.exs.cx/img51/363/SMD_QuickTime_errormessage.gif
If you also remember, this error would only appear if you "did not" have any 3ivx filters installed.
The problem could be solved by re-muxing the entire file in GraphEdit using 3ivx's filters. And could be checked by playing the re-muxed file on a PC without 3ivx installed.... nice and simple eh!
I suppose it could be a problem with QuickTime's player. As we all know it's not very advanced. But mp4UI did do something, somewhere, that QT did not like!
Cheers
hk
22nd September 2004, 10:24
Hi again,
Iīm one step further. If i use
- an AAC file created with AACMachine, LC, Quality normal
- and the Divx5.2pro Video file (without an audio), DivX hometheater profile
I can build the filter SEEmoreDigital posted. The muxed file I get though, plays much to quick, when played in WMP), RealPlayer10 (using envivio plugIn eg) and QT6 crashes.
The audio .mp4 file created with besweet, is not accepted by 3ivX splitter nor muxer.
So: one step forward, one back ;)
HK
yaz
22nd September 2004, 14:01
@hk
afais, you're doing it on the hardest way. iirc, u have (had?) two mp4 files, one with aac audio and other with divx video. before u do anything, try media player classic. it can handle mp4 files if an mp4 splitter (3ivx or so) is installed/registered.
1) check your mp4 files one by one by simply playing them in mpc (it has its own aac decoder, check it in 'options' or use ffdshow aac decoder) check what splitter/parser/decoder is used (find it in play/filters)
2) if the playback uses dicas (or whatever else than 3ivx) or does not work at all -> remove/uninstall all mp4 support and put back 3ivx only (goto 1 :-)
3) dub the files 'on the fly'. open the video file in mpc and dub the audio file on the open panel. mpc can handle 'anything' as audio dub, so your audio.mp4 will suffice. if both file is right u should have ... great pleasure :-) i mean, video and audio played in synch.
i check all my encodes this way before i mux and burn them. (i use xvid and aac)
4) now muxing ...
4.1.) do what bond described (if everything above is ok that will do the job)
4.2.) (just for fun) do what SMD suggested. that must work too, if both files are ok.
4.3.) (more fun) encode your audio again using nero in besweet. select your video.mp4 file as ouput and check 'mix audio into existing video .mp4 files' in nero setup (when it pops up) it worked when i tried with some short clips ...
4.4.) ... uhmm ... let's leave sg for later :-)
the bests
y
SeeMoreDigital
22nd September 2004, 14:20
Your situation reminds me of the one I had a few months ago when I started experimenting with GraphEdit. Try as I might I just could not get 3ivx (or any other filters for that matter) to read AAC streams in MP4.
Fortunately I have two WinXP boot drives. And when I tried GraphEdit on my other boot drive with 3ivX everything worked fine.
In the end, I simply put it down to conducting too many experiments with too many filters. So I formated my main boot drive and started again!
I'm currently experimenting with Nero's DSdec filters, so I don't have any of 3ivx filters installed on my main boot. 3ivX is installed on my other boot though...
Cheers
bond
22nd September 2004, 14:41
Originally posted by hk
- an AAC file created with AACMachine, LC, Quality normaltwo issues:
1) aacmachine doesnt output .mp4 but .aac files -> you have to mux them with mp4creator to .mp4. dont use the directshow aac parser filter in graphedit to mux .aac to .mp4 in graphedit directly! the aac parser is buggy
2) i dont remember it exactly, but there are some compliancy issues with aacmachine (a very old but still good quality encoder), i think regarding the header or so which can be solved with mp4creator i think (or was it with 5.1 streams? or both?)
you will surely find infos about this when you use search (which you should have done anyways before posting) either on doom9 or on hydrogenaudio.org
The muxed file I get though, plays much to quick, when played in WMP), RealPlayer10 (using envivio plugIn eg) and QT6 crashes.this sounds like the aac parser problem mentioned above
use search to find out more about this problem
The audio .mp4 file created with besweet, is not accepted by 3ivX splitter nor muxer.never heard of this problem...
can you play this besweet audio-only file in winamp or quicktime?
Originally posted by SeeMoreDigital
If you remember, some months ago I was trying to create very 'simple profile' Mpeg4/AAC 'streaming' encodes that could be played using QuickTime (and for eventual streaming via QT enabled web browsers). But every time I created them using mp4UI, the QT player background would go white and the following error message would appear: -
If you also remember, this error would only appear if you "did not" have any 3ivx filters installed.sounds like there is a problem with the 3ivx decoder (which gets used instead of the apple one in quicktime when 3ivx is installed)
hk
22nd September 2004, 16:36
I assume (similar to what SeemoreDigital said), that I had to many codecs installed.
So I uninstalled envivio TV plugin and Dicas mpegable filters and NOW:::
I can build all graphs with various audio format inputs and the playback issue is solved as well!
However thereīs still that I canīt encode in Nero using the progīs "encode file" option (crickle sound, yes with PNS unchecked). BeSweet works fine using neroīs dlls though.
So far: Thanks to everybody giving his advice!
Cheers,
HK
SeeMoreDigital
22nd September 2004, 16:45
Originally posted by hk
I assume (similar to what SeemoreDigital said), that I had to many codecs installed.
So I uninstalled envivio TV plugin and Dicas mpegable filters and NOW::: Jeez... that reminds me!
I installed Envivio TV, when some of us were experimenting with subtitles in MP4... damn... it was probably this causing my problems all the time!
Cheers
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.