X-Git-Url: https://code.delx.au/transcoding/blobdiff_plain/4ac0fd33e2fa427335ec5c9e5dad9cf4ad166737..703ccfd29eef2cb5e5553842c9973590398b8760:/encode.py diff --git a/encode.py b/encode.py index cdc733c..28767bf 100755 --- a/encode.py +++ b/encode.py @@ -65,6 +65,20 @@ class MP4Box(Command): self.do_exec(["rm", "-f", video, audio, input]) + +class MKVMerge(Command): + def check(self): + self.check_command("mkvmerge") + self.check_no_file(self.opts.output + ".mkv") + + def run(self): + 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]) + + + class Mencoder(Command): codec2opts = { "lavc": "-lavcopts", @@ -80,7 +94,7 @@ class Mencoder(Command): cmd.append(opt) cmd.append(var) if self.opts.deinterlace: - cmd += ["-vf-add", "pp=ci"] + cmd += ["-vf-add", "pp=lb"] try_opt("-ss", self.opts.startpos) try_opt("-endpos", self.opts.endpos) try_opt("-dvd-device", self.opts.dvd) @@ -161,6 +175,15 @@ profiles = { aopts="br=%(abitrate)d:mpeg=4:object=2", ), + "x264" : + Profile( + commands=[Mencoder, MKVMerge], + vcodec="x264", + vopts="pass=%(vpass)d:bitrate=%(vbitrate)d:subq=6:frameref=6:me=umh:partitions=all:bframes=4:b_adapt:qcomp=0.7:keyint=250:threads=2", + acodec="mp3lame", + aopts="abr:br=%(abitrate)d", + ), + "xvid" : Profile( commands=[Mencoder], @@ -205,6 +228,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"], + ), }