- input = self.opts.output + ".avi" # From Mencoder command
- output = self.opts.output + ".mkv"
- self.do_exec(["mkvmerge", "-o", output, input])
- self.do_exec(["rm", "-f", input])
+ if self.opts.dump:
+ fps = "???"
+ else:
+ fps = midentify(self.video_tmp, "ID_VIDEO_FPS")
+
+ self.do_exec([
+ "mkvmerge",
+ "-o", self.opts.output + ".mkv",
+ "--default-duration", "0:%sfps"%fps,
+ self.video_tmp,
+ self.audio_tmp,
+ ])
+
+
+
+class MencoderFixRemux(Command):
+ def init(self):
+ orig = self.opts
+ self.opts = optparse.Values(orig.__dict__)
+ orig.input = "remux.avi"
+ orig.dvd = orig.chapter = orig.startpos = orig.endpos = None
+
+ def check(self):
+ self.check_command("mencoder")
+ self.check_no_file("remux.avi")
+
+ def run(self):
+ o = self.opts
+ cmd = [
+ "mencoder",
+ "-o", "remux.avi",
+ "-oac", "copy", "-ovc", "copy",
+ "-mc", "0.1",
+ o.input,
+ ]
+ do_opt = partial(append_cmd, cmd)
+ do_opt("-dvd-device", o.dvd)
+ do_opt("-chapter", o.chapter)
+ do_opt("-ss", o.startpos)
+ do_opt("-endpos", o.endpos)
+ self.do_exec(cmd)
+
+
+
+class MencoderMux(Command):
+ def check(self):
+ self.check_command("mencoder")
+ self.check_no_file(self.opts.output + ".tmp.avi")
+
+ def run(self):
+ self.do_exec([
+ "mencoder",
+ "-o", self.opts.output + ".avi",
+ "-oac", "copy", "-ovc", "copy",
+ "-noskip", "-mc", "0",
+ "-audiofile", self.audio_tmp,
+ self.video_tmp,
+ ])