import optparse, subprocess, sys
-cmd = [
+codecs = {
+"x264":
+[
"mencoder", "%(input)s", "-o", "%(output)s",
"-vf", "%(filters)s",
"-ovc", "x264", "-x264encopts", "pass=%(pass)d:bitrate=%(vbitrate)d:me=umh:partitions=all:trellis=1",
"-oac", "faac", "-faacopts", "br=%(abitrate)d:mpeg=4:object=2", "-channels", "2", "-srate", "48000",
-]
+],
+
+"xvid":
+[
+ "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",
+],
+}
def parseArgs():
+ for codec in codecs.keys():
+ if sys.argv[0].find(codec) >= 0:
+ break
+ else:
+ codec = "x264"
+
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("--startpos", action="store", dest="startpos")
parser.add_option("--endpos", action="store", dest="endpos")
parser.add_option("--audioid", action="store", dest="audioid")
+ parser.add_option("--codec", action="store", dest="codec", default=codec)
parser.add_option("--dump", action="store_true", dest="dump")
try:
opts, (input, output) = parser.parse_args(sys.argv[1:])
parser.print_usage()
sys.exit(1)
- return opts, input, output
-
-def insertOpt(opt, var):
- if var:
- cmd.insert(1, var)
- cmd.insert(1, opt)
+ return opts, codec, input, output
def run(args, dump):
if dump:
subprocess.Popen(args).wait()
def main():
- opts, input, output = parseArgs()
+ opts, codec, input, output = parseArgs()
+ try:
+ cmd = codecs[codec]
+ except:
+ print >>sys.stderr, "Codec '%s' not found!" % codec
+ sys.exit(1)
+
+ def insertOpt(opt, var):
+ if var:
+ cmd.insert(1, var)
+ cmd.insert(1, opt)
insertOpt("-ss", opts.startpos)
insertOpt("-endpos", opts.endpos)
insertOpt("-dvd-device", opts.dvd)
--- /dev/null
+encode.py
\ No newline at end of file
--- /dev/null
+encode.py
\ No newline at end of file
+++ /dev/null
-#!/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",
-]
-
-
-def parseArgs():
- 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("--chapter", action="store", dest="chapter")
- parser.add_option("--startpos", action="store", dest="startpos")
- parser.add_option("--endpos", action="store", dest="endpos")
- parser.add_option("--audioid", action="store", dest="audioid")
- 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)
-
- return opts, input, output
-
-def insertOpt(opt, var):
- if var:
- cmd.insert(1, var)
- cmd.insert(1, opt)
-
-def run(args, dump):
- if dump:
- print " ".join(args)
- else:
- subprocess.Popen(args).wait()
-
-def main():
- opts, input, output = parseArgs()
-
- insertOpt("-ss", opts.startpos)
- insertOpt("-endpos", opts.endpos)
- insertOpt("-dvd-device", opts.dvd)
- insertOpt("-chapter", opts.chapter)
- insertOpt("-aid", opts.audioid)
-
- subst = {
- "vbitrate": opts.vbitrate,
- "abitrate": opts.abitrate,
- "filters": opts.filters,
- "input": input,
- }
-
- # Pass 1
- subst["pass"] = 1
- subst["output"] = "/dev/null"
- run([x % subst for x in cmd], opts.dump)
-
- # Pass 2
- subst["pass"] = 2
- subst["output"] = output
- run([x % subst for x in cmd], opts.dump)
-
-if __name__ == "__main__":
- main()
-