From a82200daf84c4281dc97bc1326459942bd8ce28b Mon Sep 17 00:00:00 2001 From: James Bunton Date: Sat, 14 Aug 2010 13:42:33 +1000 Subject: [PATCH] Improved av sync stuff --- encode.py | 57 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/encode.py b/encode.py index ca27aae..73e06a4 100755 --- a/encode.py +++ b/encode.py @@ -159,29 +159,45 @@ class Mencoder(Command): if self.opts.copyac3: self.profile.acodec = "copyac3" self.profile.aopts = None - + self.check_options() + + def check_options(self): + o = self.opts + if o.detelecine and o.ofps: + raise FatalException("Cannot use --detelecine with --ofps") + if o.deinterlace and o.detelecine: + raise FatalException("Cannot use --detelecine with --deinterlace") + def insert_options(self, cmd): - def try_opt(opt, var): + o = self.opts + def do_opt(opt, var): if var is not None: cmd.append(opt) - cmd.append(var) - if self.opts.deinterlace: - cmd += ["-vf-add", "pp=lb"] - if self.opts.detelecine: - self.opts.ofps = "24000/1001" + cmd.append(str(var)) + + if o.copyac3: + o.noskip = True + if o.deinterlace: + cmd += ["-vf-add", "yadif"] + if o.detelecine: + o.ofps = "24000/1001" cmd += ["-vf-add", "pullup,softskip"] - if self.opts.copyac3: - cmd += ["-noskip", "-mc", "0"] - try_opt("-fps", self.opts.ifps) - try_opt("-ofps", self.opts.ofps) - try_opt("-ss", self.opts.startpos) - try_opt("-endpos", self.opts.endpos) - try_opt("-dvd-device", self.opts.dvd) - try_opt("-chapter", self.opts.chapter) - try_opt("-aid", self.opts.audioid) - try_opt("-sid", self.opts.subtitleid) - try_opt("-vf-add", self.opts.vfilters) - try_opt("-af-add", self.opts.afilters) + if o.noskip: + cmd += ["-noskip"] + if o.skipkb: + cmd += ["-sb", str(o.skipkb * 1024)] + + do_opt("-mc", o.mc) + do_opt("-fps", o.ifps) + do_opt("-ofps", o.ofps) + do_opt("-ss", o.startpos) + do_opt("-endpos", o.endpos) + do_opt("-dvd-device", o.dvd) + do_opt("-chapter", o.chapter) + do_opt("-aid", o.audioid) + do_opt("-sid", o.subtitleid) + do_opt("-vf-add", o.vfilters) + do_opt("-af-add", o.afilters) cmd += ["-vf-add", "harddup"] def subst_values(self, cmd, vpass): @@ -329,6 +345,8 @@ def parse_args(): parser.add_option("--deinterlace", action="store_true", dest="deinterlace") parser.add_option("--detelecine", action="store_true", dest="detelecine") parser.add_option("--copyac3", action="store_true", dest="copyac3") + parser.add_option("--mc", action="store", dest="mc", type="int") + parser.add_option("--noskip", action="store_true", dest="noskip") parser.add_option("--vfilters", action="store", dest="vfilters") parser.add_option("--afilters", action="store", dest="afilters") parser.add_option("--vbitrate", action="store", dest="vbitrate", type="int") @@ -336,6 +354,7 @@ def parse_args(): parser.add_option("--chapter", action="store", dest="chapter") parser.add_option("--ifps", action="store", dest="ifps") parser.add_option("--ofps", action="store", dest="ofps") + parser.add_option("--skipkb", action="store", dest="skipkb", type="int") parser.add_option("--startpos", action="store", dest="startpos") parser.add_option("--endpos", action="store", dest="endpos") parser.add_option("--audioid", action="store", dest="audioid") -- 2.39.2