PDA

View Full Version : Problem when importing Scenarist script into Muxman


manolito
17th August 2006, 23:45
I get wrong chapter points and subtitle points after importing a Scenarist script for a PAL video into Muxman 0.15P:

What I am trying to achieve is to integrate Muxman 0.15P into DVD2SVCD. DVD2SVCD does support Scenarist 2.7, which means that D2S creates a Scenarist script file. Muxman does import this script without any error message, and for a NTSC video it also muxes / authors a perfect DVD. But for a PAL video I have hit a road block.

The Scenarist script created by DVD2SVCD contains the correct duration, the chapter points are correct, drop type is "non-drop frame", resolution and video standard are correct, too. But when I import this script into Muxman and save it as a MXP project file again, Muxman has converted the duration and all chapter points to values which are larger by 20%.

I tried to change drop type to "Drop Frame", I patched the video stream header to NTSC size and frame rate, nothing works. The only working method so far is to change "Duration" to a value which is smaller by 20%. But there must be a better way...

How do I modify the Scenarist script to convince Muxman that it should not touch the duration and chapter values for PAL videos?

Cheers
manolito

mpucoder
18th August 2006, 01:31
Make sure that all assets are PAL and the script declares them as PAL, especially the video. The video attributes determine the timecodes used for exporting. You can also see the video standard and resolution used in the gui after importing any script.

manolito
18th August 2006, 12:35
Well, I think I did check everything....

Here are the two scripts for a short 30sec clip. The clip is progressive PAL @ 720 x 576, encoded with QuEnc 0.71. (There is no difference when I use CCE 2.67 for encoding)

The first script is the Scenarist script generated by DVD2SVCD. I had to cut off a huge part because the board software limits the length of a post.
Object=Version
{
Name=MODIFIER VERSION
Major Version=1
Minor Version=2
Bug Fix Version=0
Data Format Version=4
Build Version=19980918
Edition Version=1000
}
Object=Data Folder
{
Name=Data
Data=List
{
Item=Video
{
Place Holder=No
Comment=
Name=Encoded_Video_QuEnc_PAL
Resolution=PAL
Drop Type=Non-drop frame
Data Start Time=00:00:00;00
Data End Time=00:00:30;11
File=I:\Movies\Encoded_Video_QuEnc_PAL.mpv
Width=720
Height=576
Is Encoded=Yes
Encode Type=MPEG 2
Size=720 x 576
Aspect Ratio=4 : 3
Picture Structure=Frame Structure
GOP Size=12 frames
GOP Structure=N/A
Bit rate=8000000
Average Bitrate=6000000
Minimum Bitrate=4000000
Bitrate Type=Variable
Icon Time=00:00:00;00
Line21 Switch1=No
Line21 File1=
Line21 Switch2=No
Line21 File2=
Chapter Breaks=List
{
}
}
Item=MPEG Audio
{
Place Holder=No
Comment=
Name=Encoded_audio_1.mp2
Resolution=PAL
Drop Type=Non-drop frame
Data Start Time=00:00:00;00
Data End Time=00:00:30;11
File=I:\Movies\Encoded_audio_1.mp2
Audio Type=MPEG 1
Bit rate=192000
Channel=2
Surround=Normal(00b)
Dynamic Range=OFF
Dynamic Range X=4
Dynamic Range Y=0
}
}
}
Object=Track Folder
{
Name=Tracks
Tracks=List
{
Item=Video Track
{
Name=Encoded_Video_QuEnc_PAL-t
Display Mode=Not Specified
Audio Streams=List
{
Item=Audio Stream
{
Item=Audio Play
{
Data=Encoded_audio_1.mp2
Start Time To Video=00:00:00;00
Resolution=PAL
Drop Type=Non-drop frame
Start Time=00:00:00;00
Duration=00:00:30;11
}
Stream Number=1
Language=Not Specified
Synchronization=Yes
}
}
Sub-Picture Streams=List
{
}
Scenes=List
{
Item=Scene
{
Name=Encoded_Video_QuEnc_PAL-t-s
Color Palette=DefaultPalette
Angle Type=Seamless
Scene Time=00:00:00;00
Story Scenes=List
{
}
Angle Scenes=List
{
}
UOP=
{
UOP3 Stop()=Permitted
UOP4 GoUp()=Permitted
UOP5 Time_Search(), PTT_Search()=Permitted
UOP6 PrevPG_Search(), TopPG_Search()=Permitted
UOP7 NextPG_Search()=Permitted
UOP8 Forward_Scan()=Permitted
UOP9 Backward_Search()=Permitted
UOP10 Menu_Call(Title)=Permitted
UOP11 Menu_Call(Root)=Permitted
UOP12 Menu_Call(Sub-picture)=Permitted
UOP13 Menu_Call(Audio)=Permitted
UOP14 Menu_Call(Angle)=Permitted
UOP15 Menu_Call(PTT)=Permitted
UOP16 Resume()=Permitted
UOP18 Still_Off()=Permitted
UOP19 Pause_On()=Permitted
UOP20 Audio_Sream_Change()=Permitted
UOP21 Sub-picture_Sream_Change()=Permitted
UOP22 Angle_Change()=Permitted
UOP23 Karaoke_Audio()=Permitted
UOP24 Video_Presentation()=Permitted
}
}
Item=Scene
{
Name=Encoded_Video_QuEnc_PAL-t-s_3
Color Palette=DefaultPalette
Angle Type=Seamless
Scene Time=00:00:10;00
Story Scenes=List
{
}
Angle Scenes=List
{
}
UOP=
{
UOP3 Stop()=Permitted
UOP4 GoUp()=Permitted
UOP5 Time_Search(), PTT_Search()=Permitted
UOP6 PrevPG_Search(), TopPG_Search()=Permitted
UOP7 NextPG_Search()=Permitted
UOP8 Forward_Scan()=Permitted
UOP9 Backward_Search()=Permitted
UOP10 Menu_Call(Title)=Permitted
UOP11 Menu_Call(Root)=Permitted
UOP12 Menu_Call(Sub-picture)=Permitted
UOP13 Menu_Call(Audio)=Permitted
UOP14 Menu_Call(Angle)=Permitted
UOP15 Menu_Call(PTT)=Permitted
UOP16 Resume()=Permitted
UOP18 Still_Off()=Permitted
UOP19 Pause_On()=Permitted
UOP20 Audio_Sream_Change()=Permitted
UOP21 Sub-picture_Sream_Change()=Permitted
UOP22 Angle_Change()=Permitted
UOP23 Karaoke_Audio()=Permitted
UOP24 Video_Presentation()=Permitted
}
}
Item=Scene
{
Name=Encoded_Video_QuEnc_PAL-t-s_6
Color Palette=DefaultPalette
Angle Type=Seamless
Scene Time=00:00:20;00
Story Scenes=List
{
}
Angle Scenes=List
{
}
UOP=
{
UOP3 Stop()=Permitted
UOP4 GoUp()=Permitted
UOP5 Time_Search(), PTT_Search()=Permitted
UOP6 PrevPG_Search(), TopPG_Search()=Permitted
UOP7 NextPG_Search()=Permitted
UOP8 Forward_Scan()=Permitted
UOP9 Backward_Search()=Permitted
UOP10 Menu_Call(Title)=Permitted
UOP11 Menu_Call(Root)=Permitted
UOP12 Menu_Call(Sub-picture)=Permitted
UOP13 Menu_Call(Audio)=Permitted
UOP14 Menu_Call(Angle)=Permitted
UOP15 Menu_Call(PTT)=Permitted
UOP16 Resume()=Permitted
UOP18 Still_Off()=Permitted
UOP19 Pause_On()=Permitted
UOP20 Audio_Sream_Change()=Permitted
UOP21 Sub-picture_Sream_Change()=Permitted
UOP22 Angle_Change()=Permitted
UOP23 Karaoke_Audio()=Permitted
UOP24 Video_Presentation()=Permitted
}
}
Item=Scene
{
Name=Encoded_Video_QuEnc_PAL-t-s_9
Color Palette=DefaultPalette
Angle Type=Seamless
Scene Time=00:00:30;00
Story Scenes=List
{
}
Angle Scenes=List
{
}
UOP=
{
UOP3 Stop()=Permitted
UOP4 GoUp()=Permitted
UOP5 Time_Search(), PTT_Search()=Permitted
UOP6 PrevPG_Search(), TopPG_Search()=Permitted
UOP7 NextPG_Search()=Permitted
UOP8 Forward_Scan()=Permitted
UOP9 Backward_Search()=Permitted
UOP10 Menu_Call(Title)=Permitted
UOP11 Menu_Call(Root)=Permitted
UOP12 Menu_Call(Sub-picture)=Permitted
UOP13 Menu_Call(Audio)=Permitted
UOP14 Menu_Call(Angle)=Permitted
UOP15 Menu_Call(PTT)=Permitted
UOP16 Resume()=Permitted
UOP18 Still_Off()=Permitted
UOP19 Pause_On()=Permitted
UOP20 Audio_Sream_Change()=Permitted
UOP21 Sub-picture_Sream_Change()=Permitted
UOP22 Angle_Change()=Permitted
UOP23 Karaoke_Audio()=Permitted
UOP24 Video_Presentation()=Permitted
}
}
}
Recording Information(RECI)=Recording Information
{
ISRC in Video stream=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in Audio stream #0=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in Audio stream #1=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in Audio stream #2=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in Audio stream #3=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in Audio stream #4=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in Audio stream #5=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in Audio stream #6=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in Audio stream #7=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in SP stream #0, #8, #16 or #24=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in SP stream #1, #9, #17 or #25=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in SP stream #2, #10, #18 or #26=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in SP stream #3, #11, #19 or #27=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in SP stream #4, #12, #20 or #28=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in SP stream #5, #13, #21 or #29=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in SP stream #6, #14, #22 or #30=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
ISRC in SP stream #7, #15, #23 or #31=ISRC
{
Validity Flag=No
Country Code=ZZ
Copyright Code=ZZZ
Recording Year=3
Recording Number=1
}
Decoding SP stream #0 to #7=Not selected
Decoding SP stream #8 to #15=Not selected
Decoding SP stream #16 to #23=Not selected
Decoding SP stream #24 to #31=Not selected
}
Divx=No
Divx Interval=2
Video Stream=Main Video Stream
{
Item=Main Video Play
{
Data=Encoded_Video_QuEnc_PAL
Start Time To Video=00:00:00;00
Resolution=PAL
Drop Type=Non-drop frame
Start Time=00:00:00;00
Duration=00:00:30;11
}
Stream Number=0
}
Angles=List
{
}
Stories=List
{
}
}
}
}

The next script is created by Muxman 0.15P after importing the above script and saving the project right away:

Section=Settings
{
Destination Folder=I:\Movies\DVD-Image
Item=Palette
{
Name=DefaultPalette
Color 0=0, 0, 255
Color 1=255, 0, 0
Color 2=0, 0, 0
Color 3=255, 255, 255
Color 4=0, 255, 0
Color 5=255, 0, 255
Color 6=255, 255, 0
Color 7=0, 125, 125
Color 8=125, 125, 125
Color 9=225, 225, 225
Color 10=125, 0, 0
Color 11=0, 125, 0
Color 12=0, 0, 0
Color 13=255, 255, 255
Color 14=30, 30, 30
Color 15=128, 128, 128
}
}
Section=Content
{
Item=Segment
{
Name=Encoded_Video_QuEnc_PAL-t
Display Mode=4:3
Item=Video Stream
{
Coding Mode=Mpeg-2
Standard=PAL
CC Field 1=No
CC Field 2=No
Item=Video Play
{
File=I:\Movies\Encoded_Video_QuEnc_PAL.mpv
Size=27119659
Duration=00:00:36:01
}
}
Item=Audio Stream
{
Stream Number=1
Language Extension=1
Delay=0
Type=4401
Frame Size=768
Item=Audio Play
{
File=I:\Movies\Encoded_audio_1.mp2
Size=960000
}
}
Item=Scene List
{
Item=Scene
{
Name=Encoded_Video_QuEnc_PAL-t-s
Scene Time=00:00:00:00
Uop=00000000
}
Item=Scene
{
Name=Encoded_Video_QuEnc_PAL-t-s_3
Scene Time=00:00:12:00
Uop=00000000
}
Item=Scene
{
Name=Encoded_Video_QuEnc_PAL-t-s_6
Scene Time=00:00:24:00
Uop=00000000
}
Item=Scene
{
Name=Encoded_Video_QuEnc_PAL-t-s_9
Scene Time=00:00:36:00
Uop=00000000
}
}
}
}
Section=Navigation
{
Item=First PGC
{
Name=FP
Menu ID=No Menu
Uop=00000000
PG Playback Mode=Sequential Playback
Repeat Times=0
PGC Still Time=0
Palette=DefaultPalette
Item=Pre Commands
{
JumpTT Title_1
}
Item=Post Commands
{
}
Item=Cell Commands
{
}
Item=Program List
{
}
}
Item=VMG
{
}
Item=VTS01
{
Item=Language
{
Name=Unspecified_1
Language=unspecified
Item=PGC
{
Name=Unspecified_root
Menu ID=Root Menu
Uop=00000000
Next PGC=
GoUp PGC=
PG Playback Mode=Sequential Playback
Repeat Times=0
PGC Still Time=0
Palette=DefaultPalette
Item=Pre Commands
{
JumpVTS_TT Title_1
}
Item=Post Commands
{
}
Item=Cell Commands
{
}
Item=Program List
{
}
}
}
Item=Title
{
Name=Title_1
Uop=0
Item=PGC
{
Name=Encoded_Video_QuEnc_PAL-t-p
Menu ID=Title Entry
Uop=00000000
Next PGC=
Prev PGC=
GoUp PGC=
PG Playback Mode=Sequential Playback
Repeat Times=0
PGC Still Time=0
Palette=DefaultPalette
Item=Pre Commands
{
}
Item=Post Commands
{
}
Item=Cell Commands
{
}
Item=Program List
{
Item=Program
{
Name=Encoded_Video_QuEnc_PAL-t-s_1
Item=Cell
{
Name=Encoded_Video_QuEnc_PAL-t-s_2
Linked Scene=Encoded_Video_QuEnc_PAL-t-s
Command=0
Cell Still Time=0
Access Restriction Flag=Permitted
}
}
Item=Program
{
Name=Encoded_Video_QuEnc_PAL-t-s_4
Item=Cell
{
Name=Encoded_Video_QuEnc_PAL-t-s_5
Linked Scene=Encoded_Video_QuEnc_PAL-t-s_3
Command=0
Cell Still Time=0
Access Restriction Flag=Permitted
}
}
Item=Program
{
Name=Encoded_Video_QuEnc_PAL-t-s_7
Item=Cell
{
Name=Encoded_Video_QuEnc_PAL-t-s_8
Linked Scene=Encoded_Video_QuEnc_PAL-t-s_6
Command=0
Cell Still Time=0
Access Restriction Flag=Permitted
}
}
Item=Program
{
Name=Encoded_Video_QuEnc_PAL-t-s_10
Item=Cell
{
Name=Encoded_Video_QuEnc_PAL-t-s_11
Linked Scene=Encoded_Video_QuEnc_PAL-t-s_9
Command=0
Cell Still Time=0
Access Restriction Flag=Permitted
}
}
}
}
Item=Part of Title List
{
Item=Encoded_Video_QuEnc_PAL-t-s_1
Item=Encoded_Video_QuEnc_PAL-t-s_4
Item=Encoded_Video_QuEnc_PAL-t-s_7
Item=Encoded_Video_QuEnc_PAL-t-s_10
}
}
}
}

The Muxman GUI also correctly reports the video stream as PAL, MPEG-2, 4:3.
Any ideas?

Cheers
manolito

Zeul
18th August 2006, 16:50
Unfortunatey i agree with Manolito - creating a basic pal scp in scenarist and then importing the scp gives strange results. The chapters are off but also the video length, subtitle start time, duration etc etc.

@Mpucoder
Now for a partial solution. PAL timecodes are in the format 00:00:00;00 NTSC timecodes are 00:00:00:00 notice the semicolon for PAL and colon for NTSC. When i changed my test script from ; to : the import was almost perfect - the timestamps were still adjusted (looks like drop time) but were more sensible.
example before i changed the scp
Item=Video Play
{
File=C:\MUXTEST\VTS__06_P02.I-TFF.4~3_1.mpv
Size=16825952
Duration=14:26:20:16
}
}
Item=Sub-Picture Stream
{
Stream Number=1
Language=en
Language Extension=1
Display Mode=unspecified
Item=Sub-Picture Play
{
File=C:\MUXTEST\SubtestFiles\VTS_01_VSUB_P1A1-00-F\VTS_01_VSUB_P1A1-00-F-English_0002_v001_c001.bmp
Time Code=PAL
Display=74:04:44:14
Forced Start=No
Duration=46:12:03:23
Origin=0,0

and after
Item=Video Play
{
File=C:\MUXTEST\VTS__06_P02.I-TFF.4~3_1.mpv
Size=16825952
Duration=00:01:17:01
}
}
Item=Sub-Picture Stream
{
Stream Number=1
Language=en
Language Extension=1
Display Mode=unspecified
Item=Sub-Picture Play
{
File=C:\MUXTEST\SubtestFiles\VTS_01_VSUB_P1A1-00-F\VTS_01_VSUB_P1A1-00-F-English_0002_v001_c001.bmp
Time Code=PAL
Display=00:00:11:08
Forced Start=No
Duration=00:00:02:14
Origin=0,0

Now the actual video duration is 00:01:04:06 and the sub shown has start time 00:00:09:13 with a duration of 00:00:02:14
the chapters were also incorrect.
Now follow this calc for the sub 00:00:09:13 @ 30fps = 283f ; 283f @ 25fps = 00:00:11:08 so it seems that the substarttime was converted at 30fps and then bck to timecode at 25fps.

I also did exactly the same with an NTSC project and that turned out exact.

hope that helps and offers a partial explanation.

Regards
Zeul

manolito
22nd August 2006, 13:54
Thanks Zeul for your help. I tried a few more things with Muxman (tried to make Muxman think that the clip has a frame rate of 30 fps), but no luck.

Unfortunately importing the Scenarist script into DVDPlanner also did not work. DVDPlanner complained about missing time stamps for the scenes and aborted. The Scenarist script does contain a line like "Scene Time=00:00:30;00" for every scene, so I don't know how to fix this.

Cheers
manolito

Zeul
22nd August 2006, 17:38
shoot me over the scp (zip it up!!) to Zeul at dvdplanner.com

Zeul
15th October 2006, 16:44
@manolito
It seems i forgot to have a look at this :eek:

The reason DVDPlanner failed was the script contained MPA audio information - DVDPlanner doesn't support MPA yet, so it threw the parser off.

As soon as i removed the MPA info, it imported just fine.

mpucoder
16th October 2006, 05:49
We both forgot. Semicolons are not recognized by MuxMan's scp parser, so that will have to be corrected (there is precious little documentation for scp). However changing to colons and declaring the correct time code should work.

manolito
26th October 2006, 05:29
Thanks guys for looking into it. I had forgotten about this myself, since I was busy exchanging PMs with Sir Didymus while he was writing his BatchMux plugin.

It is no longer necessary to import a Scenarist script created by DVD2SVCD into MuxMan or DVDPlanner, since the BatchMux plugin intercepts the Commands issued by D2S and creates a MuxMan project file from scratch. Works great, and once again a big THANK YOU to mpucoder for the incredible muxing engine!

Cheers
manolito