View Single Post
Old 14th December 2009, 11:18   #14  |  Link
Umat54
Registered User
 
Join Date: Jun 2009
Posts: 7
Solution found!

You are right, it is MP4Box issue. I did try muxing with the latest Yamb and/or the latest MP4Box-0.4.6-dev_20091013 but nothing works. MP4File --optimize does not work either.

However, I thank you a lot quantum5uicid3! You helped me immensely by pointing me to the mp4v2 tools which allowed me to experiment even more so that I could discover the MeGUI (or rather MP4Box) problem. Now I am finally able to create both multiple audio and multiple soft subtitle MP4 files compatible with iPhone / iPod Touch. I create them in MeGUI as before - nothing changed here, they are still not compatible, but I can now fix them with mp4v2 to make them fully compatible with iPhone or iPod Touch.

There are just two bits in the headers missing for each track to work properly. iPhone needs the audio and subtitle tracks grouped into a sort of radio button box control. All audio tracks must be marked as members of one group, and only one track must be on while the rest must be off. The same about subtitles. MP4Box does not group the tracks and turns every single one on.

This problem can be easily fixed by the mp4track tool. When it is done, all audio and subtitle tracks are accessible on iPhone, but the tracks do not have proper language codes (except for English, Spanish and perhaps a few others). It seems that MP4Box uses different language codes than iPhone. This cosmetic issue can also be fixed by the mp4track tool.

Here is a sample batch script that will fix a FILE.mp4 file with three audio tracks (English, French and German) and three subtitle tracks (again English, French and German):

Code:
REM group all audio tracks into group 1
mp4track --track-index 1 --altgroup 1 FILE.mp4
mp4track --track-index 2 --altgroup 1 FILE.mp4
mp4track --track-index 3 --altgroup 1 FILE.mp4

REM group all subtitle tracks into group 2
mp4track --track-index 4 --altgroup 2 FILE.mp4
mp4track --track-index 5 --altgroup 2 FILE.mp4
mp4track --track-index 6 --altgroup 2 FILE.mp4

REM turn the first audio track on and the rest off
mp4track --track-index 1 --enabled 1 FILE.mp4
mp4track --track-index 2 --enabled 0 FILE.mp4
mp4track --track-index 3 --enabled 0 FILE.mp4

REM turn the first subtitle track on and the rest off
mp4track --track-index 4 --enabled 1 FILE.mp4
mp4track --track-index 5 --enabled 0 FILE.mp4
mp4track --track-index 6 --enabled 0 FILE.mp4

REM assign proper language codes to audio tracks
mp4track --track-index 1 --language ENG FILE.mp4
mp4track --track-index 2 --language FRA FILE.mp4
mp4track --track-index 3 --language DEU FILE.mp4

REM assign proper language codes to subtitle tracks
mp4track --track-index 4 --language ENG FILE.mp4
mp4track --track-index 5 --language FRA FILE.mp4
mp4track --track-index 6 --language DEU FILE.mp4

Last edited by Umat54; 14th December 2009 at 11:19. Reason: fixed a typo in the script
Umat54 is offline   Reply With Quote