X-Git-Url: https://code.delx.au/transcoding/blobdiff_plain/f120ab5b6e4c6352e2e1c089f31201751adb36f1..d3539b1ba4f71c2e3d3729154463c643b2558af6:/encode.py diff --git a/encode.py b/encode.py index 1bc6c3a..e4bf6ee 100755 --- a/encode.py +++ b/encode.py @@ -26,6 +26,10 @@ class Command(object): return if subprocess.Popen(["which", cmd], stdout=open("/dev/null", "w")).wait() != 0: raise FatalException("Command '%s' is required" % cmd) + + def check_no_file(self, path): + if os.path.exists(path): + raise FatalException("Output file '%s' exists." % path) def do_exec(self, args): if self.opts.dump: @@ -45,6 +49,7 @@ class MP4Box(Command): def check(self): self.check_command("mencoder") self.check_command("MP4Box") + self.check_no_file(self.opts.output + ".mp4") def run(self): p = self.profile @@ -122,6 +127,7 @@ class Mencoder(Command): def check(self): self.check_command("mencoder") + self.check_no_file(self.opts.output + ".avi") def run(self): self.do_exec(self.pass1()) @@ -199,6 +205,34 @@ profiles = { aopts="br=%(abitrate)d:mpeg=4:object=2", extra=["-vf-add", "scale=320:-10"], ), + + "N97xvid" : + Profile( + commands=[Mencoder, MP4Box], + default_opts={ + "vbitrate": 1000, + "abitrate": 96, + }, + vcodec="xvid", + vopts="pass=%(vpass)d:bitrate=%(vbitrate)d:vhq=4:autoaspect:max_bframes=0", + acodec="faac", + aopts="br=%(abitrate)d:mpeg=4:object=2", + extra=["-vf-add", "scale=640:-10"], + ), + + "N97x264" : + Profile( + commands=[Mencoder, MP4Box], + default_opts={ + "vbitrate": 1000, + "abitrate": 96, + }, + vcodec="x264", + vopts="pass=%(vpass)d:bitrate=%(vbitrate)d:vbv_maxrate=2000:vbv_bufsize=2000:nocabac:me=umh:partitions=all:trellis=1:subq=7:bframes=0:direct_pred=auto:level_idc=20", + acodec="faac", + aopts="br=%(abitrate)d:mpeg=4:object=2", + extra=["-vf-add", "scale=640:-10"], + ), }