Removed the binary files
[biamove.git] / videomuxerdialogs.py
1 # Video muxer dialogs for the BiaMovE application
2
3 import Tkinter
4 import tkFileDialog
5 import tkSimpleDialog
6 import tkMessageBox
7
8 class MPEGMuxerDialog (tkSimpleDialog.Dialog):
9 """MPEG container -mpegopts options dialog"""
10 def apply (self):
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"
28
29 def body (self, master):
30 Tkinter.Label (master, text="MPEG muxer options (simplified)", fg="darkblue").grid (column=0, row=0, columnspan=3)
31
32 Tkinter.Label (master, text="Format").grid (column=0, row=1)
33
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)
37
38 Tkinter.Label (master, text="Video delay (1 to 32760) ms").grid (column=0, row=2)
39
40 self.vdelay = Tkinter.StringVar ()
41 self.vdelay.set (0)
42 Tkinter.Spinbox (master, textvariable=self.vdelay, from_=1, to=32760).grid (column=1, row=2)
43
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)
47
48 Tkinter.Label (master, text="Audio delay (1 to 32760) ms").grid (column=0, row=3)
49
50 self.adelay = Tkinter.StringVar ()
51 self.adelay.set (0)
52 Tkinter.Spinbox (master, textvariable=self.adelay, from_=1, to=32760).grid (column=1, row=3)
53
54 Tkinter.Label (master, text="Aspect ratio").grid (column=0, row=4)
55
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)
59
60 Tkinter.Label (master, text="Frame rate").grid (column=0, row=5)
61
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)
65
66 Tkinter.Label (master, text="Video bitrate (0 to ignore)").grid (column=0, row=6)
67
68 self.bitrate = Tkinter.StringVar ()
69 self.bitrate.set (0)
70 Tkinter.Spinbox (master, textvariable=self.bitrate, from_=0, to=16000).grid (column=1, row=6)
71
72 self.settsaf = Tkinter.IntVar ()
73 self.settsaf.set (0)
74 Tkinter.Checkbutton (master, text="Set timestamp on all frames",variable=self.settsaf, onvalue=1, offvalue=0).grid (column=0, row=7, columnspan=3)
75
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)
79
80 class LAVFMuxerDialog (tkSimpleDialog.Dialog):
81 """LAVF container -lavfopts options dialog"""
82 def apply (self):
83 if self.containerfmt.get () == "(autodetect from filename)":
84 self.result = ""
85 else:
86 self.result = "-lavfopts format=" + self.containerfmt.get().split()[0]
87
88 def body (self, master):
89 Tkinter.Label(master, text="libavformat muxer options (simplified)", fg="darkblue").grid (column=0, row=0, columnspan=2)
90
91 Tkinter.Label(master, text="Container format").grid (column=0, row=1)
92
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)