View Full Version : HowTo create DVD-like Menus in MP4 - MP4Menu
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 ;)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.