OSDN Git Service

fix many encoding errors
authorgn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Thu, 28 Jan 2010 12:09:54 +0000 (12:09 +0000)
committergn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Thu, 28 Jan 2010 12:09:54 +0000 (12:09 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@416 4e526526-5e11-4fc0-8910-f8fd03428081

rec10/trunk/src/epgdb.py
rec10/trunk/src/timerec.py
rec10/trunk/src/ts2x264.py
rec10/trunk/src/tv2ts.py

index efee1b8..a2265c2 100644 (file)
@@ -59,7 +59,7 @@ def searchtime2(titletxt, timet, deltatime, chtxt):
     beforetime = time.strftime("%Y%m%d%H%M%S")
     aftertime = time + datetime.timedelta(hours=deltatime)
     aftertime = aftertime.strftime("%Y%m%d%H%M%S")
-    one = ["", "", "", ""]
+    one = ["", "", "", "","","",""]
     tempt = 0
     d = rec10d.rec10db.select_by_time_ngram_epg_timeline(beforetime, aftertime, chtxt)
     for chtxtt, title, start, stop ,exp,longexp,category in d:
index 14cd248..7e54cd7 100644 (file)
@@ -503,6 +503,8 @@ def type_encode_que(typetxt,chtxt,title,bt,et,opt):
         typetxtfin=recdblist.REC_FIN_LOCAL
     if dt < 10 * 60:
         if status.getEncoding() < int(configreader.getenv("enc_max")):
+            recdb.del_reckey(typetxtnow, title, chtxt, btime)
+            recdb.rec_reckey(typetxting, title, chtxt, btime, etime, opt)
             recdblist.printutf8(opt)
             pin = recpath + "/" + title + ".ts"
             if re.search("d", opt):
@@ -519,8 +521,6 @@ def type_encode_que(typetxt,chtxt,title,bt,et,opt):
             pout = recpath + "/" + title + ".mkv"
             recdblist.printutf8(pin)
             #recdblist.printutf8(pin+":"+pout+":"+opt)
-            recdb.del_reckey(typetxtnow, title, chtxt, btime)
-            recdb.rec_reckey(typetxting, title, chtxt, btime, etime, opt)
             tv2mkv.ts2mkv(pin, pout, opt)
             #tv2mp4.ts2mp4(pin, pout, opt)
             #tv2avi.ts2avi(pin, pout, opt)
index 6d7e974..9e4a805 100644 (file)
@@ -57,70 +57,93 @@ def encode(pin,pout,size,is2pass,is24fps,quality):
     fps="-fps 30000/1001"
     bm=1
     scale=""
-    x264enc1=":me=dia:subme=4"
-    x264enc2=":frameref=3:subme=8:bframes=3"
-
-    if quality<3:
-        x264enc1=":me=dia:partitions=none:frameref=1:subme=0:scenecut=0:trellis=0"
-        x264enc2=":me=dia:partitions=none:frameref=1:subme=0:scenecut=0:trellis=0"
-    elif quality<5:
-        x264enc1=":me=dia:partitions=i8x8,i4x4:frameref=1:subme=1:trellis=0"
-        x264enc2=":me=dia:partitions=i8x8,i4x4:frameref=1:subme=1:trellis=0"
-    elif quality<7:
-        x264enc1=""
-        x264enc2=""
-    elif quality<9:
-        x264enc1=":direct_pred=auto:frameref=5:subme=8:bframes=1:trellis=1"
-        x264enc2=":direct_pred=auto:frameref=5:subme=8:bframes=1:trellis=1"
-    elif quality<11:
-        x264enc1=":me=hex:bframes=3"
-        x264enc2=":frameref=6:subme=8:subq=7:trellis=2:partitions=all:8x8dct:direct_pred=auto:me=umh:bframes=3"
-    crf=""
-    if is24fps==1:
-        ofps="-ofps 24000/1001"
-        fps="-fps 30000/1001"
-        encvf="-vf pullup,softskip"
-        harddup=",pp=l5,unsharp=l3x3:0.75:c3x3:0.75,hqdn3d=2:1:2,harddup"
-        bm=1
-        if quality<3:
-            x264enc1=":me=dia:aq-strength=0.6:deblock=1,1:psy-rd=0.4:partitions=none:frameref=1:subme=0:scenecut=0:trellis=0"
-            x264enc2=":me=dia:aq-strength=0.6:deblock=1,1:psy-rd=0.4:partitions=none:frameref=1:subme=0:scenecut=0:trellis=0"
-        elif quality<5:
-            x264enc1=":me=dia:partitions=i8x8,i4x4:frameref=1:subme=1:trellis=0"
-            x264enc2=":me=dia:aq-strength=0.6:deblock=1,1:psy-rd=0.4:partitions=i8x8,i4x4:frameref=1:subme=1:trellis=0"
-        elif quality<7:
-            x264enc1=""
-            x264enc2=":aq-strength=0.6:deblock=1,1:psy-rd=0.4"
-        elif quality<9:
-            x264enc1=":direct_pred=auto:frameref=5:subme=8:bframes=1:trellis=1"
-            x264enc2=":direct_pred=auto:aq-strength=0.6:deblock=1,1:psy-rd=0.4:frameref=5:subme=8:bframes=1:trellis=1"
-        elif quality<11:
-            x264enc1=":me=hex:bframes=3"
-            x264enc2=":frameref=6:subme=8:subq=7:trellis=2:aq-strength=0.6:deblock=1,1:psy-rd=0.4:partitions=all:8x8dct:direct_pred=auto:me=umh:bframes=3"
+    bnum=2000
     if size == "HD":
         encvf = encvf + ",scale=1280:720::0:3"+harddup
         bitrate = "bitrate=" + str(tv2avi.Bitrate_HD*bm)
+        bnum=tv2avi.Bitrate_HD*bm
         crf="crf=20"
     elif size == "SD":
         encvf = encvf + ",scale=720:480::0:3"+harddup
         bitrate = "bitrate=" + str(tv2avi.Bitrate_SD*bm)
+        bnum=tv2avi.Bitrate_SD*bm
         crf="crf=20"
     elif size == "FHD":
         encvf = encvf + ",scale=1920:1080::0:3"+harddup
         bitrate = "bitrate=" + str(tv2avi.Bitrate_FHD*bm)
+        bnum=tv2avi.Bitrate_FHD*bm
         crf="crf=22"
     elif size == "Short":
         encvf = encvf +harddup
         bitrate = "bitrate=" + str(tv2avi.Bitrate_Short*bm)
+        bnum=tv2avi.Bitrate_Short*bm
         crf="crf=20"
     elif size == "LowHD":
         encvf = encvf + ",scale=1280:720::0:3"+harddup
         bitrate = "bitrate=" + str(tv2avi.Bitrate_LowHD*bm)
+        bnum=tv2avi.Bitrate_LowHD*bm
         crf="crf=22"
     else:
         encvf = encvf + ",scale=1280:720::0:3"+harddup
         bitrate = "bitrate=" + str(tv2avi.Bitrate_HD*bm)
+        bnum=tv2avi.Bitrate_HD*bm
         crf="crf=22"
+    x264enc=""
+    x264enc1=""
+    x264enc2=""
+
+    if quality<3:
+        x264enc=":me=dia:partitions=none:frameref=1:subme=0:scenecut=0:trellis=0"
+        x264enc1=x264enc
+        x264enc2=x264enc1
+    elif quality<5:
+        x264enc=":me=dia:partitions=i8x8,i4x4:frameref=1:subme=1:trellis=0"
+        x264enc1=x264enc
+        x264enc2=x264enc1
+    elif quality<7:
+        x264enc=""
+        x264enc1=x264enc
+        x264enc2=x264enc1
+    elif quality<9:
+        x264enc=":direct_pred=auto:frameref=5:subme=8:bframes=1:trellis=1"
+        x264enc1=x264enc
+        x264enc2=x264enc1
+    elif quality<11:
+        x264enc=":frameref=6:subme=8:subq=7:trellis=2:partitions=all:8x8dct:direct_pred=auto:me=umh:bframes=3"
+        x264enc1=x264enc
+        x264enc2=x264enc1
+    crf=""
+    if is24fps==1:
+        ofps="-ofps 24000/1001"
+        fps="-fps 30000/1001"
+        encvf="-vf pullup,softskip"
+        harddup=",pp=l5,unsharp=l3x3:0.75:c3x3:0.75,hqdn3d=2:1:2,harddup"
+        bm=1
+        if quality<3:
+            vbv=":vbv_maxrate="+str(bnum*2)
+            x264enc=":me=dia:aq-strength=0.6:deblock=1,1:psy-rd=0.4:partitions=none:frameref=1:subme=0:scenecut=0:trellis=0"
+            x264enc1=x264enc+vbv
+            x264enc2=x264enc1
+        elif quality<5:
+            vbv=":vbv_maxrate="+str(bnum*2)
+            x264enc=":me=dia:aq-strength=0.6:deblock=1,1:psy-rd=0.4:partitions=i8x8,i4x4:frameref=1:subme=1:trellis=0"
+            x264enc1=x264enc+vbv
+            x264enc2=x264enc1
+        elif quality<7:
+            vbv=":vbv_maxrate="+str(bnum*2)
+            x264enc=":aq-strength=0.6:deblock=1,1:psy-rd=0.4"
+            x264enc1=x264enc+vbv
+            x264enc2=x264enc1
+        elif quality<9:
+            vbv=":vbv_maxrate="+str(bnum*2)
+            x264enc=":direct_pred=auto:aq-strength=0.6:deblock=1,1:psy-rd=0.4:frameref=5:subme=8:bframes=1:trellis=1"
+            x264enc1=x264enc+vbv
+            x264enc2=x264enc1
+        elif quality<11:
+            vbv=":vbv_maxrate="+str(bnum*2)
+            x264enc=":frameref=6:subme=8:subq=7:trellis=2:aq-strength=0.6:deblock=1,1:psy-rd=0.4:partitions=all:8x8dct:direct_pred=auto:me=umh:bframes=3"
+            x264enc1=x264enc+vbv
+            x264enc2=x264enc1
     if is2pass == 1:
         pas1exe = "mencoder \'" + pin + "\' -vfm ffmpeg -quiet -nosound -sws 9 -ovc x264 " + encvf +" "+fps+" "+ofps+" -x264encopts " + bitrate +x264enc1+ ":threads=auto:level_idc=42:pass=1:turbo=2 -passlogfile \'" + pin + ".log\' " + " -o /dev/null"
         pas2exe = "mencoder \'" + pin + "\' -vfm ffmpeg -quiet -sws 9 -ovc x264 " + encvf +" "+fps+ " "+ofps+" -x264encopts " + bitrate +x264enc2+ ":level_idc=42:threads=auto:pass=2 -passlogfile \'" + pin + ".log\' -oac mp3lame -lameopts cbr:br=256 -o \'" + pout + "\'"
@@ -132,7 +155,7 @@ def encode(pin,pout,size,is2pass,is24fps,quality):
         time.sleep(5)
         txt=txt+unicode(commands.getoutput(pas2exe.encode('utf-8')),'utf-8')
     else:
-        pas1exe = "mencoder \'" + pin + "\' -vfm ffmpeg -quiet -sws 9 -ovc x264 " + encvf+" "+fps + " "+ofps+" -x264encopts " + bitrate +x264enc2+":level_idc=42:threads=auto -oac mp3lame -lameopts cbr:br=256 -o \'" + pout + "\'"
+        pas1exe = "mencoder \'" + pin + "\' -vfm ffmpeg -quiet -sws 9 -ovc x264 " + encvf+" "+fps + " "+ofps+" -x264encopts " + bitrate +x264enc+":level_idc=42:threads=auto -oac mp3lame -lameopts cbr:br=256 -o \'" + pout + "\'"
         pas1exe = "nice -n 19 " + pas1exe
         recdblist.printutf8(pas1exe)
         txt=txt+unicode(commands.getoutput(pas1exe.encode('utf-8')),'utf-8')
@@ -143,12 +166,11 @@ def encode(pin,pout,size,is2pass,is24fps,quality):
     s=len(txt)
     stxt=""
     if s>100:
-        stxt=txt[s-300:]
+        stxt=txt[s-1000:]
     else:
         stxt=txt
     s=stxt.find("\n")
     if s>0:
-        s=s+len("\n")
         stxt=stxt[s:]
     txt="\n####mencoder-log_"+size+"####\n"+stxt
     f.write(txt.encode('utf-8'))
index 44bc95d..edacd09 100644 (file)
@@ -3,6 +3,7 @@
 #import sys # モジュール属性 argv を取得するため
 import commands
 import os
+import os.path
 import time
 
 import configreader
@@ -101,7 +102,7 @@ def tv2b25ts_b25(pout, ch, time):
     doexe = exe + ' --b25 ' + ch + ' ' + time + ' \'' + pout + '\''
     os.system(doexe)
 def b252tsmix(pin, pout):
-    if not (os.path.exists(pout) and os.path.getsize(pin)==os.path.getsize(pout)):
+    if not (os.path.exists(pout) and os.path.getsize(pin)>os.path.getsize(pout)*0.95 and os.path.getsize(pin)<os.path.getsize(pout)*1.05):
         exe=""
         if configreader.getpath('b25_remote')=="1":
             try:
@@ -143,6 +144,6 @@ def tsmix2ts(pin, pout, csch):#csch=0ならcsの処理をしない
     f.write(txt.encode('utf-8'))
     f.close()
     time.sleep(1)
-    if os.access(pout, os.F_OK):
+    if os.access(pout, os.F_OK) and os.path.getsize(pout)>10*1000*1000:
         os.remove(pin)