PDA

View Full Version : MP4Muxer - A MP4 Multiplexer w/ Quicktime support - Version 0.9.3 released


crypto
5th June 2008, 23:12
MP4Muxer (mp4creatorGUI) is a new muxer tool for MPEG-4 based on mp4creator. It combines H264 video tracks and AAC/AC-3 audio tracks. Muxes are compatible with Quicktime, Apple TV, XBox and many others.

New in Version 0.9.3

The newest version 0.9.3 contains bug fixes and AC-3 audio track support.


New in Version 0.9.2

The newest version 0.9.2 contains bug fixes and a streamlined layout.
Use "Check for Updates..." from the Help menu.

New in Version 0.9.1

Version 0.9.1 is almost feature complete and adds features like chapter support, anamorphic resize, track deletion, drag-and-drop support and an update manager.

Features (mostly from mp4creator):

- create mpeg4 files from elementary streams (mp3, aac, mp4v, h263, h264 and .mpg files)
- hint mpeg1/2/4, h264, h264 video, mp3 audio (rfc 2250 and 3119), AMR and aac audio
- extract elementary streams from mp4 files (adding headers, if needed)
- create and/or encrypt files to the ISMA 1.0 specifiation
- create 3GPP files from H.263 and/or AMR files
- supports QT including edts/elst boxes (no more missing data size in video track)
- progress display
- anamorphic resize support - new
- chapter support including chapter editor - new
- drag-&-drop support - new
- includes GUI and CLI interfaces
- no installation required, just unpack zip

Enjoy!

http://www.dvbportal.de/images/screencap.png

Download Version 0.9.3 here (http://dvbportal.dyn1.de/download.php?file=mp4muxer-0.9.3.zip)

Project page: http://www.dvbportal.de/projects/mp4muxer (includes streaming samples: iPhone, desktop, Highdef, Apple TV)

SeeMoreDigital
6th June 2008, 01:01
Nice....... I'll start testing tomorrow....

Schrade
7th June 2008, 18:19
Can you add the chapter abilities into your GUI? Note: They require that the files use the extension .m4v to show up in Quicktime/on an iPhone or iPod Touch.

Oh, when loading a .mp4 file in to Demultiplex the button in the file dialog says "Save" instead of "Open"

crypto
7th June 2008, 18:56
Schrade:
Thanks for your test results. This is an early version. If users like it, I will add chapters and later, AC3 support. But these additions require extensions to the underlying mp4creator. There must be a certain user base for the tool to justify the effort.

Schrade
7th June 2008, 19:03
Schrade:
Thanks for your test results. This is an early version. If users like it, I will add chapters and later, AC3 support. But these additions require extensions to the underlying mp4creator. There must be a certain user base for the tool to justify the effort.

Uh, what? mp4creator already supports chapters... that's why I requested it.

crypto
7th June 2008, 19:09
Cool. What version? I did built it from the trunk and couldn't find any options for chapters.

Schrade
8th June 2008, 06:59
Cool. What version? I did built it from the trunk and couldn't find any options for chapters.

Thread is here: http://forum.doom9.org/showthread.php?t=131095

crypto
8th June 2008, 09:09
Ahh thanks, that patch is already in the queue for anamorphic support. Too bad, that there is no maintainer for mpeg4ip anymore. There is also a patch at sourceforge (http://sourceforge.net/forum/forum.php?thread_id=1837284&forum_id=59136) that seems interesting. I hope, I am getting it all together.

bond
8th June 2008, 11:13
crypto, is your tool a gui or did you also make modifications to the mp4creator source

if the later, which ones, and is there any chance to get them into the official mp4creator sources to avoid forks?

Ritsuka
8th June 2008, 13:58
The transformation matrix it's not the best thing to use for anamorphic in quicktime, as it will broke if/when quicktime player will start reading par from the video stream (iTunes already does it on Mac OS X, but don't know about the windows version).

refulgentis
13th June 2008, 22:09
Any chance you can get this for Mac? I know its probably an insane pipe dream...but just in case...:-D

crypto
14th June 2008, 16:50
Sorry. I have currently no Mac development machine. The CLI part however should compile on Mac.

Ranguvar
16th June 2008, 03:50
If you could update mp4creator to the latest CVS (also found in HandBrake 0.9.2's source), which allows input of AC3 audio (so that the 360 and PS3 can play MP4's with compatible audio and then an AC3 track; gdsmux.exe doesn't work properly), you would be the king. :p

refulgentis
16th June 2008, 06:18
If you could update mp4creator to the latest CVS (also found in HandBrake 0.9.2's source), which allows input of AC3 audio (so that the 360 and PS3 can play MP4's with compatible audio and then an AC3 track; gdsmux.exe doesn't work properly), you would be the king. :p
I don't think its quite that easy, Handbrake actually modifies libmp4v2 or whatever mp4creator's library is called, not MP4Creator itself

crypto
16th June 2008, 07:20
I don't think its quite that easy, Handbrake actually modifies libmp4v2 or whatever mp4creator's library is called, not MP4Creator itself

Exactly, and they use an older branch as base. But hey, I am planning to bring all the features to MP4Muxer/mp4creator (sooner or later):

- Chapters
- AC3 tracks
- Anamorphic transformation at container level

Ranguvar
16th June 2008, 11:23
Excellent. But the HandBrake people told me the changes were backported?

bond
18th June 2008, 20:02
official specs for ac3 in mp4 are coming this summer. please no private hacks

crypto
18th June 2008, 21:53
Very interesting. I will wait for that.

crypto
3rd July 2008, 22:20
Version 0.9.1 has been released. See the first post for details.

CruNcher
7th July 2008, 06:24
Perfect, finaly someone who takes the full Power of Mp4Creator into one simple Gui :) (much more interoperable then this bad Mp4box) with many Devices especialy when you want todo real interoperable stuff like playing back via web and the same time be able to playback with correct AR on the PSP for example. And i dont even wan't to talk about how much better it uses resources on Win32 compared to Mp4Box :P
Thx Crypto

Btw is Mp4Creator still developed?? i thought the Cisco guys stoped development, where to find the current in develop source (still on sourceforge mpeg4ip ?)

crypto
25th July 2008, 08:20
..Btw is Mp4Creator still developed?? i thought the Cisco guys stoped development, where to find the current in develop source (still on sourceforge mpeg4ip ?)
MP4Creator is still being developed and has a new home at sourceforge (http://mp4creator.sourceforge.net).

gwaitsi
25th July 2008, 20:30
subtitle support?
ogg chapter support?

crypto
26th July 2008, 09:02
> subtitle support?
I didn't think about that. Do you have a sample? Which players can display subtitles?

> ogg chapter support?
as an import format for chapters? Should be possible. Do you have a sample?

musicman2311
28th July 2008, 21:35
Dear Crypto,
congratulations to this great tool which I just started to use.

What I tend to do is generate h264 for AppleTV with MeGui,
mux it with your tool to *.mp4 and then import to quicktime to mux that one with the ac3 stream to generate a *.mov for AppleTV with 5.1 sound.

I usually code video at 4.2 Mbit/sec and leave audio AC3 at 640kbit/sec. with a 2.5h movie that results into a file of over 4 Gbyte (video only).

my observation is, that once I import that file to quicktime, quicktime does not recognize the file size. hence i cannot export or store the movie from there.

I had converted a file resulting in a 5.5 Gbyte *.mov with another method and quicktime worked well.

Can it be that there is a file size limitation for MP4 Multiplexer?

thanks

awx
29th July 2008, 15:03
Here's an ogg chapter sample:
CHAPTER01=00:00:00.000
CHAPTER01NAME=Chapter 1
CHAPTER02=00:06:49.500
CHAPTER02NAME=Chapter 2
CHAPTER03=00:10:58.500
CHAPTER03NAME=Chapter 3
CHAPTER04=00:13:23.833
CHAPTER04NAME=Chapter 4
CHAPTER05=00:17:51.333
CHAPTER05NAME=Chapter 5
CHAPTER06=00:21:01.500
CHAPTER06NAME=Chapter 6
CHAPTER07=00:23:20.000
CHAPTER07NAME=Chapter 7
CHAPTER08=00:29:47.500
CHAPTER08NAME=Chapter 8

SeeMoreDigital
29th July 2008, 15:44
With OGG style chapters, it's also possible to create chapter names, like this: -

CHAPTER01=00:00:00.000
CHAPTER01NAME=The Beginning
CHAPTER02=00:00:05.640
CHAPTER02NAME=Four Wise Men
CHAPTER03=00:00:09.040
CHAPTER03NAME=Obi-Wan and Anakin 01
CHAPTER04=00:00:12.880
CHAPTER04NAME=Yoda 01
CHAPTER05=00:00:14.440
CHAPTER05NAME=Obi-Wan and Anakin 02
CHAPTER06=00:00:17.360
CHAPTER06NAME=Mace Windu 01
CHAPTER07=00:00:18.400
CHAPTER07NAME=Anakin 01
CHAPTER08=00:00:20.960
CHAPTER08NAME=Mace Windu 02
CHAPTER09=00:00:26.640
CHAPTER09NAME=Anakin 02
CHAPTER10=00:00:31.920
CHAPTER10NAME=Mace Windu 03
CHAPTER11=00:00:34.600
CHAPTER11NAME=Yoda 02
CHAPTER12=00:00:41.040
CHAPTER12NAME=Obi-Wan and Anakin 03

> subtitle support?
I didn't think about that. Do you have a sample? Which players can display subtitles?As far as I'm aware, only few software players support the official MPEG-4 specification subtitle format (ie: TTXT). With hardware players, TTXT support is non existent.

DVD style VOBsubs can also be placed within the .MP4 container. Which are supported by NeroDigital certified devices...


Cheers

crypto
29th July 2008, 22:26
...
I usually code video at 4.2 Mbit/sec and leave audio AC3 at 640kbit/sec. with a 2.5h movie that results into a file of over 4 Gbyte (video only).

my observation is, that once I import that file to quicktime, quicktime does not recognize the file size. hence i cannot export or store the movie from there.
I thought there is a 4 GB limit. But Apple is removing limits with every new version. So this 4 GB limit may not exist anymore with Quicktime 7.7.

I would try the 64 Bit Addressing checkbox to do the mux.

BTW. How do you load the AC3 track in QT? This is one of the open points of the current mp4muxer. Have you installed an additional AC3 codec for QuickTime, or do you go the lossless wav method?

Edit: I just checked it. The AC3 Track muxes perfect, even when QT complains about a missing codec. When playing on AppleTV, the AC3 track is selected and plays perfectly.

crypto
29th July 2008, 22:32
Here's an ogg chapter sample:
CHAPTER01=00:00:00.000
CHAPTER01NAME=Chapter 1
CHAPTER02=00:06:49.500
CHAPTER02NAME=Chapter 2
CHAPTER03=00:10:58.500
CHAPTER03NAME=Chapter 3
CHAPTER04=00:13:23.833
CHAPTER04NAME=Chapter 4
CHAPTER05=00:17:51.333
CHAPTER05NAME=Chapter 5
CHAPTER06=00:21:01.500
CHAPTER06NAME=Chapter 6
CHAPTER07=00:23:20.000
CHAPTER07NAME=Chapter 7
CHAPTER08=00:29:47.500
CHAPTER08NAME=Chapter 8

Ah, that's exactly the format mp4muxer is using. The chapter file should be stored with the extension *.chap. Click on the Chapters tab, then import, and then select the chapter file. Then click Multiplex.

So some

crypto
29th July 2008, 22:37
With OGG style chapters, it's also possible to create chapter names, like this: -

SeeMoreDigital, your sample works too.

As far as I'm aware, only few software players support the official MPEG-4 specification subtitle format (ie: TTXT). With hardware players, TTXT support is non existent.

DVD style VOBsubs can also be placed within the .MP4 container. Which are supported by NeroDigital certified devices...


Cheers
That's what I thought. But maybe there are new developments. MP4 is currently getting a lot of attention.

Sharktooth
30th July 2008, 02:53
the only major thing it lacks is TTXT subtitles support. even if it is not officially supported by hardware players it's in the specs.
if you want samples, get the very latest subrip and create as many TTXT subtitles you want.
or just get this small sample: http://www.webalice.it/f.corriga/temp/VTS_01_1.Italian_forced.ttxt
this is the equivalent srt: http://www.webalice.it/f.corriga/temp/VTS_01_1.Italian_forced.srt
the ttxt was manually cleaned from the "skipped items", i hope i didnt make a mess.

Ranguvar
30th July 2008, 03:26
I'm getting lots of errors telling me that values over 100 (increasing each time I say OK) are not allowed. By looking at the info, it appears that MP4Muxer is giving a value of over 100 to the progress bar.

Also, MediaInfo reports variable framerate from 23.974 to 23.981fps, which is worrisome. Variable framerate is not selected. This does not happen with MP4Box-muxed files.

My only feature requests are importing attachments, and importing audio and video streams already in MP4s without first demuxing them, but I suppose those would better be directed at mp4creator.

Thanks for the great work!

crypto
30th July 2008, 23:22
the only major thing it lacks is TTXT subtitles support. even if it is not officially supported by hardware players it's in the specs.
if you want samples, get the very latest subrip and create as many TTXT subtitles you want...
Thanks for the samples.

crypto
30th July 2008, 23:24
I'm getting lots of errors telling me that values over 100 (increasing each time I say OK) are not allowed. By looking at the info, it appears that MP4Muxer is giving a value of over 100 to the progress bar.
Ok, I will look at that. But that means that the elementary stream is larger as the final mux. Very strange.

Also, MediaInfo reports variable framerate from 23.974 to 23.981fps, which is worrisome. Variable framerate is not selected. This does not happen with MP4Box-muxed files. I have no idea about that. Do the mp4s play ok?


My only feature requests are importing attachments, and importing audio and video streams already in MP4s without first demuxing them, but I suppose those would better be directed at mp4creator.

Thanks for the great work!
Attachment support won't happen too soon.
Demuxing before muxing could also be handled by the frontend, but that would not save time.

Ranguvar
31st July 2008, 00:59
I have no idea about that. Do the mp4s play ok? They do play fine, as far as I can tell without doing extensive testing, but it's still worrying :p

refulgentis
31st July 2008, 05:04
With OGG style chapters, it's also possible to create chapter names, like this: -

CHAPTER01=00:00:00.000
CHAPTER01NAME=The Beginning
CHAPTER02=00:00:05.640
CHAPTER02NAME=Four Wise Men
CHAPTER03=00:00:09.040
CHAPTER03NAME=Obi-Wan and Anakin 01
CHAPTER04=00:00:12.880
CHAPTER04NAME=Yoda 01
CHAPTER05=00:00:14.440
CHAPTER05NAME=Obi-Wan and Anakin 02
CHAPTER06=00:00:17.360
CHAPTER06NAME=Mace Windu 01
CHAPTER07=00:00:18.400
CHAPTER07NAME=Anakin 01
CHAPTER08=00:00:20.960
CHAPTER08NAME=Mace Windu 02
CHAPTER09=00:00:26.640
CHAPTER09NAME=Anakin 02
CHAPTER10=00:00:31.920
CHAPTER10NAME=Mace Windu 03
CHAPTER11=00:00:34.600
CHAPTER11NAME=Yoda 02
CHAPTER12=00:00:41.040
CHAPTER12NAME=Obi-Wan and Anakin 03

As far as I'm aware, only few software players support the official MPEG-4 specification subtitle format (ie: TTXT). With hardware players, TTXT support is non existent.

DVD style VOBsubs can also be placed within the .MP4 container. Which are supported by NeroDigital certified devices...


Cheers
in a backwards way, iPhone/iPods do support ttxt (as does Quicktime and iTunes)

http://forum.handbrake.fr/viewtopic.php?f=14&t=5520&p=31252#p31252
"soft subtitles" can be enabled this way. very simple process in actuality.

NorthPole
31st July 2008, 23:39
@crypto

Thanks for the excellent work on a mp4 muxer that uses mp4creator. I had one feature request...

I already have muxed mp4s that play with the correct aspect ratio with mpc but not with quicktime/ipod.

Is there anyway to have your program accept a mp4 as input and remux it with the correct quicktime/ipod display info.

Thanks.

Sagekilla
1st August 2008, 11:12
Hi, I tried using your tool to mux a file and it ended up crashing on me. If it helps any, the movie I was muxing was roughly ~220k frames long (Superbad) and it slowed down on the muxing as it approached the EOF (1.6 GB of 1.8 GB muxed and it came to a grinding halt.


See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentOutOfRangeException: Value of '101' is not valid for 'Value'. 'Value' should be between 'minimum' and 'maximum'.
Parameter name: Value
at System.Windows.Forms.ProgressBar.set_Value(Int32 value)
at System.Windows.Forms.ToolStripProgressBar.set_Value(Int32 value)
at mp4muxer.frmMain.timer1_Tick(Object sender, EventArgs e)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///D:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
mp4muxer
Assembly Version: 0.9.1.0
Win32 Version: 0.9.1.0
CodeBase: file:///G:/Movies/300_HD/mp4muxer.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///D:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///D:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///D:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Accessibility
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///D:/WINDOWS/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///D:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///D:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

BucksSaddler
1st August 2008, 11:30
BTW. How do you load the AC3 track in QT? This is one of the open points of the current mp4muxer. Have you installed an additional AC3 codec for QuickTime, or do you go the lossless wav method?

Edit: I just checked it. The AC3 Track muxes perfect, even when QT complains about a missing codec. When playing on AppleTV, the AC3 track is selected and plays perfectly.

Hi,
Been using your great app for a while. Can you tell me how you got the AC3 track to play through your Apple TV? I've muxed an 264 stream with the app, then tried adding the AC3 track via Quicktime and saving as a Mov, but no joy. I've even tried the specific Quicktime format required by Apple to play AC3 in a file (AAC first track enabled, AC3 second track disabled) but still no luck.

Thanks

refulgentis
1st August 2008, 14:35
Hi,
Been using your great app for a while. Can you tell me how you got the AC3 track to play through your Apple TV? I've muxed an 264 stream with the app, then tried adding the AC3 track via Quicktime and saving as a Mov, but no joy. I've even tried the specific Quicktime format required by Apple to play AC3 in a file (AAC first track enabled, AC3 second track disabled) but still no luck.

Thanks
That's really strange, the AC3 track is definitely there right? And your Apple TV is connected to a receiver via optical?

Oleg Rode
1st August 2008, 20:26
Hello to all and sorry for my English
I got a problem with this program. So, what we have:
1. I got a mp4 videofile, which contains x264 High@5.1 variable framerate videostream and aac audiostream. The videostream in the first part got framerate 29.97, then 23.976
2. I need to force High@4.1 profile for this videostream (yep, PlayStation 3 fix)
3. I demux this videostream and change extension from *.t1 to *.264. So, I got a videostream.
4. I demux audiostream and change extension from *.t2 to *.aac. So, I got an audiostream
5. I need to mux videostream to mp4 container. I press "Add" button and select my videostream.
6. So I check "variable framerate" option, set "h264 Profile" option to 41 and leave "Framerate" untouched (default is 25)
7. I press Multiplex button and here we go...
8. The mp4 file have been created, but... The profile of videostream is still High@5.1 and no playback on PS3... There is a string in the "advanced" tag: Error decoding sei message
9. OK. Lets leave it for now. I mux an audiostream to mp4 file (add audiostream and press Multiplex again)
10. So, I got a mp4 file, but let's play it... Well, the video goes slow and not syncronized to audio...
11. OK. Let's set "Framerate" option to 29.97 (see step #6) and do it again... Bad luck - video is syncronised in the begining (part with 29.97 framerate), but NOT syncronized after a while (23.976 part)...
So, there are questions:
- How to force High@4.1 profile?
- How to work with variable framerate streams?
- Is it possible to force High@4.1 profile in videostream without demuxing it from mp4 container?

crypto
2nd August 2008, 22:40
Hi, I tried using your tool to mux a file and it ended up crashing on me. If it helps any, the movie I was muxing was roughly ~220k frames long (Superbad) and it slowed down on the muxing as it approached the EOF (1.6 GB of 1.8 GB muxed and it came to a grinding halt...
Yes, that needs a fix. Ranguvar has also expierienced that problem.

crypto
2nd August 2008, 23:06
Hello to all and sorry for my English
I got a problem with this program. So, what we have:
1. I got a mp4 videofile, which contains x264 High@5.1 variable framerate videostream and aac audiostream. The videostream in the first part got framerate 29.97, then 23.976
2. I need to force High@4.1 profile for this videostream (yep, PlayStation 3 fix)
3. I demux this videostream and change extension from *.t1 to *.264. So, I got a videostream.
4. I demux audiostream and change extension from *.t2 to *.aac. So, I got an audiostream
5. I need to mux videostream to mp4 container. I press "Add" button and select my videostream.
6. So I check "variable framerate" option, set "h264 Profile" option to 41 and leave "Framerate" untouched (default is 25)
7. I press Multiplex button and here we go...
8. The mp4 file have been created, but... The profile of videostream is still High@5.1 and no playback on PS3... There is a string in the "advanced" tag: Error decoding sei message
9. OK. Lets leave it for now. I mux an audiostream to mp4 file (add audiostream and press Multiplex again)
10. So, I got a mp4 file, but let's play it... Well, the video goes slow and not syncronized to audio...
11. OK. Let's set "Framerate" option to 29.97 (see step #6) and do it again... Bad luck - video is syncronised in the begining (part with 29.97 framerate), but NOT syncronized after a while (23.976 part)...
So, there are questions:
- How to force High@4.1 profile?
- How to work with variable framerate streams?
- Is it possible to force High@4.1 profile in videostream without demuxing it from mp4 container?

VFR)
I think in your case you need to tell which frames use what frame rate. I haven't tried, but create a timecode file and look for a util called tcmp4, the call: tc2mp4 -i myCFRvid.mp4 -t timecode.txt -o myVFRvid.mp4

L5.1)
There are level indications on container an stream level. Maybe PS3 is only using the stream indication. Maybe mp4info can help

Error decoding sei message)
That error can be ignored. SEI messages are not required by the decoding process.

SeeMoreDigital
3rd August 2008, 11:09
Hi Crypto,

Is there any particular reason why you placed the "File Destination" box at the top of the GUI and not at the bottom?

Here's a cheeky suggestion: -

http://i38.tinypic.com/1s1d07.png


Cheers

Oleg Rode
3rd August 2008, 20:23
VFR)
I think in your case you need to tell which frames use what frame rate. I haven't tried, but create a timecode file and look for a util called tcmp4, the call: tc2mp4 -i myCFRvid.mp4 -t timecode.txt -o myVFRvid.mp4

OK. But how can I extract timecode data from mp4? I only found this thread about timecode.
http://forum.doom9.org/showthread.php?t=112199&
But it looks like another "MPEG 2 to AVC encoding with VFR"
There are level indications on container an stream level. Maybe PS3 is only using the stream indication. Maybe mp4info can help
mp4info can only print mp4 container data, not change. I tried to fix it with a HexEditor, but PS3 doesn't want to play this file anyway. So, I need to fix a stream

SeeMoreDigital
3rd August 2008, 20:46
Hi Oleg,

TSmuxerGUI allows you to import elementary .h264 streams and alter their profile prior to muxing into the .TS or .M2TS container.

You can then use TSmuxerGUI again to de-mux the "altered" .h264 stream.

Oleg Rode
3rd August 2008, 21:00
Hi Oleg,

TSmuxerGUI allows you to import elementary .h264 streams and alter their profile prior to muxing into the .TS or .M2TS container.

You can then use TSmuxerGUI again to de-mux the "altered" .h264 stream.
Yes, but tsMuxer + tsMuxer GUI does NOT support VFR. :(
So, I will receive a CFR stream.

Anyway it is a good idea to use h264info. But how can I mux a VFR stream back to container?

crypto
4th August 2008, 19:56
Hi SeeMoreDigital,

thanks for the suggestions. In the original design the mp4 file entry is on top as for some workflows it is the starting point, i.e. adding a track. But I see your point. I think about it. Also thanks for your label corrections.

NorthPole
4th August 2008, 20:33
@crypto

I noticed that after I set the quicktime aspect ratios using mp4muxer, my mp4s play with the correct aspect ratio in quicktime but not in itunes. They all play correctly on my iPod nano and with mpc.

The mp4 was originally generated with handbrake\x264. I demuxed them with your tool and remuxed using 853 x 480 for wide (16:9) and 640 x 480 for ntsc (tv, 4:3) as aspect ratios.

here is a stitched together screen shot of the file info from itunes.

http://img513.imageshack.us/img513/412/itunesinfotj6.th.jpg (http://img513.imageshack.us/my.php?image=itunesinfotj6.jpg)

Sorry about the crappy image hosting!

Also here is the avinaptic info for the files

************MP4MUXER TEST WIDE SCREEN************

[ About file ]

Name: MP4muxer test wide screen.mp4
Date: 4/08/2008 13:31:54
Size: 61,914,468 bytes (59.046 MB)

[ Video track ]

Codec: avc1
Resolution: 704 x 480
Frame aspect ratio: 22:15 = 1.466666
Pixel aspect ratio: 1:1 = 1
Display aspect ratio: 22:15 = 1.466666
Framerate: 23.976000 fps
Number of frames: 7247
Bitrate: 1476.126893 kbps

[ About H.264 encoding ]

SPS id: 0
Profile: Baseline@L3
Num ref frames: 1
Aspect ratio: Custom pixel shape (853:704 = 1.211647)
Chroma format idc: YUV 4:2:0
PPS id: 0 (SPS: 0)
Entropy coding type: CAVLC
Weighted prediction: No
Weighted bipred idc: No
8x8dct: No

************HANDBRAKE TEST WIDE SCREEN************

[ About file ]

Name: Handbrake test wide screen.mp4
Date: 2/08/2008 00:21:55
Size: 61,886,984 bytes (59.02 MB)

[ Video track ]

Codec: avc1
Resolution: 704 x 480
Frame aspect ratio: 22:15 = 1.466666
Pixel aspect ratio: 853:704 = 1.211647
Display aspect ratio: 853:480 = 1.777083 (~16:9)
Framerate: 23.976025 fps
Number of frames: 7247
Bitrate: 1476.142632 kbps

[ About H.264 encoding ]

SPS id: 0
Profile: Baseline@L3
Num ref frames: 1
Aspect ratio: Custom pixel shape (853:704 = 1.211647)
Chroma format idc: YUV 4:2:0
PPS id: 0 (SPS: 0)
Entropy coding type: CAVLC
Weighted prediction: No
Weighted bipred idc: No
8x8dct: No

************MP4MUXER TEST NTSC SCREEN************

[ About file ]

Name: MP4muxer test ntsc screen.mp4
Date: 4/08/2008 13:31:12
Size: 11,073,578 bytes (10.561 MB)

[ Video track ]

Codec: avc1
Resolution: 704 x 480
Frame aspect ratio: 22:15 = 1.466666
Pixel aspect ratio: 1:1 = 1
Display aspect ratio: 22:15 = 1.466666
Framerate: 23.976000 fps
Number of frames: 1279
Bitrate: 1497.886275 kbps

[ About H.264 encoding ]

SPS id: 0
Profile: Baseline@L3
Num ref frames: 1
Aspect ratio: 10:11 (4:3 NTSC pixel shape)
Chroma format idc: YUV 4:2:0
PPS id: 0 (SPS: 0)
Entropy coding type: CAVLC
Weighted prediction: No
Weighted bipred idc: No
8x8dct: No

************HANDBRAKE TEST WIDE SCREEN************

[ About file ]

Name: Handbrake test ntsc screen.mp4
Date: 2/08/2008 00:08:26
Size: 11,069,620 bytes (10.557 MB)

[ Video track ]

Codec: avc1
Resolution: 704 x 480
Frame aspect ratio: 22:15 = 1.466666
Pixel aspect ratio: 10:11 = 0.909090
Display aspect ratio: 4:3 = 1.333333
Framerate: 23.976033 fps
Number of frames: 1279
Bitrate: 1497.968724 kbps

[ About H.264 encoding ]

SPS id: 0
Profile: Baseline@L3
Num ref frames: 1
Aspect ratio: 10:11 (4:3 NTSC pixel shape)
Chroma format idc: YUV 4:2:0
PPS id: 0 (SPS: 0)
Entropy coding type: CAVLC
Weighted prediction: No
Weighted bipred idc: No
8x8dct: No

Looks like maybe mpc and my ipod only looks at the pixel shape and frame size info of the h264 stream to determine the playback size.

Also, it looks like maybe itunes looks at the h264 stream info plus the container info plus the newly added quicktime aspect atom to determine the playback size.

And finally, quicktime does something different then all the rest to determine the playback size.

crypto
9th August 2008, 23:36
Version 0.9.2 is out. All reported bugs should be fixed. I also applied most suggestions from SeeMoreDigital.


Use "Check for Updates..." from the Help menu or see the first post for an updated link.

SeeMoreDigital
10th August 2008, 10:53
Hi Crypto,

Just found a couple of typo's: -

http://i33.tinypic.com/2zdqauo.png

Adjusting the video size (the equivalent of QT7's "scaled size" transformation setting) is working very well ;)

crypto
10th August 2008, 11:44
Hi SeeMoreDigital,

Thanks for your input and your layout suggestions. The GUI is now much cleaner. I will correct the typos soon. In the mean time the combo boxes allow a manual override.

The next major step will be AC3 in MP4.

SeeMoreDigital
10th August 2008, 12:53
Thanks for your input and your layout suggestions. The GUI is now much cleaner. I will correct the typos soon. In the mean time the combo boxes allow a manual override.My pleasure.

The next major step will be AC3 in MP4.I must admit I'm really looking forward to this. Currently there seem to be three viable muxing options (suitable for playback in hardware devices). The QuickTime player way, NeroDigital's way (which works very well with my Ziova CS615) and the soon to be release MPEG-4 spec compliant way....

EDIT: Here's a link to Bonds most recent post regarding AC3 in .MP4 (http://forum.doom9.org/showthread.php?p=1168961#post1168961)

Anyway here's a GUI proposal for you to ponder: -

http://i36.tinypic.com/xdc80n.jpg


Cheers

NorthPole
12th August 2008, 15:33
@crypto

Thanks for the update... I like the changes in the GUI.

FYI, still have different display sizes for anamorphic video in quicktime vs. itunes.

If i mux a anamorphic (16x9) h264 video and aac audio stream with yamb/mp4box, it plays correctly in quicktime, itunes and mpc.

If i mux the same streams with mp4muxer and add the quicktime size switches of 853 x 480, it plays correct in quicktime and mpc but plays at 1034 x 480 in itunes.

If i don't use the quicktime switches it plays correctly in itunes and mpc but plays at 704 x 480 in quicktime.

crypto
12th August 2008, 17:24
Hi NorthPole,

I see the problem. iTunes seems to honor both stream and container level signalling. Can you upload a sample? In my tests, I hadn't such an effect.

NorthPole
14th August 2008, 21:32
@crypto

here is a 30 second sample avc mp4 muxed with mp4muxer using a video size of 853 x 480. http://www.mediafire.com/?mmtyb3xz3vl

NorthPole
14th August 2008, 21:46
@crypto

I used the ogg style chapter format to add quicktime chapters to a mp4. When I go back and demux the mp4, I don't seem to be able to get it back out in a usable format. Should I be doing something differently?

input format:
CHAPTER01=00:00:00.000
CHAPTER01NAME=Chapter 1
CHAPTER02=00:01:00.000
CHAPTER02NAME=Chapter 2
CHAPTER03=00:02:00.000
CHAPTER03NAME=Chapter 3
CHAPTER04=00:03:00.000
CHAPTER04NAME=Chapter 4

crypto
14th August 2008, 23:51
@crypto

here is a 30 second sample avc mp4 muxed with mp4muxer using a video size of 853 x 480. http://www.mediafire.com/?mmtyb3xz3vl

Thanks, I can reproduce the wrong size in iTunes. I'll see what I can do about that.

crypto
14th August 2008, 23:53
@crypto

I used the ogg style chapter format to add quicktime chapters to a mp4. When I go back and demux the mp4, I don't seem to be able to get it back out in a usable format...
That's not possible atm. You should export the chapters from the chapter editor for later use.

gwaitsi
23rd August 2008, 08:08
hmm..... chapter files don't work as OGG chapters.

When played through videolan they show as a subtitle

gwaitsi
23rd August 2008, 08:44
Get the following error after the first video track is muxed. selecting continue seems to

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.FileNotFoundException: Could not find file 'D:\DVDs\13thwarrior\ISO_13th_Warrior.mp4'.
File name: 'D:\DVDs\13thwarrior\ISO_13th_Warrior.mp4'
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileInfo.get_Length()
at mp4muxer.frmMain.timer1_Tick(Object sender, EventArgs e)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1434 (REDBITS.050727-1400)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
mp4muxer
Assembly Version: 0.9.2.0
Win32 Version: 0.9.2.0
CodeBase: file:///C:/temp/mp4muxer.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1434 (REDBITS.050727-1400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1434 (REDBITS.050727-1400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1434 (REDBITS.050727-1400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Accessibility
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1434 (REDBITS.050727-1400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1434 (REDBITS.050727-1400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1434 (REDBITS.050727-1400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

crypto
23rd August 2008, 11:13
@gwaitsi
Thanks for the info. I'll fix that in the next version.

hmm..... chapter files don't work as OGG chapters.

When played through videolan they show as a subtitle
The chapter info used by Apple is in fact a text substream. So it might be interpreted as a subtitle by other players. I have no idea how to stop that. Sorry.

Oleg Rode
24th August 2008, 19:12
OK. But how can I extract timecode data from mp4?
Well, The problem was solved. I know, that this info does not belongs to MP4 Multiplexer. But I hope it will be usefull someday for someone...
What do we need:
1. AviSynth
2. FFmpegSource plugin for AviSynth
Next, we need AVS script
FFmpegSource("<VFR file>.mp4", timecodes="<timecode file>.txt")
Open this scrypt in VirtualDUB or Media Player Classic and... the timecode file will be created in destinated folder!
Example of use:
FFmpegSource("C:\vfrmovie.mp4", timecodes="c:\timecodes01.txt")

Ritsuka
24th August 2008, 19:19
@crypto

Thanks for the update... I like the changes in the GUI.

FYI, still have different display sizes for anamorphic video in quicktime vs. itunes.

If i mux a anamorphic (16x9) h264 video and aac audio stream with yamb/mp4box, it plays correctly in quicktime, itunes and mpc.

If i mux the same streams with mp4muxer and add the quicktime size switches of 853 x 480, it plays correct in quicktime and mpc but plays at 1034 x 480 in itunes.

If i don't use the quicktime switches it plays correctly in itunes and mpc but plays at 704 x 480 in quicktime.

Anamorphic in QuickTime is traditionally done by setting the right width of the track in the tkhd atom.
QuickTime 7.1 introduced a new quicktime api to specified an aperture mode ( http://developer.apple.com/documentation/QuickTime/Conceptual/QT7-1_Update_Guide/Content/2NewFeaturesChangesa.html#//apple_ref/doc/uid/TP40003543-NewFeaturesChangesandEnhancementsinQuickTime71-SW3 ) , but this api is not used by every applications, for example quicktime player does not automatically enable the Clean aperture mode for mp4.
This new api uses the value stored in the pasp atom to calculate the width of the track, and in the end it just modified the value in the tkhd atom.

In HandBrake we ended adding a pasp atom to every video sample description (because quicktime only generates one for h.264 video, and only if it uses the standard apple h.264 decoder) and setting the right width for the track.

This methods works on every iPod, iPhone, AppleTV, QuickTime, iTunes, and with every player that ignores par in the mp4 container and read the par directly from the video stream. And it's what Apple uses for their anamorphic movie from the iTunes Store.

Sorry for my english, but it's not my native language :) Hopefully I made myself clear.

refulgentis
25th August 2008, 07:43
Anamorphic in QuickTime is traditionally done by setting the right width of the track in the tkhd atom.
QuickTime 7.1 introduced a new quicktime api to specified an aperture mode ( http://developer.apple.com/documentation/QuickTime/Conceptual/QT7-1_Update_Guide/Content/2NewFeaturesChangesa.html#//apple_ref/doc/uid/TP40003543-NewFeaturesChangesandEnhancementsinQuickTime71-SW3 ) , but this api is not used by every applications, for example quicktime player does not automatically enable the Clean aperture mode for mp4.
This new api uses the value stored in the pasp atom to calculate the width of the track, and in the end it just modified the value in the tkhd atom.

In HandBrake we ended adding a pasp atom to every video sample description (because quicktime only generates one for h.264 video, and only if it uses the standard apple h.264 decoder) and setting the right width for the track.

This methods works on every iPod, iPhone, AppleTV, QuickTime, iTunes, and with every player that ignores par in the mp4 container and read the par directly from the video stream. And it's what Apple uses for their anamorphic movie from the iTunes Store.

Sorry for my english, but it's not my native language :) Hopefully I made myself clear.Perfectly clear. If it wasn't for the last sentence, I wouldn't have even known. :)

crypto
25th August 2008, 20:34
@Ritsuka
Oh, many thanks for the insight. I'll check for the pasp atom.

crypto
26th September 2008, 21:16
A new version of mp4muxer is on its way. It will finally support AC-3 in MPEG-4 and a stream analyzer. Nothing new PASP atom wise though, that will follow next.

http://www.dvbportal.de/files/mp4muxer-analyzer.png

The new version is not yet on appcast. If you want to test it early, let me know.

NorthPole
1st October 2008, 19:28
A new version of mp4muxer is on its way. It will finally support AC-3 in MPEG-4 and a stream analyzer. Nothing new PASP atom wise though, that will follow next.

The new version is not yet on appcast. If you want to test it early, let me know.

I'm not sure what an appcast is but I'll give it a shot. I have plenty of content I can try it with.

SeeMoreDigital
1st October 2008, 20:04
The new version is not yet on appcast. If you want to test it early, let me know.May I try too please?

crypto
2nd October 2008, 07:13
@NorthPole, SeeMoreDigital
Thanks for your help. The new version should now be available. I have updated the first post. If "Check for Update" still doesn't show the new version, use this link: http://dvbportal.dyn1.de/download.php?file=mp4muxer-0.9.3.zip

Just some other good news: The dev team has a new member, who wil maintain the OSX and maybe later Unix builds.

b66pak
2nd October 2008, 22:00
thanks...this seems to work...i suggest you to include detalied descriptions when you roll over the mouse to various fields..
_

Zarxrax
6th October 2008, 00:55
Would it be possible to support rational framerates, such as 30000/1001?
Can it also be possible to automatically detect a framerate that already exists in an h264 file when you add it as a stream?

Also a question: How would I use mp4 creator with something like Nero AAC encoder, which outputs audio as mp4 instead of AAC? Could I simply add my video track to nero's mp4 file, and everything will be fine?

Gabrielgoc
6th October 2008, 02:08
Thx crypo for your tool!!

What version of MP4Creator you are using with your 0.9.3 version? is it MP4Creator 1.6.1c?

Thx again, goc

SeeMoreDigital
6th October 2008, 09:19
Thx crypo for your tool!!

What version of MP4Creator you are using with your 0.9.3 version? is it MP4Creator 1.6.1c?

Thx again, gocHere you go: -

http://i34.tinypic.com/2zf1yk4.png

Gabrielgoc
7th October 2008, 15:00
In sourceforge I found MP4Creator version 1.6.1c, where is the new version: 1.6.1d? Are the sources available? Thx

crypto
8th October 2008, 20:26
In sourceforge I found MP4Creator version 1.6.1c, where is the new version: 1.6.1d? Are the sources available? Thx
Hi Gabrielgoc, 1.6.1d is up now -> http://mp4creator.sourceforge.net/ (click SVN for sources, DOWNLOAD for win32 binaries)

Gabrielgoc
9th October 2008, 02:04
Thank you again, crypto!!

NorthPole
29th October 2008, 22:43
@crypto

I've been doing some testing of your muxer and I had a question on the 64bit addressing. Whenever I try to mux a .264 video stream that is larger that 4gb, the GUI automatically selects 64bit addressing. When I play the mp4, the only splitter that seems to work is neros. I also have seeking problems towards the end of the file and the total time for the video is wrong.

I guess I was wondering if it is possible to play 4GB+ files on a 32bit win xp platform or do you need visa?

I'll try some other files and players and let you know. I haven't been able to play a mp4 with ac3 yet because I haven't found a splitter yet that can handle it other than VLC.

realityking
29th October 2008, 22:47
@NorthPole

Did you try the most recent version of QuickTime?

NorthPole
29th October 2008, 23:05
I just tried MPC HC and it has the same time problem as the old mpc with the external nero splitter. It seems like the total time for the mp4 is exactly double what it should be. If you click on the seek bar anywhere in the first half of the mp4, it works correctly. Any seeking past the midway point results in a black screen. VLC has the correct total time and seek time. I haven't tried Quicktime yet. I'll let you know.

Edit:

Just tried quicktime and itunes and total time and seek time is OK. Nero showtime3 and powerdvd7 have the same total time problems as mpc.

NorthPole
29th October 2008, 23:29
@crypto

As far as mp4 with ac3, the only means of playback that I have found is VLC. However, it seems that I am only getting one channel (right) instead of 6. Quicktime, itunes, nero, cyberlink, mpc hc all have no audio.

crypto
30th October 2008, 18:46
Just tried quicktime and itunes and total time and seek time is OK. Nero showtime3 and powerdvd7 have the same total time problems as mpc.

Some players have problems with MP4 files >4 GB including Xbox 360.

One thing is for sure, >4 GB requires 64 Bit addressing and that's why I am enforcing it in the GUI. You can try to use 32 Bit addressing by using the command line for files > 4GB. None of these files was usable in my tests. When your player has problems with the time line, I believe it also requires 64 Bit time stamps. Those files however will not play in Quicktime.

As far as mp4 with ac3, the only means of playback that I have found is VLC. However, it seems that I am only getting one channel (right) instead of 6. Quicktime, itunes, nero, cyberlink, mpc hc all have no audio.


Quicktime and iTunes require an additional AC3 codec like Perian. Nero and Cyberlink do not understand AC3 in MP4 for now. The official release of the specs was end of August 2008 and they hadn't the time to include support for this. I am sure it will follow in their next releases.

VLC version 1.0 or later does play AC3 in MP4. It should play 5.1 but I beliieve VLC is missinterpreting the AC3SampleEntry Box.

Annex F.3 explicitly defines:

The layout of the AC3SampleEntry box is identical to that of AudioSampleEntry defined in ISO/IEC 14496-12 [i.6]
(including the reserved fields and their values), except that AC3SampleEntry ends with a box containing AC-3
bitstream information called AC3SpecificBox. The AC3SpecificBox field structure for AC-3 is defined in
clause F.4. The values of the ChannelCount and SampleSize fields within the AC3SampleEntry Box shall be ignored.

b66pak
24th November 2008, 19:15
hi

first thanks for this great gui...

is there a reason why interleve (in audio tab) and optimize (in streaming tab) are not set by default?

best regards
_

[DB-FR] Nikko
26th November 2008, 20:09
First thx very much for this good Gui.
I wonder why we cannot use AAC in mp4 as input, it's possible with H264 video part so ?

Second I have a little probleme after muxing a constant rate video, it becomes variable :confused:, indeed (with mediaInfo) :

before muxing :
Frame rate : 23.976 fps

After :
Frame rate mode : Variable
Frame rate : 23.976 fps
Minimum frame rate : 23.974 fps
Maximum frame rate : 23.981 fps

I'm sure the Variable Frame Rate box is disabled.

The last question is what do you mean by time scale ? I saw it is 90000 by default....

Best regards,
Nikko.

crypto
26th November 2008, 23:32
hi

first thanks for this great gui...

is there a reason why interleve (in audio tab) and optimize (in streaming tab) are not set by default?

best regards
_

Hi b66pak,

both cost additional time when multiplexing and when adding data to an existing multiplex. When playing back from seekable media, there is no advantage of using it, because the player can randomly access the data.

When using streaming however use at least "optimize", so the player can instantly access the media control information.

crypto
26th November 2008, 23:55
Nikko;1217402']First thx very much for this good Gui.
I wonder why we cannot use AAC in mp4 as input, it's possible with H264 video part so ?

Second I have a little probleme after muxing a constant rate video, it becomes variable :confused:, indeed (with mediaInfo) :

before muxing :
Frame rate : 23.976 fps

After :
Frame rate mode : Variable
Frame rate : 23.976 fps
Minimum frame rate : 23.974 fps
Maximum frame rate : 23.981 fps

I'm sure the Variable Frame Rate box is disabled.

The last question is what do you mean by time scale ? I saw it is 90000 by default....

Best regards,
Nikko.

1) The underlying mp4creator can only use elementary streams. I can however add a demux step in the GUI. I am thinking of adding it. Doing so also allows scenarios like .TS to .MP4.

2) About the VBR, I have no idea. Does the .MP4 file play ok? Does it happen with every file? I checked some of me muxes and they all display CFR.

3) Timescale denotes the clock setting during playback. All timings are derived from this. Higher settings give a higher granularity. I have seen values 60, 600, 30000 and 90000. You can lower the timebase, if you have no A/V sync problems, but I see no advantage if this.

laserfan
26th November 2008, 23:58
When using streaming however use at least "optimize", so the player can instantly access the media control information.crypto does MP4Creator have an option to place the moov atom at the beginning? This is necessary for streaming of MP4 files to a TiVo.

One has (only) to run the output thru qt-faststart (http://multimedia.cx/eggs/improving-qt-faststart/), but maybe its code could be incorporated in MP4Muxer?

EDIT: I apologize crypto, I'd thought qt-faststart was the key to getting these to work, but instead I needed only to turn-off Interleave, and with Optimize everything works, the atom's in the right place. SORRY!

BTW am I correct to assume that the 2nd file, the TMP file that is created-then-deleted after the .mp4 is muxed, is that file necessary for the "optimize" step? I ask cuz it looks like MP4Muxer is done, but then one has to wait for that tmp file at the end!

[DB-FR] Nikko
27th November 2008, 18:30
2) About the VBR, I have no idea. Does the .MP4 file play ok? Does it happen with every file? I checked some of me muxes and they all display CFR.

Yes the file plays ok, because as you can see, the maximum and the minimum are very close and the mean stays at 23,976.
I tested it on 3 different mp4 and I have the same thing.
That's not so horrible but strange isn't it ?

NorthPole
29th November 2008, 00:50
@crypto

FYI- I can't seem to demux an MP4 that has a AC3 audio stream and a h264 video stream. Works OK to demux the h264 track...but not the ac3 track.

Thanks.

crypto
3rd December 2008, 19:20
@crypto

FYI- I can't seem to demux an MP4 that has a AC3 audio stream and a h264 video stream. Works OK to demux the h264 track...but not the ac3 track.

Thanks.
Yes, same here. I am trying to fix it.

frl
7th December 2008, 15:21
Hello,

I have a couple of questions on mp4muxer if I may...Firstly, thanks for this tool - it has allowed me to get closer than ever before to AppleTV happiness :)

Is there any way (preferably via the command line) to specify a delay on an audio track?

Secondly, is it possible to specify the aspect ratio as (for example) 1.77:1 - in the same way as mkvmerge works? I find this very useful when posting files to the mp4creator.exe through a script. Setting the qtw parameter works fine, but as my script contains an autocrop avisynth plugin, I can never be sure of the correct value for qtw.

Lastly, if I try to play a mux created with mp4creator in mplayer, vlc or media player classic, I find that none are able to play the file correctly. My main target platform is AppleTV, and this works fine - as does quicktime, but I wondered if there was a reason these other players do not seem to like the output from mp4muxer?

Thanks,
Chris

b66pak
9th December 2008, 03:18
@frl

you have to use "interleave" in audio tab and "optimize" in streming tab when muxing for players that use a buffer (this will double or triple the time and the hdd space needed for muxing!!!)...or disable the buffer in players as i do with XBMC (mplayer based mediaplayer)...
_

frl
9th December 2008, 20:19
you have to use "interleave" in audio tab and "optimize" in streming tab when muxing for players that use a buffer (this will double or triple the time and the hdd space needed for muxing!!!)...or disable the buffer in players as i do with XBMC (mplayer based mediaplayer)...
_
Thanks b66pak, I'll give that a go...

If anyone knows about the possibility of a delay on the ac3 track, or specifying a target aspect ratio, I'd be very grateful...In the meantime, I'll grab the source and see what I can figure out.

crypto
10th December 2008, 00:42
@frl
1) There is currently no way to specify a delay. I am not sure, but I think the MP4 container can specify delays for tracks. But if so, there are surely players, that don't respect the delay. The other way is to really cut the audio track, but that would be different for every supported track type (AAC LC, AAC HE, AC-3, MP3, MP2) and would require a good hand of code.

2) PASP support is on the list.

3) VLC reads the MP4s including the AC3 track. You need a current version. You can checkout from GIT or use a current snapshot.

frl
10th December 2008, 08:36
Thanks very much for the feedback crypto!

Great to hear PASP is on the list - if my understanding of it is correct, it would be exactly what I'm looking for.

On delays, I do believe it is supported in the MP4 container - at least mp4box appears to support it. I will do some digging on this.

Thanks again!

chaynik
22nd December 2008, 23:07
Has anyone else experienced a garbled inspector display in QuickTime Player on OS X when playing back a mux done with MP4Muxer?

http://i41.tinypic.com/2mqu7ts.png

If I export to MPEG-4 using "pass through", the display returns to normal.

http://i41.tinypic.com/2u5g74l.png

frl
23rd December 2008, 15:03
Hi chaynik,

I see the same in AppleTV. I've done well over 20 muxes now using mp4creator, all show this issue but it has not affected playback in anyway.

chaynik
28th December 2008, 22:56
Thanks to helpful people in the #mp4v2 channel, I was able to get some insight into what's happening:


<refulgentis_> well, here is a succinct description of what's happening for you: http://forum.handbrake.fr/viewtopic.php?f=5&t=8385#p46433
<refulgentis_> unfortunately, crypto is still running on the "old" yet modified libmp4v2
<refulgentis_> he patched in some handbrake stuff but stopped around june


So looks like the solution is to simply use a newer version of libmp4v2 :) Crypto, can you hook us up?

crypto
29th December 2008, 09:55
Hi chaynik,
I cannot reproduce this. Is this a MAC-only effect? What is shown, when you run the test clip on Windows?

chaynik
1st January 2009, 01:10
Hi chaynik,
I cannot reproduce this. Is this a MAC-only effect? What is shown, when you run the test clip on Windows?

Hi crypto, thanks for the reply. Yes, this only happens on the Mac version of QuickTime Player. Windows QT just says 'H.264'.

Here's a quote from the HandBrake thread I pasted above.

...mp4v2 used to write [CompressorName of H.264 video tracks in MP4 files] with a string format QT couldn't read so it looked like garbage characters, so Yuvi gave us a patch to write it in the Pascal style QT wants, but that patch messed up MP4Read, crashing MP4Optimize, so for a year or so there we didn't write the CompressorName at all and let QT fill in "H.264" as a default value. But then eddy and kona fixed everything in mp4v2 in time for 0.9.3.

Hopefully you would be able to fix it. Thanks in advance!

crypto
1st January 2009, 13:24
Thanks chaynik,

for the detailed description. I have implemented a change for the compressor name (like Quicktime does when remuxing). As I cannot test it on Mac (currently), I made this a prerelease. ***If you say it is ok, i'll release it.***

You can download it from SourceForge.net by following this link:
https://sourceforge.net/project/showfiles.php?group_id=232803&release_id=650741
or browse Release Notes and ChangeLog by visiting this link:
https://sourceforge.net/project/shownotes.php?release_id=650741

KyleG
6th January 2009, 21:59
Hello, trying to make just a simple small clip using AC-3 audio.

I left all the settings as their defaults when muxing.

It plays in VLC fine of course, when I try to open it in QuickTime, it tells me..


Error -2041: an invalid sample description was found in the movie (defaultSettings.mp4)


Is this just from Quicktime's lack of AC-3 support? or from me being a retard?

Also I read you said for AC3 for Itunes/quicktime we need something like perian, that seems to be only for MacOS, andyone know something similar for Windows?

Thanks, and great work so far on the mp4Muxer

crypto
6th January 2009, 22:29
To run the muxed file in Quicktime, the extension must be renamed to .m4v (the same is true for using chapters). Sorry that the GUI doesn't suggest that for now.

About AC-3 in Quicktime (Windows), there is a codec needed, but I also aren't aware of one. Any suggestions are welcome.

lordreign
17th January 2009, 13:50
Error -2041: an invalid sample description was found in the movie (defaultSettings.mp4)



I get this same error also from Quicktime, but only after adding Chapters. If I create an mp4 with only H264 and AC3 audio (no chapters) it plays fine after renaming to m4v. Mac does the same thing.

b66pak
17th January 2009, 19:42
for chapters on QT use this:

http://forum.doom9.org/showthread.php?p=1058021#post1058021
_

lordreign
18th January 2009, 00:40
for chapters on QT use this:

http://forum.doom9.org/showthread.php?p=1058021#post1058021
_
Thanks for the suggestion, that actually works perfectly. If I use mp4muxer to create the m4v of H264 and AC3 (because the one you linked doesn't have the AC3 patch applied) then use the version you linked for the chapters it works great. Cheers.

crypto
18th January 2009, 10:43
@lordreign
mp4muxer contains the patch from tuber66, so it should add chapters. What steps did you take, that led to the error message?

bond
18th January 2009, 12:28
hi crypto

Are you in any way affiliated or joining forces with this project:
http://code.google.com/p/mp4v2/

maybe this might make sense...

crypto
18th January 2009, 12:48
Yeah, that's the base now for handbrake and I am also planning to build upon it.

chaynik
20th January 2009, 23:58
Thanks chaynik,

for the detailed description. I have implemented a change for the compressor name (like Quicktime does when remuxing). As I cannot test it on Mac (currently), I made this a prerelease. ***If you say it is ok, i'll release it.***

You can download it from SourceForge.net by following this link:
https://sourceforge.net/project/showfiles.php?group_id=232803&release_id=650741
or browse Release Notes and ChangeLog by visiting this link:
https://sourceforge.net/project/shownotes.php?release_id=650741
Thanks crypto, that fixed it!

However, as I started using your tool more now, I've run into another issue. It seems non mod16 resolutions muxed with it are being padded to mod16 in OS X's QuickTime Player (my 640x360 encodes appear as 640x368) and a green band appears on the bottom. The Windows version of QT does not have this issue.

Any idea what could be causing this?

Thanks again!

systemloc
21st January 2009, 14:28
I haven't had much luck adding chapters to some h264/AAC. MP4Muxer muxes the A/V into an MP4 which QT can play just fine, but when I attempt to add Chapters, QT plays the A/V, but doesn't display chapters. I've got the chapters in an OGG style list in a file with a .chap extention. I add them by importing them in the chapters tab, which indicates that they've been imported appropriately. I've also tried playing the resultant file with MPC, and it does not detect the chapters either.

Is MP4 Muxer supposed to be able to create chapters that QT can use? If so, is there some sort of trick to make it work? I've been able to add chapters using QT Pro 7 just fine, but it's a pain to use!

Everything I do is on a Win XP SP3 machine
QT 7.5.5
MP4Muxer 0.9.3

b66pak
21st January 2009, 19:56
for chapters on QT use this:

http://forum.doom9.org/showthread.ph...21#post1058021
_

crypto
22nd January 2009, 17:20
I haven't had much luck adding chapters to some h264/AAC. MP4Muxer muxes the A/V into an MP4 which QT can play just fine, but when I attempt to add Chapters, QT plays the A/V, but doesn't display chapters. I've got the chapters in an OGG style list in a file with a .chap extention. I add them by importing them in the chapters tab, which indicates that they've been imported appropriately. I've also tried playing the resultant file with MPC, and it does not detect the chapters either.

Is MP4 Muxer supposed to be able to create chapters that QT can use? If so, is there some sort of trick to make it work?

Yes MP4Muxer can create chapters that QT can use. The way you did it is exactly right. Do you know, that the extension needs to be renamed to .m4v?

crypto
22nd January 2009, 17:23
@chaynik
Great that the codec display works now on mac. I'll prepare a fixed release version.

Warrex
24th January 2009, 17:12
:thanks: for this great app!

MP4Muxer seems to create files which are more likely to be compatible with the the PSP compared to MP4box. Muxing a h264 stream and an aac stream with MeGUIs MP4Muxer GUI got me an incompatible file (PSP: "incompatible data") altough I used MeGUIs PSP profile and 2ch. aac-lc with 96kbit/s. MP4Muxers output worked flawlessly!

chaynik
28th January 2009, 00:48
@chaynik
Great that the codec display works now on mac. I'll prepare a fixed release version.

Thank you, crypto. What about the weird non-mod16 issue?

crypto
29th January 2009, 23:59
Thank you, crypto. What about the weird non-mod16 issue?

The only problem I can think of is, that the container signals different dimensions than the stream. Can you check that?

With h.264 cropping is done at the stream level, not at the container level. Not all decoders respect the cropping settings. So to be safe use mod16 dimensions.

jayman
2nd April 2009, 22:57
I've used mp4muxer to convert mkv files to an mp4 format. Using a streaming program called streambaby one can stream over mp4's without them being transcoded to the tivo. However, every time I use it, when watching at about the 4gb point of the movie, the screen turns black and I get chopped up audio. Does any one know what could be causing this? Is it a 64 bit addressing problem? Is there something I could try with mp4muxer, a setting, that may help fix it? thanks.

jayman
3rd April 2009, 21:04
It's all fixed now. Was a coding issue with streambaby. thanks. this program rocks.

b66pak
9th January 2010, 19:53
@crypto i have noticed that the last version of mp4creator is in PRE mode for about a year...(mp4creator-win32-1.6.1e-pre.zip)...something new?...how can i get it to show the progress of muxing (in CLI mode)? your GUI do that!
_

crypto
12th January 2010, 08:05
@crypto i have noticed that the last version of mp4creator is in PRE mode for about a year...(mp4creator-win32-1.6.1e-pre.zip)...something new?...how can i get it to show the progress of muxing (in CLI mode)? your GUI do that!
_

I have fixes in the queue for iTunes 9 but didn' t find the time to build a bin package. They are in the repo though.

The progress display is soley implemented in the GUI (via an observer thread). The CLI pogram has no info about that.

b66pak
12th January 2010, 20:16
muxing .ac3 and optimizing cause atom corruption (and stream corruption?)...tested with mp4creator-win32-1.6.1d and mp4creator-win32-1.6.1e-pre...
_

b66pak
12th January 2010, 20:45
The actual implementation of "-optimize" in GUI (after each muxing operation) lead to a lot of time wasted. I suggest to be done as a separate and final job!

Here is an example:

GUI Mode:


mp4creator video.h264 -rate=25 -use64bits -optimize final.mp4 < 600sec (mux) + 600sec (optimize)

mp4creator surround.aac -interleave -optimize final.mp4 < 60sec (mux) + 660 (optimize)

mp4creator stereo.aac -interleave -optimize final.mp4 < 20sec (mux) + 680 (optimize)

mp4creator headphones.aac -interleave -optimize final.mp4 < 20sec (mux) + 700 (optimize)


TOTAL = 700sec (mux) + 700sec (optimize) + 1940sec (optimize)!!!



CLI Mode:


mp4creator video.h264 -rate=25 -use64bits final.mp4 < 600sec (mux)

mp4creator surround.aac -interleave final.mp4 < 60sec (mux)

mp4creator stereo.aac -interleave final.mp4 < 20sec (mux)

mp4creator headphones.aac -interleave final.mp4 < 20sec (mux)

mp4creator -optimize final.mp4 < 700sec (optimize)


TOTAL = 700sec (mux) + 700sec (optimize)
_

kypec
13th January 2010, 06:46
Though I don't know nor use MP4Creator I can only agree with you, b66pak. Optimization (I assume some kind of internal re-organization of all tracks & streams inside MP4 container) should be definitely done just once when ALL tracks & streams are present in the container file.

b66pak
17th January 2010, 19:50
any plans in adding support for muxing .dts?

http://www.mp4ra.org/codecs.html
_

SeeMoreDigital
27th January 2010, 10:51
any plans in adding support for muxing .dts?

http://www.mp4ra.org/codecs.html
_As far as I'm aware "DTS" is not officially supported within the MPEG-4 specification... Unlike "AC3" audio.

Drachir
28th January 2010, 21:30
As far as I'm aware "DTS" is not officially supported within the MPEG-4 specification... Unlike "AC3" audio.

How did you come to this conclusion? Did you take a look at the link provided by b66pak?

http://www.mp4ra.org is the officially registration authority for file formats based at ISO/IEC 14496-12(ISO Base Media File Format).

There is listed "AC-3 audio" and also "DTS Coherent Acoustics audio". So why should "AC-3 audio" be supported and "DTS Coherent Acoustics audio" not?

An other question is, is there any player out there that would support DTS in "ISO Base Media File Format" alike files?

One comment about the 4CC "Code" point and the "ObjectType". What is used, depend on the currently used file format. There are some file formats, which are based at the ISO Base Media File Format. There are for example the 3GPP file format(*.3gp), the format used by apple (*.m4v) and the MP4 file format (*.mp4).
Lets take AC-3 audio for example. If you have a file, which claims to be correctly presented, if the format rules by apple are respected -> main ftyp = "M4V " the 4CC code point "ac-3" is used.
If you have a MP4 file (MPEG-4 systems context) ->main ftyp = "mp42" the ObjectType 0xA5 should be used.
But there are more player around that support the apple format, so it makes no sense to use the ObjectType 0xA5. Consistently you should set the main ftyp to "M4V " and also use the file extension *.m4v. This make a lot more sense if also iTunes tags and chapters are used.

b66pak
1st February 2010, 19:07
I have fixes in the queue for iTunes 9 but didn' t find the time to build a bin package.

any news?
_

b66pak
18th February 2010, 20:37
today i updated QT to v7.6.5 and i found that mp4muxer is no longer QT friendly...

a 60 sec .mp4 clip (h264+aac-lc) muxed with mp4muxer is displayer, played and saved (as .mov) as 120 sec video + 60 sec audio!

so an updated mp4creator is needed...

how to reproduce: open in QT a clip muxed with mp4muxer go to window/show movies properties and you will see that the size of the video is double...

_

b66pak
25th February 2010, 19:21
@crypto can we consider that mp4muxer/mp4creator is no longer developed?
_

b66pak
23rd July 2011, 19:56
please, can somebody make a windows static build for mp4creator with the last svn repository (video length display fixed)?

http://mp4creator.svn.sourceforge.net/viewvc/mp4creator/

thanks a lot...
_

SeeMoreDigital
23rd July 2011, 19:59
please, can somebody make a windows build for mp4creator with the last svn repository (video length display fixed)?

http://mp4creator.svn.sourceforge.net/viewvc/mp4creator/

thanks a lot...

Agreed... I use MP4muxer all the time...

b66pak
31st July 2011, 18:34
please, can somebody make a windows static build for mp4creator with the last svn repository (video length display fixed)?

http://mp4creator.svn.sourceforge.net/viewvc/mp4creator/

thanks a lot...
_

nobody can help?
_

b66pak
4th August 2011, 19:54
pretty please...
_

Kurtnoise
4th August 2011, 21:25
http://www.mediafire.com/?odsc0ivb1c71xkr

SeeMoreDigital
4th August 2011, 21:42
Hi Kurtnoise,

Many thanks for doing this :)

b66pak
5th August 2011, 03:33
thanks a lot...
_

stinman
15th March 2012, 23:16
I thank you to1 I can't find mp4 box unless I download other things that have it included, yamb don't even have it included.

SeeMoreDigital
20th March 2013, 10:31
Out of interest...

Has there been any new builds of mp4creator that will work with MP4Multiplexer?