OSDN Git Service

fix many bugs.
authorgn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Wed, 3 Feb 2010 12:38:53 +0000 (12:38 +0000)
committergn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Wed, 3 Feb 2010 12:38:53 +0000 (12:38 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@428 4e526526-5e11-4fc0-8910-f8fd03428081

rec10/trunk/src/recdblist.py
rec10/trunk/src/ts2x264.py
rec10/trunk/src/tv2mkv.py

index 1b2408e..651d69e 100644 (file)
@@ -93,11 +93,11 @@ def addlog(tspath,txt,log_title):
     f=open(logo,'a')
     s=len(txt)
     stxt=""
-    if s>400:
-        stxt=txt[0:200]+"\n\n(ry..)\n"
-        st=txt[s-200:].find("\n")
+    if s>1000:
+        stxt=txt[0:500]+"\n\n(ry..)\n"
+        st=txt[s-500:].find("\n")
         if st>0:
-            stxt=stxt+txt[s-200+st:]
+            stxt=stxt+txt[s-500+st:]
     else:
         stxt=txt
     txtw="\n####"+log_title+"####\n"+stxt
index a379252..3c7877e 100644 (file)
@@ -152,17 +152,31 @@ def encode(pin,pout,size,is2pass,is24fps,quality):
         pas2exe = "nice -n 19 " + pas2exe
         recdblist.printutf8(pas1exe)
         txt=txt+"Cmd : "+pas1exe+"\n"
-        txt=txt+unicode(commands.getoutput(pas1exe.encode('utf-8')),'utf-8')
+        txtt=""
+        try:
+            txtt=unicode(commands.getoutput(pas1exe.encode('utf-8')),'utf-8')
+        except:
+            ""
+        txt=txt+txtt
         recdblist.printutf8(pas2exe)
         time.sleep(5)
-        txt=txt+unicode(commands.getoutput(pas2exe.encode('utf-8')),'utf-8')
+        txtt=""
+        try:
+            txtt=unicode(commands.getoutput(pas2exe.encode('utf-8')),'utf-8')
+        except:
+            ""
+        txt=txt+txtt
     else:
         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+"Cmd : "+pas1exe+"\n"
-        txt=txt+unicode(commands.getoutput(pas1exe.encode('utf-8')),'utf-8')
-
+        txtt=""
+        try:
+            txtt=unicode(commands.getoutput(pas1exe.encode('utf-8')),'utf-8')
+        except:
+            ""
+        txt=txt+txtt
     recdblist.addlog( pin, txt, "mencoder-log")
 
 def encode_ffmpeg(pin,pout,size,is2pass,is24fps,quality):
@@ -170,39 +184,47 @@ def encode_ffmpeg(pin,pout,size,is2pass,is24fps,quality):
     
     """
     ffmpeg="ffmpeg"
-    vf1="-me dia -subme 4 "
-    vf1="-vpre hq -level 42 -refs 3 -subme 8 -bf 3 "
     if quality<3:
-        vf1="-me dia -refs 1 -subme 0 -trellis 0 -partitions none "
-        vf2="-me dia -refs 1 -subme 0 -trellis 0 -partitions none "
+        x264enc="-vpre hq -level 42 -me_method dia -partitions none -refs 1 -scenecut 0 -trellis 0 "
+        x264enc1=x264enc
+        x264enc2=x264enc1
     elif quality<5:
-        vf1="-me dia -refs 1 -subme 1 -trellis 0 "
-        vf2="-vpre hq -level 42 -me dia -refs 1 -subme 1 -trellis 0 "
+        x264enc="-vpre hq -level 42 -me_method dia -partitions parti8x8+parti4x4 -refs 1 -trellis 0 "
+        x264enc1=x264enc
+        x264enc2=x264enc1
     elif quality<7:
-        vf1=""
-        vf2="-vpre hq -level 42 "
+        x264enc="-vpre hq -level 42 "
+        x264enc1=x264enc
+        x264enc2=x264enc1
     elif quality<9:
-        vf1="-directpred auto -refs 5 -subme 8 -bf 1 -trellis 1 "
-        vf2="-vpre hq -level 42 -directpred auto -refs 5 -subme 8 -bf 1 -trellis 1 "
+        x264enc="-vpre hq -level 42 -directpred auto -refs 5 -subq 6 -bf 1 -trellis 1 "
+        x264enc1=x264enc
+        x264enc2=x264enc1
     elif quality<11:
-        vf1="-me hex -bf 3 "
-        vf2="-vpre hq -level 42 -directpred auto -refs 5 -subme 8 -trellis 2 -me umh -bf 3 "
+        x264enc="-vpre hq -level 42 -refs 5 -subq 7 -trellis 2 -partitions all -directpred auto -me_method umh -bf 3 "
+        x264enc1=x264enc
+        x264enc2=x264enc1
     if is24fps==1:
         if quality<3:
-            vf1="-me dia -refs 1 -subme 0 -trellis 0 -partitions none -deblockalpha 1 -deblockbeta 1 "
-            vf2="-me dia -refs 1 -subme 0 -trellis 0 -partitions none -deblockalpha 1 -deblockbeta 1 "
+            x264enc="-vpre hq -level 42 -me_method dia -partitions none -refs 1 -scenecut 0 -trellis 0 -deblockalpha 1 -deblockbeta 1 "
+            x264enc1=x264enc
+            x264enc2=x264enc1
         elif quality<5:
-            vf1="-me dia -refs 1 -subme 1 -trellis 0 -deblockalpha 1 -deblockbeta 1 "
-            vf2="-vpre hq -level 42 -me dia -refs 1 -subme 1 -trellis 0 -deblockalpha 1 -deblockbeta 1 "
+            x264enc="-vpre hq -level 42 -me_method dia -partitions parti8x8+parti4x4 -refs 1 -trellis 0 -deblockalpha 1 -deblockbeta 1 "
+            x264enc1=x264enc
+            x264enc2=x264enc1
         elif quality<7:
-            vf1="-deblockalpha 1 -deblockbeta 1 "
-            vf2="-vpre hq -level 42 -deblockalpha 1 -deblockbeta 1 "
+            x264enc="-vpre hq -level 42 -deblockalpha 1 -deblockbeta 1 "
+            x264enc1=x264enc
+            x264enc2=x264enc1
         elif quality<9:
-            vf1="-directpred auto -refs 5 -subme 8 -bf 1 -trellis 1 -deblockalpha 1 -deblockbeta 1 "
-            vf2="-vpre hq -level 42 -directpred auto -refs 5 -subme 8 -bf 1 -trellis 1 -deblockalpha 1 -deblockbeta 1 "
+            x264enc="-vpre hq -level 42 -directpred auto -refs 5 -subq 6 -bf 1 -trellis 1 -deblockalpha 1 -deblockbeta 1 "
+            x264enc1=x264enc
+            x264enc2=x264enc1
         elif quality<11:
-            vf1="-directpred auto -me hex -bf 3 -deblockalpha 1 -deblockbeta 1 "
-            vf2="-vpre hq -level 42 -directpred auto -refs 5 -subme 8 -subq 7 -trellis 2 -me umh -bf 3 -deblockalpha 1 -deblockbeta 1 "
+            x264enc="-vpre hq -level 42 -refs 5 -subq 7 -trellis 2 -partitions all -directpred auto -me_method umh -bf 3 -deblockalpha 1 -deblockbeta 1 "
+            x264enc1=x264enc
+            x264enc2=x264enc1
     if size == "HD":
         s = "-s 1280x720 "
         bitrate = str(tv2avi.Bitrate_HD)
@@ -230,20 +252,35 @@ def encode_ffmpeg(pin,pout,size,is2pass,is24fps,quality):
     txt=""
     if is2pass==1:
         os.environ['LANG']="ja_JP.UTF-8"
-        exe1=ffmpeg+" -y -i \""+pin+"\" -pass 1 -vsync 400 -vcodec libx264 -b "+bitrate+"k "+vf1+s+"-deinterlace -an -passlogfile \'" + pin + ".log\' " + " /dev/null"
-        exe2=ffmpeg+" -y -i \""+pin+"\" -pass 2 -vsync 400 -vcodec libx264 -b "+bitrate+"k "+vf2+s+"-deinterlace -an -passlogfile \'" + pin + ".log\' \"" +pout+"\"" #aviにすべきかどうか
+        exe1=ffmpeg+" -y -i \""+pin+"\" -pass 1 -vsync 400 -vcodec libx264 -b "+bitrate+"k "+x264enc1+s+"-deinterlace -an -f avi -passlogfile \'" + pin + ".log\' " + " /dev/null"
+        exe2=ffmpeg+" -y -i \""+pin+"\" -pass 2 -vsync 400 -vcodec libx264 -b "+bitrate+"k "+x264enc2+s+"-deinterlace -an -passlogfile \'" + pin + ".log\' \"" +pout+"\"" #aviにすべきかどうか
         recdblist.printutf8(exe1)
         exe1 = "nice -n 19 " + exe1
         exe2 = "nice -n 19 " + exe2
         txt=txt+u"Cmd : "+exe1+"\n"+exe2+"\n"
-        txt=txt+commands.getoutput(exe1.encode('utf-8'))+"\n"
-        txt=txt+commands.getoutput(exe1.encode('utf-8'))+"\n"
+        txtt=""
+        try:
+            txtt=unicode(commands.getoutput(exe1.encode('utf-8')),'utf-8')
+        except:
+            ""
+        txt=txt+txtt
+        txtt=""
+        try:
+            txtt=unicode(commands.getoutput(exe2.encode('utf-8')),'utf-8')
+        except:
+            ""
+        txt=txt+txtt
     else:
         os.environ['LANG']="ja_JP.UTF-8"
-        exe=ffmpeg+" -y -i \""+pin+"\" -vsync 400 -vcodec libx264 -b "+bitrate+"k "+vf2+s+"-deinterlace -an \"" +pout+"\""
+        exe=ffmpeg+" -y -i \""+pin+"\" -vsync 400 -vcodec libx264 -b "+bitrate+"k "+x264enc+s+"-deinterlace -an \"" +pout+"\""
         txt=txt+"Cmd : "+exe+"\n"
         exe = "nice -n 19 " + exe
         txt=txt+"Cmd : "+exe+"\n"
-        txt=txt+commands.getoutput(exe.encode('utf-8'))+"\n"
+        txtt=""
+        try:
+            txtt=unicode(commands.getoutput(exe.encode('utf-8')),'utf-8')
+        except:
+            ""
+        txt=txt+txtt
     recdblist.addlog( pin, txt, "dual audio ffmpeg-log")
     
\ No newline at end of file
index 3240e57..7097343 100644 (file)
@@ -76,7 +76,6 @@ def avi2mkv(pin,pout,opt):
             txt=txt+execcomd(e1s)
         else:
             txt=txt+execcomd(e1)
-        
     else:
         wineexe=configreader.getpath("wine")
         pincap=pin.replace(".avi",".srt")
@@ -101,7 +100,9 @@ def avi2mkv(pin,pout,opt):
     recdblist.addlog(pout, txt, "mkvmerge-log")
     logo=pout.replace(".mkv",".log")
     if status.getSettings_auto_del_tmp()==1:
-        deltitle(dir,title)
+        if os.path.exists(pout):
+            if os.path.getsize(pout)>100*1000*1000:
+                deltitle(dir,title)
 def execcomd(cmd):
     txt=""
     cmdt=u"nice -n 17 "+cmd
@@ -128,9 +129,11 @@ def deltitle(path,title):
         if os.path.getsize(os.path.join(path,title+".ts"))*10>os.path.getsize(os.path.join(path,title+".ts.b25")):
             if os.path.getsize(os.path.join(path,title+".ts"))>1000*1000*100:
                 dp.append(os.path.join(path,title+".ts.b25"))
-    for ip in dp:
-        try:
-            os.remove(ip)
-        except:
-            ""
+    if os.path.exists(os.path.join(path,title+".mkv")):
+        if os.path.getsize(os.path.join(path,title+".mkv"))>1000*1000*10:
+            for ip in dp:
+                try:
+                    os.remove(ip)
+                except:
+                    ""
     
\ No newline at end of file