1 # Video muxer dialogs for the BiaMovE application
8 class MPEGMuxerDialog (tkSimpleDialog
.Dialog
):
9 """MPEG container -mpegopts options dialog"""
11 self
.result
= "-mpegopts format=" + self
.format
.get ()
12 if (self
.vdelay
.get() != "0"):
13 self
.result
+= ":vdelay=" + self
.vdelay
.get ()
14 if (self
.vdropaudio
.get() == 1):
15 self
.result
+= ":drop"
16 if (self
.adelay
.get() != "0"):
17 self
.result
+= ":adelay=" + self
.adelay
.get ()
18 if (self
.aspectratio
.get() != "(not set)"):
19 self
.result
+= ":vaspect=" + self
.aspectratio
.get ()
20 if (self
.framerate
.get() != "(not set)"):
21 self
.result
+= ":vframerate=" + self
.framerate
.get ()
22 if (self
.bitrate
.get() != "0"):
23 self
.result
+= ":vbitrate=" + self
.bitrate
.get ()
24 if (self
.settsaf
.get() == 1):
25 self
.result
+= ":tsaf"
26 if (self
.interleaving
.get() == 1):
27 self
.result
+= ":interleaving2"
29 def body (self
, master
):
30 Tkinter
.Label (master
, text
="MPEG muxer options (simplified)", fg
="darkblue").grid (column
=0, row
=0, columnspan
=3)
32 Tkinter
.Label (master
, text
="Format").grid (column
=0, row
=1)
34 self
.format
= Tkinter
.StringVar ()
35 self
.format
.set ("mpeg2")
36 Tkinter
.OptionMenu (master
, self
.format
, "mpeg1", "mpeg2", "xvcd", "xsvcd", "dvd", "pes1", "pes2").grid (column
=1, row
=1)
38 Tkinter
.Label (master
, text
="Video delay (1 to 32760) ms").grid (column
=0, row
=2)
40 self
.vdelay
= Tkinter
.StringVar ()
42 Tkinter
.Spinbox (master
, textvariable
=self
.vdelay
, from_
=1, to
=32760).grid (column
=1, row
=2)
44 self
.vdropaudio
= Tkinter
.IntVar ()
45 self
.vdropaudio
.set (0)
46 Tkinter
.Checkbutton (master
, text
= "Drop leading audio", variable
=self
.vdropaudio
, offvalue
=0, onvalue
=1).grid (column
=2, row
=2)
48 Tkinter
.Label (master
, text
="Audio delay (1 to 32760) ms").grid (column
=0, row
=3)
50 self
.adelay
= Tkinter
.StringVar ()
52 Tkinter
.Spinbox (master
, textvariable
=self
.adelay
, from_
=1, to
=32760).grid (column
=1, row
=3)
54 Tkinter
.Label (master
, text
="Aspect ratio").grid (column
=0, row
=4)
56 self
.aspectratio
= Tkinter
.StringVar ()
57 self
.aspectratio
.set ("(not set)")
58 Tkinter
.OptionMenu (master
, self
.aspectratio
, "(not set)", "1", "4/3", "16/9", "221/100").grid (column
=1, row
=4)
60 Tkinter
.Label (master
, text
="Frame rate").grid (column
=0, row
=5)
62 self
.framerate
= Tkinter
.StringVar ()
63 self
.framerate
.set ("(not set)")
64 Tkinter
.OptionMenu (master
, self
.framerate
, "(not set)", "24000/1001", "24", "25", "30000/1001", "30", "50", "60000/1001", "60").grid (column
=1, row
=5)
66 Tkinter
.Label (master
, text
="Video bitrate (0 to ignore)").grid (column
=0, row
=6)
68 self
.bitrate
= Tkinter
.StringVar ()
70 Tkinter
.Spinbox (master
, textvariable
=self
.bitrate
, from_
=0, to
=16000).grid (column
=1, row
=6)
72 self
.settsaf
= Tkinter
.IntVar ()
74 Tkinter
.Checkbutton (master
, text
="Set timestamp on all frames",variable
=self
.settsaf
, onvalue
=1, offvalue
=0).grid (column
=0, row
=7, columnspan
=3)
76 self
.interleaving
= Tkinter
.IntVar ()
77 self
.interleaving
.set (0)
78 Tkinter
.Checkbutton (master
, text
="Interleaving 2", variable
=self
.interleaving
, onvalue
=1, offvalue
=0).grid (column
=0, row
=8, columnspan
=3)
80 class LAVFMuxerDialog (tkSimpleDialog
.Dialog
):
81 """LAVF container -lavfopts options dialog"""
83 if self
.containerfmt
.get () == "(autodetect from filename)":
86 self
.result
= "-lavfopts format=" + self
.containerfmt
.get().split()[0]
88 def body (self
, master
):
89 Tkinter
.Label(master
, text
="libavformat muxer options (simplified)", fg
="darkblue").grid (column
=0, row
=0, columnspan
=2)
91 Tkinter
.Label(master
, text
="Container format").grid (column
=0, row
=1)
93 self
.containerfmt
= Tkinter
.StringVar ()
94 self
.containerfmt
.set ("(autodetect from filename)")
95 Tkinter
.OptionMenu (master
, self
.containerfmt
, "(autodetect from filename)", "mpg MPEG-1 systems or MPEG-2 PS", "asf Advanced streaming format", "avi Audio-video interleaved", "wav Waveform audio", "swf Macromedia Flash", "flv Macromedia Flash video", "rm Realaudio/Realvideo", "nut NUT open container format (experimental)", "mov QuickTime", "mp4 MPEG-4 format", "dv Sony digital video container").grid (column
=1, row
=1)