View Full Version : HowTo create DVD-like Menus in MP4 - MP4Menu
bond
11th December 2003, 14:07
ok, as some of you might already know the mpeg-4 standard offers the possibility to put menus, as known from DVDs, into the MP4 file format.
this small guide aims at helping you to be able to create an own menu, as known from dvd, yourself in the MP4 container format, by using the mp4menu script i wrote to make the process easier
with mp4menu you should be able to make a 1:1 copy of a DVD on CDR
proof of concept sample
before you start doing it yourself, you maybe want to see a proof of concept sample kindely provided by OBcecado (http://isabelle.math.ist.utl.pt/~l52768/sw_sample.zip)!
note that only chapter1 and 2 will work (as its not the whole movie of course)
authoring in mpeg-4 systems
till someone writes a nice mpeg-2 systems -> mpeg-4 systems convertor, the menu authoring has to be done "by hand" by using a textual language format, called XMT or BT (based on VRML, like the well known Flash), which than has to be compiled/encoded into mp4 (a free available compiler/encoder is for example mp4box), which creates the so called BIFS track, which carries the menu and controls how the a/v gets played
why mp4menu?
as you can imagine writing a whole BT/XMT scipt from the ground by hand for a dvd-like menu in mp4 is not that easy.
a gui would make this process much easier and there are already some GUI oriented MP4 authoring tools existing, but all not available to the broad public!
now i always wanted to be able to also use menus on my backups, to be able to make a real 1:1 copy of a dvd on a cdr. so i wanted to explore the possibilities of mpeg-4 systems and create a dvd-like menu in mp4. thats why i started to learn the BT/XMT language from the ground.
to share my learned knowledge (and the resulting script) i created the mp4menu project which has the goal to make it easier for you to author such dvd-like menus in mp4 yourself
now you can find the product of this work on sourceforge on the mp4menu page (http://sourceforge.net/projects/mp4menu/) i created there
i hope that i will be able to make mp4menu even better with your suggestions on what to improve :)
how can i use mp4menu?
mp4menu provides you a BT sample script (XMT will follow) which already offers all the main features you can find on a dvd menu (ie chapter menu, language menu, etc...)
"all" you have to do now is to adopt this sample script to the dvd menu you want to make a backup from (well most dvd menus are similar but not exactly the same)
so lets start with a small guide
before you can start let me tell you something about the "world" we are in:
[hm, as doom9 doesnt allow political discussions here i will leave the most important part out ;) ]
in the current mp4menu script we are in a world that has 2 dimensions (well 3 dimensions are also possible in mpeg-4 systems, but i havent seen a 3D dvd menu till now ;) ) and this world is defined by time (not frames, as mp4 also handles variable framerate) and pixels (not meters or somthing similar)
preparing the source
first of all: i dont allow the usage of mp4menu when it is against the legal situation in your country (in most countries its still allowed to make a backup of dvds you own, but not to break the dvd copy protections etc...)
i expect you to have your vob files, which contain the dvd menu, (or any other source you want to use) on your hd already
1) watch the dvd, learn how it works and note down what happens if you push here and there, where are the intros/outros/transitions between menus, what parts get looped etc...
2) encode/prepare the streams:
a) audio: specified audio formats in mp4 are mp3 and aac, but i think it makes things easier when you first convert your ac3 streams from the vob only into .wav (use besweet for that for example)
i will write later on why this can avoid problems
b) video: i expect you to know how to encode the video from a vob to mpeg-4. to avoid problems i suggest to use a codec which is able to input keyframes at specific points (all menus (chapters, languages, mainmenu) are stored right behind each other in the vob and will also be stored like this in 1 video stream in the mp4)
make sure you have a keyframe at positions where there are changes from 1 menu to the other for example (to find out where this exactly is you can also have a look at the vob (for example with virtualdubmod), cause it also has the keyframes at this points)
you can set keyframes in xvid (and in divx5 by using this ekg tool too afaik)
note that avi files created by divx5 or xvid using b-frames have to be muxed with mp4box or 3ivx to mp4, to get spec compliant mp4 files!
a second thing you have to look for is that the width of your menu video stream has to have the same width as the movie! (to avoid black borders on the sides)
c) convert your subs into the srt format (or hardcode them onto the video stream)
3) cut the video:
often there are different styles of menus stored on a dvd/in a vob, i suggest you to choose only one to keep the final menu size low
a) mux the wav with the whole video, open the video in vdm and cut out all parts you dont want to have/dont need in your final menu
you can do that with the ac3 too, but vdm isnt that good in ac3 cutting imho as you will see if you do it ;)
b) demux the cutted wav and encode it with your favourite encoder to mp3 or aac
the following formats are supported as input in mp4box:
mpeg-4 video in .avi and .mp4
audio: .mp3, cbrmp3 in .avi (not vbrmp3!), aac in .mp4
lets start with the script
grap the mp4menu script (http://sourceforge.net/projects/mp4menu)
the script might look like a huge beast at first sight but dont be afraid you dont have to change that much in there ;)
if you want to know what each command is for, feel free to ask or have a look a this great guide (http://gpac.sourceforge.net/tutorial/bifs_intro.htm) written by the guys of the gpac project (i think it covers everything i have in my script)
1) define the size of your "world"
search for "pixelWidth" and set it to the width of your videos, set the height in a 4:3 ratio, ie width is 576 than the height is 432 (576*3/4)
2) change the links to your input files
3) adjust the segments:
a) as you can see you can define the chapterpoints with segmentdescriptor, you always have to define the startpoint and the duration (all in seconds)
b) the same method is used to define the different parts of the menuvideo stream (menuintro, transitions, the menus themselves etc...)
4) define the type/position of your buttons:
to make the buttons visible add a "#" before "transparency 1.0" in the buttonappearance proto
a) as known from your mathematics courses we have to define two values to define a point in a 2D world
the first value (x) will move the object horizontally, the second (y) vertically. the point 0 0 is in the middle of the world!
b) you can have all sorts of types for a button, ie rectangle, ellipse aso...
x is the width of the object and y the height (for some styles (ie circle) you need to define a radius)
5) define the appearance and position of the subs
search for MovieSubtitle, there you can define the size, font etc...
guess what you can define under position ;)
6) the moviebuttons
i have added an own menu which you can use during movie playback, which you will not find on a dvd that way
its a little bit difficult to describe here what you need to look for, where to add the buttons, etc.. thats why i added some infos in the script itself
ok, i think these are all basic things everyone has to look for when using mp4menu, of course there are some things you have to change for each dvd seperately (like the number of chapters, the number of languages (audio and subs) aso...
i didnt described now how exactly this works cause it will be different every time, but feel free to ask, i will do my best to help you with your specific backup :)
convert the script into mp4
to convert the bt script into binary format in mp4 you need a compiler/encoder
jeanlf from gpac has written such a tool, mp4box, which works great
grap it from here (http://www.rarewares.org/mp4.html)
create and execute a .bat file with the following commandline:
"c:\path to\mp4box.exe" -mp4 "c:\path to\mp4menu_0.1.bt"and you will get the ready output mp4 file
how can i play these mp4 files?
as these mp4 files are spec compliant to the mpeg-4 systems standard you should be able to play them with every good mpeg-4 systems 2D player
imho the best currently available is the Osmo4 from GPAC (http://www.rarewares.org/mp4.html)!
i dont recommend the usage of enviviotv as it is very limited (doesnt support all the funky features, like mp3, png decoding, chapters, loop...) and is not available for free anymore!
how is the chance that i will be able to playback these menus on hardware players in the future?
if h264 will become the next dvd successor the chance isnt that small imo
you have to know that the mp4 container is the native container of the h264 codec (not avi) as defined in the mpeg-4 standard
well if h264 becomes a success, the industry will ask for a way to create dvd-like menus and the chance is great that they will use the mpeg-4 systems standard for that
TODO
- make the moviebuttons/menu to be placed automatically at the bottom of the world
- design a nicer layout for the moviemenu (perhaps add a jpg/png as background)
- add some "on mouse over" animations
- convert the BT script to XMT
- write a nicer guide :D add things that might arise in the discussion
- get dshow developers to release better support for mp4menu or at least write a dshow video switcher
hm, anything else i wanted to say? i surely forgot something :D
SeeMoreDigital
11th December 2003, 14:59
Wow!
If I may I would like to upload the file to the JovePlayer server.
Hopefully they will be able to make the menu system work with the Xcard.
Now that would be cool!
Cheers
EDIT: It's too bad about MP4 chapters in general though.
I remember many years ago I had an VHS VCR that could simply create (mark) chapters at the push of a button, while you were playing back your recordings. Too bad there isn't something as simple as this for Mpeg4 in an MP4 container....
We live to dream though!
filewalker
11th December 2003, 15:09
really impressive!:eek: :)
Works like a charme with the Osmo4 player...
now, I'm speechless...
Cu filewalker
bond
11th December 2003, 19:13
Originally posted by SeeMoreDigital
Wow! Originally posted by filewalker
really impressive!:eek: :)
now, I'm speechless...great that you guys like it :)
It's too bad about MP4 chapters in general though.what do you mean? whats the problem with the chapters?
SeeMoreDigital
11th December 2003, 19:35
Originally posted by bond
what do you mean? whats the problem with the chapters? Well, I suppose my comment is really related to Recode2. It seems a bit odd that such an obvious facility has been omitted.
But as I've mentioned a few times before... It's early days yet!
Cheers
mf
11th December 2003, 21:15
Now all that awaits is for Gabest to implement displaying MP4 menus in MPC :D.
SeeMoreDigital
11th December 2003, 21:32
Originally posted by mf
Now all that awaits is for Gabest to implement displaying MP4 menus in MPC :D. Oh yea!
mf, could you get any part of the file to play in MPC. I could not!
Cheers
bond
11th December 2003, 21:39
as i wrote in my guide, you need a systems capable player/filter to decode systems content
the only available dshow filter capable of that is enviviotv, but it is very limited as i described already too...
SeeMoreDigital
11th December 2003, 22:05
Originally posted by bond
as i wrote in my guide, you need a systems capable player/filter to decode systems content
the only available dshow filter capable of that is enviviotv, but it is very limited as i described already too... The file can just about run using the QuickTimePro player... without the interactive content ofcourse.
mf
11th December 2003, 22:13
Originally posted by SeeMoreDigital
Oh yea!
mf, could you get any part of the file to play in MPC. I could not!
Cheers
Yes, the main movie plays fine. Which is nice, cause it means these rips will be backwards-compatible.
RadicalEd
11th December 2003, 22:22
Was starting to wonder ;)
I haven't been working on mine :P so lazy am I. I'll get that thing done some day :|
Very nice indeed.
bond
11th December 2003, 22:27
quicktime is one of the few players that support video switching already
to be really 100% backwards compatible with all dshow filters/players that dont understand systems we will need something like a video switcher filter or function in these players
but better than a dshow video switcher filter would be a good dshow systems decoder filter :D
SeeMoreDigital
11th December 2003, 22:34
As an encode, it looks beautiful in hardware. All 1 minute 40.14 seconds of it!
Cheers
EDIT: I don't believe it. This is my 1004th post. I've nearly done as many as bond... but obviously they aren't nearly as informative!
mf
11th December 2003, 23:50
Originally posted by SeeMoreDigital
EDIT: I don't believe it. This is my 1004th post. I've nearly done as many as bond... but obviously they aren't nearly as informative!
Wow, I have 1004 too! (Well, now I have 1005 of course, but when I started this post I had 1004) :D. I wonder between you and me who would have the most informative posts :).
LordIntruder
12th December 2003, 02:02
Hi.
Have just been watching the sample of SW II and yes it is great!! :)
I'm doing similar dvd movies menus by using the old microdvd player which allow to make same things. The only one that don't work properly is when you want to make a bivx, the second audio stream has to be out of the avi and so I look for a better program to avoid that but meanwhile I stay with microdvd.
Well I tried to install things but I don't understand anything :confused: . I'm under Windows XP and have no knowledge of any script or stuff like that. Is there a GUI somewhere of GPAC? I'm quite at a lost with all those *.BT files. I see no EXE, no program to be launched, but I see many files extensions I never encounter before! ;) Your small guide is fine but it doesn't help me.
Are there more explanations, step by step, somewhere else? Something like guides here that explain clearly to a newbie how to make a divx, should be fine to have such similar things with your project.
Anyway cheers for your work. :)
Animaniac
12th December 2003, 03:17
Very VERY impressive.
ThePanda
12th December 2003, 08:06
Is it possible that menus like this will ever be integrated into an automated tool like Nero Digital for DVD -> mpeg4 backup with the menus preserved?
bond
12th December 2003, 09:59
Originally posted by LordIntruder
Well I tried to install things but I don't understand anything :confused: . I'm under Windows XP and have no knowledge of any script or stuff like that. Is there a GUI somewhere of GPAC? I'm quite at a lost with all those *.BT files. I see no EXE, no program to be launched, but I see many files extensions I never encounter before! ;) Your small guide is fine but it doesn't help me.well thats the problem, there is no gui atm :(
you will have to adopt the settings in the bt script itself, than you grap a systems compiler/encoder (one is for example mp4box from gpac)
use the following commandline:
"c:\path to\mp4box.exe" -mp4 "c:\path to\mp4menu_0.1.bt"and you will get the output mp4 file
thats "all" :D
Are there more explanations, step by step, somewhere else? Something like guides here that explain clearly to a newbie how to make a divx, should be fine to have such similar things with your project.nope, there are no other step by step guides focusing on dvd menus
i think, i (proudly) can say that i am the first one who did it (at least in the public) :)
i think i covered in my small guide till now all things that are similar for every dvd, but as you can imagine there also big differences for every dvd/user (like how many subs, audio streams, chapters...)
i suggest everyone who is interested in making a mp4 menu this way just to start with it and when there are problems just ask, i will do my best to help you
after some time i think i will be able than to figure out what people need most, what the focus should be in a guide and than write an overall step-by-step guide
Originally posted by ThePanda
Is it possible that menus like this will ever be integrated into an automated tool like Nero Digital for DVD -> mpeg4 backup with the menus preserved?would be great of course :)
c0p0n
12th December 2003, 11:45
two words: IM-PRESSIVE. I've never been such impressed by something remotely related to MPEG4 since... well, Nandub b16(I think), maybe before with VirtualDub VKI MM4.
the next step is a WYSIWYG editor...
keep up the good work!
LordIntruder
12th December 2003, 13:05
Originally posted by bond
[B]well thats the problem, there is no gui atm :(
Ah ok!! At least it is now clear. Do you plan do make one? If you want your work to be widely used you should think to make one. Microdvd Player has a GUI and once you learnt how to use it, it is a piece of cake to make DVD menu.
The "plus" with your project is that everything is included in the MP4. With Microdvd menu is outside of the main AVI, including sounds, images. You must have an executable and some ini files (script) and it may confuse the user, so you have to make an executable to launch everything in the right order.
With your project we just have to use a specific wiever and it rocks.
you will have to adopt the settings in the bt script itself
Ok got it!! I opened the BT file with Notepad and everything comes clear. Well clear is not the right word because if now I know where the commands are, it is a real headache to learn how to use it. You see why I ask for a GUI? lol :D :D
When I first learn how to use MicroDVD menu creation it was already a real pain in the ass to figure out all the commands, what were their impact as the guide can not cover each case. But your BT script is at least twenty times longer than my microdvd ones and it is hard to notice what are the lines that are needed for the program to work fine and the ones than can be changed and only needed for the menu.
after some time i think i will be able than to figure out what people need most, what the focus should be in a guide and than write an overall step-by-step guide
I can give my experience on dvd menu creation with Microdvd.
I copy vobs and encode menus if they are animated ones or takes snapshots. I encode music of those menus or add ones taken from the movie. Then with the GUI I select the clickable areas. The rest is done by "hand" with notepad (because I'm used to use that program) but you can do it with the GUI. There are some commands to learnt, you put them, you add links from one menu to the next (chapters, audios, etc...).
The user should be able to increase/decrease size and type of font for subtitles, didn't see that when playing your SW II sample. Also the possibility to use vobsub subtitles instead of only OCR (srt) ones. The possibility to add more than 2 audios streams, 2 languages and a commentary stream. The possibility to use Ogg as audio, usual stuff like that.
I'll keep an eye on your work. :)
ThePanda
13th December 2003, 02:05
I emailed Nero to suggest that they work with bond to integrate automated menu backup into Nero Digital. Maybe they will just delete my email but I guess it's worth a try :).
bond
13th December 2003, 10:38
hey nice idea, thanks :)
DarkDudae
15th December 2003, 00:09
Just to thanks bond for this great work ;)
pogo stick
21st January 2004, 16:26
Interesting! I would like to try MP4Menu.
But links to MP4Box and Osmo4 player are not working.
I tried searching but it didn't help.
Is it still available? If not, can I use MP4Menu without MP4Box?
bond
21st January 2004, 17:36
Yes you should be able to use MP4Menu with any MPEG-4 Systems Encoder, ie mp4tool from enst but i only tested it really with mp4box
otherwise you would have to compile osmo4 and mp4box yourself :(
pogo stick
22nd January 2004, 05:15
mp4tool from enst is not available too. :(
Can I do it with MPEG4IP's mp4tools? If so then how?
I am new to all this stuff, but I would REALLY like to try.
And what is other mpeg-4 systems player would you recommend instead of Osmo4? I don't know how to compile it. :(
bond
23rd January 2004, 17:08
no mpeg4ips tools dont inlcude a bifs encoder
thanks to rjamorim you can find compiles of mp4box and osmo4 on his rarewares site:
http://rarewares.hydrogenaudio.org/mp4.html
malitz
22nd April 2004, 09:24
hello,
I can not find mp4box anywhere.
Can you please tell me a URL or email it?
Thanks!
greetings
Michael
bond
22nd April 2004, 09:32
lo malitz!
welcome to doom9 and thanks for your interest in mp4menu :)
its a little bit hidden on rarewares, its called "Gpac MPEG4 toolbox" there
SeeMoreDigital
22nd April 2004, 09:35
Originally posted by malitz
...I can not find mp4box anywhere.
Can you please tell me a URL or email it?
Michael Hi Michael, Welcome to the forum.
If you had looked at bond MP4 FAQ, you would have found this link: - http://gpac.sourceforge.net/auth_mp4box.php
Cheers
malitz
21st May 2004, 13:39
Hello bond,
I am trying to get along with your great mp4menu script.
I have mp4box now and followed the instructions in your guide.
But I have problems with the file. When I convert the bt file to mp4 using mp4box I only get the menuvideo without audio in the mp4 file or only the main movie. :(
Can you please give your source files? That might help to understand the mp4menu script. I am talking about the menu.mp4 and menu.avi mentioned in your script. And perhaps the other files too.
Greetings
Michael
Originally posted by malitz
When I convert the bt file to mp4 using mp4box I only get the menuvideo without audio in the mp4 file or only the main movie.you mean when you start playing the mp4 in osmo4 only the menu gets displayed? can you push the buttons?
I am talking about the menu.mp4 and menu.avi mentioned in your scriptmenu.avi is simply the menu directly from the .vob encoded with a mpeg-4 codec and stored in .avi
menu.mp4 is the audio of the menu directly from the .vob encoded with aac or mp3 and stored in .mp4
the "#1" defines the trackid of the stream in the mp4. to find out the trackid open the .mp4 in mp4ui (the audio tracks outputted by most aac encoders always have trackid 1)
so to say if you look in my mp4menu.bt
- the first file listed is movie.avi#video - here you have to set the path to the file which contains the full movie (but not the audio of the movie)
- the next is movie_english.mp4#1 - thats the file which contains the audio (first language) of the full movie, in your case this would be the german audio i think
- movie_deutsch.mp4#1 - is the second language audio stream (english or whatever other language you want)
- movie_english_forced.srt - are the forced subs, which should always get displayed
- movie_english.srt - first language subs (in your case german)
- movie_deutsch.srt - second language subs (eg english)
- menu.mp4#1 - the audio stream of the menus (as written above)
- menu.avi#video - the audio stream of the menus (as written above) any audio stream in the .avi will get ignored
if you want to extract the single streams from the sw sample, you can easily do this with mp4box itself via the following commandlines:
MP4Box -avi TrackID mymp4.mp4 (extracts the video to .avi)
MP4Box -raw TrackID mymp4.mp4 (extracts the audio to .aac or .mp3)
malitz
23rd May 2004, 14:25
Hello bond,
thanks for your answers.
you mean when you start playing the mp4 in osmo4 only the menu gets displayed? can you push the buttons?
I meant when I start playing the mp4 in qt6 only the menu gets displayed. I can not push any buttons. And the file size tells me that the main movie has not been included.
menu.avi...
I understood everything you wrote in your guide. And I changed the file names of my main movie, main movie languages and menu.
But it does not work. :(
That's why I asked for your original files fitting the data in the bt file. Would be much easier to understand and reconfigure.
greetings
Michael
Originally posted by malitz
I meant when I start playing the mp4 in qt6 only the menu gets displayed. I can not push any buttons. And the file size tells me that the main movie has not been included.qt isnt able to play the menus, it will simply ignore all interactivity information and will simply play the a/v streams
you can switch in qt between the different a/v streams stored in the mp4
That's why I asked for your original files fitting the data in the bt file. Would be much easier to understand and reconfigureas i wrote above you can extract every stream from a .mp4 yourself :)
malitz
23rd May 2004, 14:50
qt isnt able to play the menus
Really? :confused: That's really bad.
I wanted to use interactivity in some videos I publish in the internet. And there qt6 is used.
That's bad! :angry:
Originally posted by malitz
Really? :confused: That's really bad.well its the same as with mpeg-2 systems: not every mpeg-2 decoder can decode dvd menus for example, you need a special player which is capable to do it
i also wrote that you need a special player in my first post
I wanted to use interactivity in some videos I publish in the internet. And there qt6 is used.there lots of other players around, i tested mp4menu with the osmo4 player i linked to in the first post
malitz
23rd May 2004, 15:02
strange:
http://www.apple.com/mpeg4/
here you can read that interactivity is a part of mp4
Originally posted by malitz
here you can read that interactivity is a part of mp4of course its part of mp4/mpeg-4, still this doesnt mean that quicktime supports it...
quicktime is only one of dozens implementations of mpeg-4 available and surely not a complete one
malitz
23rd May 2004, 15:15
I want to use qt6. Do you know any alternative to mp4menu? For example any tutorials about interactive mp4?
What I want to do: Have a startframe with some text on it. And when you click on it, the movie starts. Can be seen in the beginning of some movie trailers in the mov format. Something like a GO or NEXT button.
And: a language button. A movie should be played using language file 1 or 2.
Any suggestions? ;)
greetings
Michael
Originally posted by malitz
What I want to do: Have a startframe with some text on it. And when you click on it, the movie starts. Can be seen in the beginning of some movie trailers in the mov format. Something like a GO or NEXT button.
And: a language button. A movie should be played using language file 1 or 2.should be possible with mp4 in all big players including wmp9, quicktime or realplayer when the enviviotv-plugin is installed, its a very basic menu what you are asking for (which enviviotv will handle, in contrary to full dvd menus), mp4menu was written for dvd menus, its surely too overloaded for your purpose
have a look at my mp4 faq for some authoring tools or read this tutorial (http://gpac.sourceforge.net/tutorial/bifs_intro.htm) for a guide on how to write your own menu script
basically you need to do the following:
- place a .png or .jpg in the .mp4 (next to the audio/video streams)
- create a button which is as big as the image, which starts playing the movie when clicking
- and add two other buttons (which are named like the languages) for letting the user choose the language
you should find everything needed in mp4menu, but there surely is no way around reading into the bt language a little bit deeper and writing an own script
malitz
26th May 2004, 17:55
Hello bond,
one question: I want to merge two mp4 files. Is that possible using the bt language in an easy way?
Tried to use quicktime pro but I am not able to passthrough the "new" mp4.
Originally posted by malitz
one question: I want to merge two mp4 files. Is that possible using the bt language in an easy way?
Tried to use quicktime pro but I am not able to passthrough the "new" mp4.what do you mean with merge?
merging an audio-only mp4 with a video-only one
appending two audio or video streams to to become one?
appending two streams behind each other, without becoming one stream...?
the last one is possible with bt/xmt
malitz
31st May 2004, 20:47
Hello bond,
I want to do one of the following:
- appending two video streams to to become one
- appending two video streams behind each other, without becoming one stream
the first one would be better.
greetings
Michael
Originally posted by malitz
- appending two video streams to to become oneuse quicktime to append two mp4 stream, if they contain simple profile video
for advanced simple video you will have to demux to avi, merge in virtualdub and remux to mp4
- appending two video streams behind each other, without becoming one streamyou will have to have a look into mpeg-4 systems to learn how to code this
malitz
1st June 2004, 17:18
use quicktime to append two mp4 stream, if they contain simple profile video
for advanced simple video you will have to demux to avi, merge in virtualdub and remux to mp4
I tried that but it does not work.
I have two simple profile video streams (both encoded using 3ivX). When I append them I can not passthrough with quicktime.
And when I mux to avi virtual dub is not able to merge neither.
pogo stick
29th September 2004, 21:41
Hello, Bond!
I think something important has changed in GPAC after version 0.1.4. Osmo4 after this version don't play "Star Wars" sample (Decoding Error: Invalid BIFS Node). I exported all video and audio, and then again converted using your script. New versions play it and don't tell about this error. Versions before 0.1.4 don't play new version files.
Also can you look at your script again? I think there is something with moviemenu. "Play", "Pause", "Stop, ">>", "<<" buttons and seek bar don't work anymore. And the error is (ReferenceError: value is not defined: Invalid Script).
And questions:
How to make Russian subtitles display correctly?
Is that any other system players (free or not), except Osmo4 that I can look for?
Thanks in advance.
bond
29th September 2004, 23:15
Originally posted by pogo stick
I think something important has changed in GPAC after version 0.1.4. Osmo4 after this version don't play "Star Wars" sample (Decoding Error: Invalid BIFS Node). I exported all video and audio, and then again converted using your script. New versions play it and don't tell about this error. Versions before 0.1.4 don't play new version files.
Also can you look at your script again? I think there is something with moviemenu. "Play", "Pause", "Stop, ">>", "<<" buttons and seek bar don't work anymore. And the error is (ReferenceError: value is not defined: Invalid Script).hm, maybe there is something broken in osmo4 or in my script, which didnt show up till now, dunno
sorry, i dont have much time now to look into it, i am busy for university
How to make Russian subtitles display correctly?hm, i have no clue actually about non-latin characters, the best would be if you ask the gpac guys directly in their forum on sourceforge
Is that any other system players (free or not), except Osmo4 that I can look for?there are a whole bunch of systems decoders available (also for free), but most of them are for demonstration purposes and therefore not really powerful and complete enough to handle the full mp4menu (thats actually why i wrote my "profile 2" mp4menu script, which is interoperable with the crappy enviviotv systems decoder)
Drachir
30th September 2004, 10:52
@pogo stick
I recently used some parts from moviemenu(mp4menu_0.1). I have no problems with it. It works well with Osmo4 (GPAC 0.2.0), didn't test it with EnvivioTV.
If you use the mediacontrol in a different bt script don't forget to adjust the "od" in the javascript. That was my problem after i build it into mp4menu_p2. "^^
(I don't need Chapter. A seek bar,play,pause,stop and the possibility to change the audio track is enough for me.)
pogo stick
30th September 2004, 14:10
So do you mean that moviemenu is working and you are not getting (ReferenceError: value is not defined: Invalid Script)? Or when I move mouse under seek bar it shows (ReferenceError: myval is not defined: Invalid Script) for very short time.
I didn't touch anything in this part of the script yet.
Drachir
30th September 2004, 15:08
I test it again with Osmo4/MP4Client -> no error. All works fine. But i didn't use the full mp4menu_0.1 bt only the part (mediacontrol) of it.
I would post the bt scribt here so that some body can take a look at it or at gpac.sf.net.
For understanding take a look at:
http://gpac.sourceforge.net/downloads/gpac_regression_tests-0.2.0.zip
(11-mediacontrol-complete.bt)
Your Osmo4 version have javascript support ?
Here is a nice sample too:
http://multimedialab.elis.ugent.be/h2ocean/movie.asp (with isOver)
With sw_sample.mp4 i get "Decoding Error Invalid BIFS Node (main service)" too.
pogo stick
30th September 2004, 20:13
Originally posted by Drachir
Your Osmo4 version have javascript support ?
So, that must be the problem. I didn't even think of it. :o
I can not compile so I just downloaded GPAC from Celtic Druid's site (http://celticdruid.no-ip.com/xvid/).
There are: 0.2.0 version and 0.2.1 dev from 20/09/04 (with cleaned up multichannel support, fixed faad channel reordering).
Did you compile it yourself?
Originally posted by Drachir
With sw_sample.mp4 i get "Decoding Error Invalid BIFS Node (main service)" too.
Some flies from Regression Tests shows me this error also.
Drachir
30th September 2004, 21:32
I compiled by my self, but at linux.
I tested on my old windows pc (K6-2+ 550MHz)the binray from your link and got the same errors you was talking about. "GPAC Framework 0.2.0 Setup.exe" comes with a js32.dll.
Could be a Problem with my CPU. I don't know for what CPU this binary are intended. Ask the one who build it.
pogo stick
1st October 2004, 18:19
Originally posted by Drachir
"GPAC Framework 0.2.0 Setup.exe" comes with a js32.dll.
Thanks for the hint, Drachir! I took js32.dll from one of old versions. Now it's working. :)
Originally posted by Drachir
I recently used some parts from moviemenu(mp4menu_0.1).
Interesting, did you modified moviemenu or just used it? Did you try to add more buttons or change colors?
Originally posted by Drachir
Here is a nice sample too:
http://multimedialab.elis.ugent.be/h2ocean/movie.asp (with isOver)
Thanks for the link. I hope I will be able to download it soon. 95 MB is big.
I almost completed copy of DVD-menu. Only 'Extra' is left. It's not as hard as I thought. Thanks to Bond! Everyone should try it. It's fun! :)
And I notice something strange with chapter navigation on the moviemenu. For example: When I go directly to chapter3 and click one chapter back I am one chapter2 (that's right), but then when chapter2 is over menu will still 'think' that I am on chapter2 no matter how far movie is going. And if I click back while I'm on chapter5 I will be going on chapter1.
So menu is not counting chapters while passing them. Is there something that can be done about it?
Drachir
1st October 2004, 19:13
I just used it with mp4menu-p2_0.1.bt.
I didn't changed much it is nice that way it is.
I just placed a black filled rectangle ( transparency 0.7 ) behind the menue. Removed some button i don't need... .
If you want change more, a tool to convert SVG to BIFS would be nice. You cold then draw shapes you need with a program like this: http://www.inkscape.org/ .
MP4 Files would be a good alternative to flash ;) .
bond
4th October 2004, 20:30
basically bifs is very similar to flash
mp4box allows already some .swf to bifs conversion, but its very basic, dunno about svg
but even better would be a tool that could read out dvd menu structures and convert them to a bifs script automatically ;)
pogo stick
5th October 2004, 13:35
Originally posted by bond
but even better would be a tool that could read out dvd menu structures and convert them to a bifs script automatically ;)
By any chance, do you know anyone who is working in this direction?
And what do you think about this:
Originally posted by pogo stick
So menu is not counting chapters while passing them. Is there something that can be done about it?
bond
5th October 2004, 19:35
Originally posted by pogo stick
And I notice something strange with chapter navigation on the moviemenu. For example: When I go directly to chapter3 and click one chapter back I am one chapter2 (that's right), but then when chapter2 is over menu will still 'think' that I am on chapter2 no matter how far movie is going. And if I click back while I'm on chapter5 I will be going on chapter1.
So menu is not counting chapters while passing them. Is there something that can be done about it?indeed, thats the way it works atm. the currently played chapter is not detected
this could be surely updated by using the moviesensor to detect what chapter is played atm and update the forward/backward buttons everytime a new chapter is reached
still i never really had the time to implement this :( maybe someone wants to pick it up?
Hermann
17th December 2004, 18:46
I tried to play the sample file
http://isabelle.math.ist.utl.pt/~l52768/sw_sample.zip
with the new Osmo 0.2.2 instead of old 0.1.4. It gives ''Decoding Error
(main service)''. Has anyone the same problem? Is possible to fix it?
Thanks.
bond
17th December 2004, 22:09
hm, thats indeed strange, i will have a look at it in the christmas holidays
SeeMoreDigital
17th December 2004, 22:26
I would be great if Nero's ShowTime player supported menu's!
Cheers
AlexeyS
2nd May 2005, 10:38
Originally posted by SeeMoreDigital
[B]I would be great if Nero's ShowTime player supported menu's!
Same question - will Nero ShowTime support DVD-like menus in AVC format?
PS: Can't download sample file - get error.
I tried to play the sample file
http://isabelle.math.ist.utl.pt/~l52768/sw_sample.zip
with the new Osmo 0.2.2 instead of old 0.1.4. It gives ''Decoding Error
(main service)''. Has anyone the same problem? Is possible to fix it?
Thanks.
Same problem with SW.mp4 when used GPAC/Osmo 0.2.3
Animatrix.mp4 works fine.
Kurtnoise
30th September 2005, 16:00
Does anyone have already edited some bt files into V4Studio's GPAC Framework ?
Drachir
30th September 2005, 16:38
No, I use the editor kate (http://kate.kde.org/) with VRML highlighting.
http://img130.imageshack.us/img130/364/kate9df.th.jpg (http://img130.imageshack.us/my.php?image=kate9df.jpg)
Kurtnoise
30th September 2005, 19:26
kde is good... :D but is there a such tool for windows ?
Drachir
30th September 2005, 20:28
UltraEdit (http://www.ultraedit.com/) is a nice editor. There are different highlighting profiles for UltraEdit : wordfiles (http://www.ultraedit.com/index.php?name=Content&pa=showpage&pid=40#wordfiles)
Kurtnoise
6th February 2006, 16:52
One more question for you Mr Bond...:D
bt script is case-sensitive, right ? I tried to mux your bt file and I've some issues with lowercase/uppercase.
Anyway, mp4box crashes now for muxing bt file...:( I've got an error return caused by a M$ dll..:scared:
Slighty OT, did you know this tool (http://www.tranthuong.com/index.htm) ? If yes, did you try it ?
bond
6th February 2006, 16:58
yeah mp4box doesnt like my bt anymore. actually i am too lazy to update it cause after all noone uses it anyways
about that tool, didnt try it
Kurtnoise
6th February 2006, 23:07
yeah mp4box doesnt like my bt anymore.
Shame...coz I'm testing different things right now (bt, XMT-A, XMT-O...) and there are a lot of potential about this.
Just a hint if you're interested :
Extract bitmaps from vobsub/Vob files.
Convert them to png or jpg.
Create a XMT-O file including pictures and video.
Mux this script into a mp4...
So, try to find the main issue...:D
bond
7th February 2006, 00:54
hehe i guess its easier to mux the vobsubs directly into the mp4 as nero does it ;)
about the potential: its definitely there, its just that someone finally has to write an authoring gui ;)
SeeMoreDigital
7th February 2006, 11:44
hehe i guess its easier to mux the vobsubs directly into the mp4 as nero does it ;) Agreed... which is why we still need support for VOBsubs in MP4Box ;)
Cheers
bond
7th February 2006, 11:49
Agreed... which is why we still need support for VOBsubs in MP4Box ;) using vobsubs in mp4 is for those who are too lazy to ocr the vobsubs and create a ttxt stream from it ;)
SeeMoreDigital
7th February 2006, 20:43
using vobsubs in mp4 is for those who are too lazy to ocr the vobsubs and create a ttxt stream from it ;)In that case.... what I need is a "lazy-mans" tool that can convert .SUB and/or .SUP streams (as created by DVD Decrypter), to a TTXT stream ;)
iceborne
8th February 2006, 03:43
man, if this menu builder starts to become more of a lazy man's tool, my mp4 files will kick arse.
Kurtnoise
8th February 2006, 09:48
what I need is a "lazy-mans" tool that can convert .SUB and/or .SUP streams (as created by DVD Decrypter), to a TTXT stream ;)
I'm building this into SubRip.
bond
8th February 2006, 20:08
cool stuff
Kurtnoise
8th February 2006, 23:30
Just a hint if you're interested :
Extract bitmaps from vobsub/Vob files.
Convert them to png or jpg.
Create a XMT-O file including pictures and video.
Mux this script into a mp4...
Much more infos about this. It seems to work only with cmp/m4v as video streams. I used mainly IBM tool to do that. I mean to mux script into a mp4. I don't know other free tools to mux this stuff. Extraction can be done with SubRip w/o problems.
Sadly...the IBM tool doesn't support avc streams.
cool stuff
http://kurtnoise.free.fr/ttxt_subrip.gif
Very basic for the moment...
Drachir
9th February 2006, 09:55
Much more infos about this. It seems to work only with cmp/m4v as video streams. I used mainly IBM tool to do that. I mean to mux script into a mp4. I don't know other free tools to mux this stuff. Extraction can be done with SubRip w/o problems.
Sadly...the IBM tool doesn't support avc streams.
GPAC support BIFS text and xmt-a for authoring. GPAC come without support for xmt-o.
But GPAC support H.264/AVC.
After authoring with the IBM ToolKit you can extract the SceneDescription to xmt-a or bt with MP4Box -xmt(or -bt) file_withScene.mp4.
bond
9th February 2006, 11:40
my mp4sub script:
http://forum.doom9.org/showthread.php?t=69590
Kurtnoise
10th February 2006, 20:44
yeah mp4box doesnt like my bt anymore.
Maybe this has been fixed in the last CVS ?
Latest CVS Changes 10/02/06
- misc fixes in SVG animation module (animation begin and end event, restarting of animations)
- added 'define' support in BT - to use it just do:
#define symbol blab labl a
and reuse the symbol in the BT text. This may be quite buggy, but it can be usefull
- misc fixes in XMT proto+script parsing
- misc opts in software rasterizer
Sorry, for the OT...
kotrtim
11th February 2006, 17:50
using vobsubs in mp4 is for those who are too lazy to ocr the vobsubs and create a ttxt stream from it
hehe, it's OK if it is alphabet A-Z, 26 characters. If it is Chinese/Korean/Japanese, you are gonna go insane typing all those characters coz there thousands of different characters.
Standalone player needs to store all the language fonts?
Vobsub is much simpler, you can preserve the subtitle's position
sometimes, subtitle might appear on top left right bottom,
once you convert to ttxt, evrything will be bottom centre.
Now I'm doing the mkv way, placing .mp4, .idx, .sub in the same directory
Both Mplayer, VLC, and WMP with vobsub supports this
bond
11th February 2006, 18:24
once you convert to ttxt, evrything will be bottom centre.obviously not true. you can place the text whereever you want with ttxt (you can also place every line differently aso...)
Kurtnoise
18th February 2006, 09:36
I'm testing different things right now (bt, XMT-A, XMT-O...) and there are a lot of potential about this.
Just a hint if you're interested :
Extract bitmaps from vobsub/Vob files.
Convert them to png or jpg.
Create a XMT-O file including pictures and video.
Mux this script into a mp4...
ok...finally, I've made a such thing. This is not easy with tools available for now and unfortunately the file is only playable with the IBM player. :( If some people are interested by that, ping me. I'll open a new thread for this.
SeeMoreDigital
18th February 2006, 10:52
ok...finally, I've made a such thing. This is not easy with tools available for now and unfortunately the file is only playable with the IBM player. :( If some people are interested by that, ping me. I'll open a new thread for this.I wonder if somebody like Gabest would be interested and up to the challenge of creating a version of his excellent MPC player to support all these wonderful features :)
Drachir
18th February 2006, 11:31
ok...finally, I've made a such thing. This is not easy with tools available for now and unfortunately the file is only playable with the IBM player. :( If some people are interested by that, ping me. I'll open a new thread for this.
It dosen't work with Osmo4(GPAC)?
Can you upload a sample?
Kurtnoise
18th February 2006, 13:26
No, it doesn't work with Osmo4. Sub pictures don't appear.
I'm uploading a sample...wait a minute.
Kurtnoise
18th February 2006, 13:50
http://kurtnoise.free.fr/Sample_xmt.mp4
SeeMoreDigital
18th February 2006, 14:26
As a matter of interest, are tracks 04 - 12 PNG files?
If so, is normal for "image" files to possess a "Visual Size" of "0 x 0".
I notice too that YAMB indicates that "Track 03" has a "Indicated Track Size" of "0 x 0"
Not that I can "play" this file though.... Bummer!
bond
18th February 2006, 14:35
yep the file has many "png tracks", which are only single pictures. i would assume a full movie would have tons of such pngs stored (which would look kinda strange :D )
btw its also possible to use jpeg in mp4
i havent checked the bifs yet, but i assume its supposed to make each png be displayed after each other with the right time, right?
btw kurtnoise, if you want to write a gui for creating mp4menu-style menus in mp4, be sure i will help you whereever possible ;)
Drachir
18th February 2006, 14:58
Here Osmo4 display the png image in front of the video. But it display them unscaled(there is nothing that tells Osmo4 to scale the image) and I see only a white surface. Maybe the png Decoder used by Osmo4 don't like transparent png. The updated OD IDs are not used by a node. At least I couldn't find any after I dumped the scene with MP4Box -bt Sample_xmt.mp4.
The objectTypeIndication inside the IOD for odsm/sdsm is set to 255(0xFF) and a pixelWidth/Height is not set.
SeeMoreDigital
18th February 2006, 15:03
As a side issue....
I am able to play the "video" element of the file in VLC.... but have been unable to play the file in MPC using FFdshow's filters.
However, after a little filter fiddling, I was able to get XviD's filter to play the file in MPC.... how bizarre!
After de-muxing the PNG files I notice they are 608x448 "Transparent Overlays" with white text....
Kurtnoise
18th February 2006, 15:55
guys, of course we have pictures, vobsub file contains....pictures. :D
i havent checked the bifs yet, but i assume its supposed to make each png be displayed after each other with the right time, right?
yeah...the right duration of subtitles.
btw kurtnoise, if you want to write a gui for creating mp4menu-style menus in mp4, be sure i will help you whereever possible ;)
Planned for Yamb 2.0. At least, a xmt/bt editor. ;)
Here Osmo4 display the png image in front of the video. But it display them unscaled(there is nothing that tells Osmo4 to scale the image) and I see only a white surface.
aa interesting. Maybe my Osmo version is too old and I'm running on Windows OS. Did you try to create a such stream (with vobsub pictures) on your side ?
@SMD: video is a m4v stream encoded by xvid_encraw.
Kurtnoise
18th February 2006, 15:58
I wonder if somebody like Gabest would be interested and up to the challenge of creating a version of his excellent MPC player to support all these wonderful features :)
For the moment, the only avantage in my eyes with pictures could be to have the possibility to play slideshows embedded in mp4.
Drachir
18th February 2006, 18:05
aa interesting. Maybe my Osmo version is too old and I'm running on Windows OS. Did you try to create a such stream (with vobsub pictures) on your side ?
I only played a little bit with your sample. Someting like this could work:
InitialObjectDescriptor {
objectDescriptorID 1
sceneProfileLevelIndication 255
graphicsProfileLevelIndication 255
ODProfileLevelIndication 255
esDescr [
ES_Descriptor {
ES_ID 1
decConfigDescr DecoderConfigDescriptor {
objectTypeIndication 2
streamType 3
decSpecificInfo BIFSv2Config {
isCommandStream true
pixelMetric true
pixelWidth 608
pixelHeight 448
}
}
}
ES_Descriptor {
ES_ID 2
OCR_ES_ID 1
decConfigDescr DecoderConfigDescriptor {
objectTypeIndication 1
streamType 1
}
}
]
}
DEF Group1 OrderedGroup {
children [
# Sound2D {
# source DEF Audio AudioSource {
# url [od:20]
# }
# }
Shape {
appearance Appearance {
texture DEF Video MovieTexture {
url [od:10]
}
}
geometry Bitmap {}
}
DEF Group2 OrderedGroup {
children []
}
]
}
AT 0 {
UPDATE OD [
ObjectDescriptor {
objectDescriptorID 10
esDescr [
ES_Descriptor {
ES_ID 3
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt.mp4#3"
streamFormat "MP4"
}
}
]
}
# ObjectDescriptor {
# objectDescriptorID 20
# esDescr [
# ES_Descriptor {
# ES_ID 4
# OCR_ES_ID 1
# muxInfo MuxInfo {
# fileName "audio.aac"
# }
# }
# ]
# }
ObjectDescriptor {
objectDescriptorID 30
esDescr [
ES_Descriptor {
ES_ID 5
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track4.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 40
esDescr [
ES_Descriptor {
ES_ID 6
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track5.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 50
esDescr [
ES_Descriptor {
ES_ID 7
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track6.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 60
esDescr [
ES_Descriptor {
ES_ID 8
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track7.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 70
esDescr [
ES_Descriptor {
ES_ID 9
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track8.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 80
esDescr [
ES_Descriptor {
ES_ID 10
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track9.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 90
esDescr [
ES_Descriptor {
ES_ID 11
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track10.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 100
esDescr [
ES_Descriptor {
ES_ID 12
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track11.png"
}
}
]
}
# ObjectDescriptor {
# objectDescriptorID 110
# esDescr [
# ES_Descriptor {
# ES_ID 13
# OCR_ES_ID 1
# muxInfo MuxInfo {
# fileName "Sample_xmt_track12.png"
# }
# }
# ]
# }
]
}
AT 5000 {
INSERT AT Group2.children[0]
DEF Image Shape {
appearance Appearance {
texture ImageTexture {
url [od:30]
}
}
geometry Bitmap {}
}
}
AT 10900 {
XDELETE Image
}
AT 11000 {
INSERT AT Group2.children[0]
DEF Image Shape {
appearance Appearance {
texture ImageTexture {
url [od:40]
}
}
geometry Bitmap {}
}
}
AT 17900 {
XDELETE Image
}
AT 18000 {
INSERT AT Group2.children[0]
DEF Image Shape {
appearance Appearance {
texture ImageTexture {
url [od:50]
}
}
geometry Bitmap {}
}
}
AT 25900 {
XDELETE Image
}
AT 26000 {
INSERT AT Group2.children[0]
DEF Image Shape {
appearance Appearance {
texture ImageTexture {
url [od:60]
}
}
geometry Bitmap {}
}
}
AT 30900 {
XDELETE Image
}
AT 31000 {
INSERT AT Group2.children[0]
DEF Image Shape {
appearance Appearance {
texture ImageTexture {
url [od:70]
}
}
geometry Bitmap {}
}
}
AT 33900 {
XDELETE Image
}
AT 34000 {
INSERT AT Group2.children[0]
DEF Image Shape {
appearance Appearance {
texture ImageTexture {
url [od:80]
}
}
geometry Bitmap {}
}
}
AT 38400 {
XDELETE Image
}
AT 38500 {
INSERT AT Group2.children[0]
DEF Image Shape {
appearance Appearance {
texture ImageTexture {
url [od:90]
}
}
geometry Bitmap {}
}
}
AT 46400 {
XDELETE Image
}
AT 46500 {
INSERT AT Group2.children[0]
DEF Image Shape {
appearance Appearance {
texture ImageTexture {
url [od:100]
}
}
geometry Bitmap {}
}
}
AT 50000 {
XDELETE Image
}
But it seems Osmo4 don't like transparent png. And you will get many Tracks like Bond said "^^. I tried to take the timings from your sample, but I am not sure if they are correct. I could find only timings at which time the png should be displayed, but not at which time the image should disappear.
EDIT:Ups, made a mistake. You have to add numbers in the BIFS text to the DEF Image1 ... XDELETE Image1. You cant use the same DEF more than once. This way it should work if Osmo4 would support transparent png.
Kurtnoise
18th February 2006, 18:20
For this sample, I used this :
<?xml version="1.0" encoding="UTF-8"?>
<XMT-O xmlns="urn:mpeg:mpeg4:xmto:schema:2002" xsi:schemaLocation="urn:mpeg:mpeg4:xmto:schema:2002 xmt-o.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink">
<head>
<!-- <layout metrics="pixel" type="xmt/xmt-basic-layout">
<topLayout width="400" height="300" backgroundColor="#99CCCD">
</topLayout>
</layout> -->
<meta name="copyright" content="(c)Copyright IBM(R) 2001-2003 Licensed Material - Property of IBM(R) - All Rights Reserved"/>
</head>
<body>
<seq>
<par>
<!-- <par end="slide5.end"> -->
<video dur="media" src="..........._video.cmp"/>
<img id="slide1" src="..........Img_01.png" begin="0s" dur="5s">
<transformation translation="0 16"/>
</img>
<img id="slide2" src=".........Img_02.png" begin="slide1.end" dur="6s">
<transformation translation="0 16"/>
</img>
<img id="slide3" src=".............Img_03.png" begin="slide2.end" dur="7s">
<transformation translation="0 16"/>
</img>
<img id="slide4" src="........Img_04.png" begin="slide3.end" dur="8s">
<transformation translation="0 16"/>
</img>
<img id="slide5" src=".........Img_05.png" begin="slide4.end" dur="5s">
<transformation translation="0 16"/>
</img>
<img id="slide6" src=".........Img_06.png" begin="slide5.end" dur="3s">
<transformation translation="0 16"/>
</img>
<img id="slide7" src=".........Img_07.png" begin="slide6.end" dur="4.5s">
<transformation translation="0 16"/>
</img>
<img id="slide8" src=".........Img_08.png" begin="slide7.end" dur="8s">
<transformation translation="0 16"/>
</img>
<img id="slide9" src="........Img_09.png" begin="slide8.end" dur="6.2s">
<transformation translation="0 16"/>
</img>
</par>
</seq>
</body>
</XMT-O>
This is not a big deal imo.
And with non-transparent pictures, video is not visible (i.e pictures "hide" video)
edit: where did you place sub duration in your bt file ?
Drachir
18th February 2006, 18:37
Ah, in your sample the sub png is displayed until the next png will be displayed. That why I couldn't find a stop time.
In my opinion BIFS text is more readable ;) .
In Osmo4 the Video is hidden by the png (a white surface). Osmo4 dosen't support transparent png it seems.
EDIT: look for XDELETE it delete the before DEF and INSERT Shape "Image" at a given time.
bond
18th February 2006, 20:48
For the moment, the only avantage in my eyes with pictures could be to have the possibility to play slideshows embedded in mp4.i assume for compatibility reasons this would be better done with videostreams
Drachir
18th February 2006, 22:41
If I open/save the extracted png with Gimp, the transparent png work with Osmo4.
http://img119.imageshack.us/img119/1452/osmo4suppng5mh.th.jpg (http://img119.imageshack.us/my.php?image=osmo4suppng5mh.jpg)
Kurtnoise
18th February 2006, 22:43
i assume for compatibility reasons this would be better done with videostreams
which compatibility reasons ? to be compatible with mp4 ?
xmt is full mpeg4 compliant.
SeeMoreDigital
18th February 2006, 22:44
Nice to see it in action ;)
Kurtnoise
18th February 2006, 22:48
EDIT:Ups, made a mistake. You have to add numbers in the BIFS text to the DEF Image1 ... XDELETE Image1. You cant use the same DEF more than once. This way it should work if Osmo4 would support transparent png.
You mean something like that ?
AT 18000 {
INSERT AT Group2.children[0]
DEF Image1 Shape {
appearance Appearance {
texture ImageTexture {
url [od:50]
}
}
geometry Bitmap {}
}
}
AT 25900 {
XDELETE Image1
}
AT 26000 {
INSERT AT Group2.children[0]
DEF Image2 Shape {
appearance Appearance {
texture ImageTexture {
url [od:60]
}
}
geometry Bitmap {}
}
}
AT 30900 {
XDELETE Image2
}
Drachir
18th February 2006, 22:58
Yes, this way :). I am sure I could be done better - but it is working.
Kurtnoise
18th February 2006, 23:16
ok...did you try with IBM player ? It should work on Linux. It's java-based.
Drachir
18th February 2006, 23:42
It seems IBM don't support XDELETE. The old png don't get removed.
http://img110.imageshack.us/img110/9877/ibmsubpng5kn.th.jpg (http://img110.imageshack.us/my.php?image=ibmsubpng5kn.jpg)
Drachir
19th February 2006, 09:30
If you use something like this it will work with the IBM player too.
InitialObjectDescriptor {
objectDescriptorID 1
sceneProfileLevelIndication 255
graphicsProfileLevelIndication 255
ODProfileLevelIndication 255
esDescr [
ES_Descriptor {
ES_ID 1
decConfigDescr DecoderConfigDescriptor {
objectTypeIndication 2
streamType 3
decSpecificInfo BIFSv2Config {
isCommandStream true
pixelMetric true
pixelWidth 608
pixelHeight 448
}
}
}
ES_Descriptor {
ES_ID 2
OCR_ES_ID 1
decConfigDescr DecoderConfigDescriptor {
objectTypeIndication 1
streamType 1
}
}
]
}
DEF Group1 OrderedGroup {
children [
# Sound2D {
# source DEF Audio AudioSource {
# url [od:20]
# }
# }
Shape {
appearance Appearance {
texture DEF Video MovieTexture {
url [od:10]
}
}
geometry Bitmap {}
}
DEF Group2 OrderedGroup {
children [
Shape {
appearance Appearance {
texture DEF Image ImageTexture {
url []
}
}
geometry Bitmap {}
}
]
}
]
}
AT 0 {
UPDATE OD [
ObjectDescriptor {
objectDescriptorID 10
esDescr [
ES_Descriptor {
ES_ID 3
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt.mp4#3"
streamFormat "MP4"
}
}
]
}
# ObjectDescriptor {
# objectDescriptorID 20
# esDescr [
# ES_Descriptor {
# ES_ID 4
# OCR_ES_ID 1
# muxInfo MuxInfo {
# fileName "audio.aac"
# }
# }
# ]
# }
ObjectDescriptor {
objectDescriptorID 30
esDescr [
ES_Descriptor {
ES_ID 5
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track4g.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 40
esDescr [
ES_Descriptor {
ES_ID 6
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track5g.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 50
esDescr [
ES_Descriptor {
ES_ID 7
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track6g.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 60
esDescr [
ES_Descriptor {
ES_ID 8
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track7g.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 70
esDescr [
ES_Descriptor {
ES_ID 9
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track8g.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 80
esDescr [
ES_Descriptor {
ES_ID 10
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track9g.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 90
esDescr [
ES_Descriptor {
ES_ID 11
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track10g.png"
}
}
]
}
ObjectDescriptor {
objectDescriptorID 100
esDescr [
ES_Descriptor {
ES_ID 12
OCR_ES_ID 1
muxInfo MuxInfo {
fileName "Sample_xmt_track11g.png"
}
}
]
}
# ObjectDescriptor {
# objectDescriptorID 110
# esDescr [
# ES_Descriptor {
# ES_ID 13
# OCR_ES_ID 1
# muxInfo MuxInfo {
# fileName "Sample_xmt_track12g.png"
# }
# }
# ]
# }
]
}
AT 5000 {
REPLACE Image.url BY [od:30]
}
AT 9000 {
REPLACE Image.url BY []
}
AT 11000 {
REPLACE Image.url BY [od:40]
}
AT 15000 {
REPLACE Image.url BY []
}
AT 18000 {
REPLACE Image.url BY [od:50]
}
AT 23000 {
REPLACE Image.url BY []
}
AT 26000 {
REPLACE Image.url BY [od:60]
}
AT 30000 {
REPLACE Image.url BY []
}
AT 31000 {
REPLACE Image.url BY [od:70]
}
AT 33500 {
REPLACE Image.url BY []
}
AT 34000 {
REPLACE Image.url BY [od:80]
}
AT 38000 {
REPLACE Image.url BY []
}
AT 38500 {
REPLACE Image.url BY [od:90]
}
AT 46000 {
REPLACE Image.url BY []
}
AT 46500 {
REPLACE Image.url BY [od:100]
}
AT 50000 {
REPLACE Image.url BY []
}
EDIT: IBM don't like the empty url. No time between the displayed png. I am not sure if it is right to use a empty url. But it work with Osmo4.
EDIT2: ISO/IEC 14772 - ImageTextureWhen the url field contains no values ([]), texturing is disabled So it should be usable.
bond
19th February 2006, 12:27
which compatibility reasons ? compatibility with 99.9% of the mp4 players
but hey, bifs is nice, thats why i wrote my scripts after all :)
Kurtnoise
19th February 2006, 16:30
here is a new sample (http://kurtnoise.free.fr/Sample_2.mp4) (with non transparent pictures) which works with Osmo4.
Question : can we add a position syntax for texture DEF Image ImageTexture ? I tried but mp4box returns an error...
Drachir
19th February 2006, 17:58
here is a new sample (http://kurtnoise.free.fr/Sample_2.mp4) (with non transparent pictures) which works with Osmo4.
If you use Gimp to create the transparent PNG, the decoder used by Osmo4 can handle it.
Question : can we add a position syntax for texture DEF Image ImageTexture ? I tried but mp4box returns an error...
Try something like this:
DEF Group2 OrderedGroup {
children [
Transform2D {
translation 0 -190
children [
Shape {
appearance Appearance {
texture DEF Image ImageTexture {}
}
geometry Bitmap {}
}
]
}
]
}
bond
20th February 2006, 13:09
kurtnoise, are you doing this png storage for being able to remux vobsubs without ocr into mp4?
if so, it might be better to push jeanlf to add vobsub muxing support to mp4box
not that i want you to stop what you are doing, but i dont really get the sense of it :D
Kurtnoise
20th February 2006, 13:34
kurtnoise, are you doing this png storage for being able to remux vobsubs without ocr into mp4?
:p not exactly but I would like yeah...Basically, I'm learning how to work bt/xmt files with mp4.
Drachir
20th February 2006, 14:20
:p not exactly but I would like yeah...Basically, I'm learning how to work bt/xmt files with mp4.
I would take a look into the GPAC Regression Test Suite (http://gpac.sourceforge.net/downloads/gpac_regression_tests-0.2.3.tar.gz). There are some sample.
PrincepSenatus
22nd February 2006, 01:27
A little off topic, but mp4 menus can be see only by using OSMO GPAC player or using that IBM Player, if i am not mistaken.
If this is the case, it's too fewer option. Why not make a filter, like VSFilter ( for subs ) but for mp4 menus, so we could use any kind of player ( like mpc or wmp ) and use the mp4 menus?
:thanks:
bond
22nd February 2006, 19:16
there are more systems players than those two
eg via enviviotv you can play menus in windows media player, quicktime and realplayer (check my "profile 2" of mp4menu)
SeeMoreDigital
22nd February 2006, 20:01
As a matter of interest.....
Would it be possible to configure "chapters" to point to a specified video track number?
bond
22nd February 2006, 20:08
you mean playing different video streams behind each other, accessable by something like "chapters"
if so, yes
SeeMoreDigital
22nd February 2006, 20:38
you mean playing different video streams behind each other, accessable by something like "chapters"
if so, yesThis would be great for creating music video compilations!
Would be able to name the individual video streams/chapters and have them appear (and selectable) via Media Player Classic's "Jump to..." option?
Cheers
bond
22nd February 2006, 21:25
you would need a systems player to handle systems content. propably you can setup such a file and play it in mpc via enviviotv
SeeMoreDigital
22nd February 2006, 21:42
Bummer... never mind!
pyrates
3rd September 2006, 04:51
is there going to be an updated version of this anytime soon? It's been like 3 years already :)
bond
3rd September 2006, 18:59
is there going to be an updated version of this anytime soon? It's been like 3 years already :)no. i will not update it unless someone wants to eg write a gui based on it
this doesnt mean that noone else can update it ;)
SeeMoreDigital
3rd September 2006, 19:36
Much as I love the idea of being able to navigate menu structures placed within the MP4 container I can't help feeling the idea wont take off until we have software players that support the implementation :(
pyrates
4th September 2006, 02:13
no. i will not update it unless someone wants to eg write a gui based on it
this doesnt mean that noone else can update it ;)
Well I would try it if someone did ;) I'm also not a programmer unfortunately. Are there any players that support the mp4 menus though?
Drachir
4th September 2006, 07:40
Are there any players that support the mp4 menus though?
There is the software player Osmo4 from http://gpac.sourceforge.net/ .
pyrates
4th September 2006, 09:05
There is the software player Osmo4 from http://gpac.sourceforge.net/ .
Unfortunately that player there is no binary version available. You gotta compile it from source. Which means end users won't probably get it then. And that just hurts the mp4menu program.
Drachir
4th September 2006, 09:23
Unfortunately that player there is no binary version available. You gotta compile it from source. Which means end users won't probably get it then. And that just hurts the mp4menu program.
True, but you will have the same problem with XviD,x264 or FFDshow binary.
You can find a Windows binary(GPAC Framework) here: http://ffdshow.faireal.net/mirror/gpac/
bond
4th September 2006, 18:35
enviviotv is a plugin useable in every directshow player (mpc, wmp, bsplayer, zoomplayer...), realplayer and quicktime as discussed already in this thread
pyrates
4th September 2006, 21:04
Too bad it isn't free. Can't seem to find a download for it anywhere.
nickolasemp
26th November 2006, 13:07
Has anyone seen the new tool from Kurtnoise? It's a very good GUI. Haven't tested it yet. I have just downloaded it. Since I have not bought a new DVD, I can't convert anything right now. It's right here (http://kurtnoise.free.fr/index.php?dir=misc/&file=MP4MenuGui-0.1.1.4.7z).
Merci beaucoup Kurtnoise! T'es vraiment ingιnieux..!
Edit: I have just seen that it doesn't work. It stucks somewhere (sth about track 4).
pyrates
27th November 2006, 00:17
Has anyone seen the new tool from Kurtnoise? It's a very good GUI. Haven't tested it yet. I have just downloaded it. Since I have not bought a new DVD, I can't convert anything right now. It's right here (http://kurtnoise.free.fr/index.php?dir=misc/&file=MP4MenuGui-0.1.1.4.7z).
Merci beaucoup Kurtnoise! T'es vraiment ingιnieux..!
Edit: I have just seen that it doesn't work. It stucks somewhere (sth about track 4).
Here's the thread on it:
link (http://forum.doom9.org/showthread.php?t=117574)
iamhelp
13th July 2007, 07:38
Sorry "_"
Could you help me about file Mp4 sub?
How to creat bt file?
And bt file can show with "rtsp" play on webpage,right?
bond
13th July 2007, 18:57
And bt file can show with "rtsp" play on webpage,right?no
do you still want to use mp4sub?
Drachir
15th July 2007, 11:09
Sorry "_"
Could you help me about file Mp4 sub?
How to creat bt file?
And bt file can show with "rtsp" play on webpage,right?
You can crate a mp4 file from the BIFS Text(*.bt) and hint(-hint -ocr) this file with MP4Box. Now a streamingserver like DSS is able to stream the BIFS track. If it is only a simple scene description like MP4Sub there should be no problem in streaming with DSS.
You can find here some information how to use osmozilla or GPAX:
http://gpac.sourceforge.net/doc_embed.php
What do you want to do?
If you only need a audio/video file with subtittle, crate a 3gp file with 3GPP Timed Text / MPEG-4 Streaming Text, and hint this file for streaming with DSS( http://developer.apple.com/opensource/server/streaming/index.html )
You can use osmozilla/GPAX embedded into a website to play this stream. Didn't tested QuickTime until now, but local playback of 3gp files with 3GPP Timed Text / MPEG-4 Streaming Text is working with QuickTme.
VLC/vlc-mozillaplugin don't support the streaming(rtp) of 3GPP Timed Text / MPEG-4 Streaming Text,AFAIK.
Inventive Software
9th April 2008, 23:25
Sorry to gravedig, but where in the MPEG-4 parts is the menu system defined? I'm looking to automate menu conversion from DVD's IFO and VOB files to MP4 and what I think is BIFS. The only thing I could see scuppering it is there's a lot of motion video in most DVDs. :)
Drachir
10th April 2008, 11:28
There isn't any part which only deffines something like the DVD menu system.
In MPEG-4 there is a system to handle media objects, the the Object Descriptor Framework(MPEG-4 "Systems" ISO/IEC 14496-1).
BIFS(Binary Format For Scene)(MPEG-4 "Scene Description and Application Engine" ISO/IEC 14496-11) defines how the media objects have to be presented, and if wanted how to interact with this objects.
Based on this you are able to create a DVD like menu.
To implant chapters you could use the segmentDescriptor to divide a media object into parts.
Take a look how this is done by MP4MenuGUI:
http://forum.doom9.org/showthread.php?t=117574
Or take a look in the BIFS text script from Bond:
http://sourceforge.net/projects/mp4menu
Also from interest could be the GPAC Regression Test suite:
http://gpac.sourceforge.net/auth_suite.php
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.