as promised here’s the first testing version of the new MP4 mux filter I’m working on. First I’d like to say that this filter is not yet mature so you should really take it as that. So far I have only focused on H.264 and AAC support.

Basically you can use this filter to directly remux e.g. MKV files with H.264 and AAC streams but if you are using B-Frames the only way they are going to work properly is to use latest MONOGRAM x264 Encoder (currently unpublished 1.0.3.0 build can be found HERE). I would also recommend you to use MONOGRAM AAC Encoder (latest SVN build HERE) for audio encoding. To make a MP4 file connect the “File Writer” filter to the output of this mux filter.

I have started to work on support for x264vfw (via VFW DirectShow wrapper) but I still did not manage to make B-Frames work correctly with VFW.

As you wish Master. Welcome to my skype - winnydows - I send you all needed scripts. Also want chat about Winnydows Commander DAILY - media encoder and more. This version work with installed DirectShow filters. With yours also. Version not for public now. Only for video experts. Still a lot of work before public release.

Now that you’re back, any luck with getting the audio to play inside QuickTime player? It seems like your MP4 Muxer has an issue with audio in QT! It works fine in WMP or VLC player but not in QT! Just thought I let you know…

The muxer itself supports B-Frames but only with the X264 1.0.3.0 version which is not yet released to public. You can find it in the SVN repository if you want to play. At the moment my time for free projects is very limited

Yes. There is an updated version of the filter that also supports elementary H264 stream in the form of Annex-B access units. Drop me an email, I should be able to send you the latest version for testing.

Hi Igor! Wonderful work.
Is there anything that I need to know with the output pin if I want to connect the mux with a custom file writer? I tried it with the “Dump filter” from platform SDK, and I got the “No intermediate filters found” exception…

“File Writer” works just fine. I wanted to be able to write the video stream into a series of small-sized files in sequence seamlessly. So I created a file writer which was based on the “Dump Filter”. It is functional when I connect it to “MONOGRAM x264 Encoder” directly, however, it has trouble to connect to the mp4 muxer. The media type of input pin is “GUID_NULL”. Do you have any suggestions?

The difference between “Dump” and “File writer” is that dump simply writes data as it comes - timestamp values are interpreted as “time”. File writer interprets timestamps as byte position offsets in file and also exposes IStream interface on its input pin so the file can be randomly written to when a file is being closed. This way file headers at start might be properly updated once the file is finished.

Igor you rock!
I am using the mp4 filters to write files for ipod and they work nicely.
two questions:
1) The mux filter (0.9.3.0 alpha) will connect to the file writer but never writes to the file. I am using a diferant file write that works fine.
2) It would be nice if the mux would implement IMediaSeeking so that I can get progress on the conversion process.
Keep up the good work buddy!

I, too, am trying to capture a video stream into a series of small-sized files in sequence seamlessly. Ryan, were you able to get that to work? I’ve searched quite a bit but have been unable to find anything on how to create a custom file writer. I really don’t know where to start besides searching for the “Dump filter” and browsing code. I haven’t been able to find more than about 2 DirectShow books online with low ratings. Can someone please point me in the right direction or at least provide some sample code or something along those lines? Thank you so much!