From 397c62bce584db847e6c6781e3815a34ddfeba23 Mon Sep 17 00:00:00 2001 From: James Bunton Date: Sun, 16 Mar 2008 22:48:25 +1100 Subject: [PATCH] xvid encoder --- toxvid.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 toxvid.py diff --git a/toxvid.py b/toxvid.py new file mode 100755 index 0000000..dc545c2 --- /dev/null +++ b/toxvid.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +import optparse, subprocess, sys + +cmd = [ + "mencoder", "%(input)s", "-o", "%(output)s", + "-ffourcc", "DX50", + "-vf", "%(filters)s", + "-ovc", "xvid", "-xvidencopts", "pass=%(pass)d:bitrate=%(vbitrate)d:vhq=4", + "-oac", "mp3lame", "-lameopts", "abr:br=%(abitrate)d", +] + +parser = optparse.OptionParser(usage="%prog [options] input output") +parser.add_option("--dvd", action="store", dest="dvd") +parser.add_option("--filters", action="store", dest="filters", default="denoise3d") +parser.add_option("--vbitrate", action="store", dest="vbitrate", type="int", default=600) +parser.add_option("--abitrate", action="store", dest="abitrate", type="int", default=192) +parser.add_option("--dump", action="store_true", dest="dump") +try: + opts, (input, output) = parser.parse_args(sys.argv[1:]) +except: + parser.print_usage() + sys.exit(1) + +# Start/stop time? +# Custom dvd device? +if opts.dvd: + cmd.insert(1, opts.dvd) + cmd.insert(1, "-dvd-device") + +# Default options +subst = { + "vbitrate": opts.vbitrate, + "abitrate": opts.abitrate, + "filters": opts.filters, + "input": input, +} + +def run(args): + if opts.dump: + print " ".join(args) + else: + subprocess.Popen(args).wait() + +# Pass 1 +subst["pass"] = 1 +subst["output"] = "/dev/null" +run([x % subst for x in cmd]) + +# Pass 2 +subst["pass"] = 2 +subst["output"] = output +run([x % subst for x in cmd]) + -- 2.39.2