OSDN Git Service

fix vfr.
authorgn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Fri, 18 Dec 2009 01:55:17 +0000 (01:55 +0000)
committergn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Fri, 18 Dec 2009 01:55:17 +0000 (01:55 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@313 4e526526-5e11-4fc0-8910-f8fd03428081

rec10/trunk/src/tv2mkv.py

index 3c2899e..68c9940 100644 (file)
@@ -19,18 +19,13 @@ def ts2mkv(pin, pout, opt):
     tpmkv=os.path.join(dir, title+".mkv")
     tv2avi.ts2avi(pin, tpavi, opt)
     time.sleep(10)
-    isvfr=0
     avi2mkv(tpavi,tpmkv,opt)
-    #shutil.move(tpavi,pout.replace(".mkv",".avi"))
-    #shutil.move(tpmkv,pout)
 def avi2mkv(pin,pout,opt):
     isvfr=0
     if re.search("v", opt):
         isvfr=1
     exe = configreader.getpath("mkvmerge")
-    doexe=""
-    doexe0=""
-    ffmpegdo=""
+    exes=[]
     if isvfr==1:
         wineexe=configreader.getpath("wine")
         cfr2tc=configreader.getpath("cfr2tc")
@@ -38,28 +33,33 @@ def avi2mkv(pin,pout,opt):
         pints=pin.replace(".avi",".ts")
         pintimecode=pin.replace(".avi",".timecode.txt")
         pinaac=pin.replace(".avi",".aac")
-        ffmpegdo="ffmpeg -i '"+pints+"' -vn -f aac -acodec copy '"+pinaac+"'"
-        doexe0 = wineexe+u" "+cfr2tc+u" '"+"Z:\\"+pin+"' '"+"Z:\\"+pin120+u"' '"+"Z:\\"+pintimecode+u"' 2"
-        doexe = exe +" -o '"+pout+u"'  --forced-track 0:no --timecodes '0:"+pintimecode+"' -d 0 -A -S '"+pin120+"' --sync 0:-225 --forced-track 0:no -a 0 -D -S '"+pinaac+"' --track-order 0:0,1:0"
+        exes.append("ffmpeg -i '"+pints+"' -vn -f aac -acodec copy '"+pinaac+"'")
+        exes.append(wineexe+u" "+cfr2tc+u" '"+"Z:\\"+pin+"' '"+"Z:\\"+pin120+u"' '"+"Z:\\"+pintimecode+u"' 2")
+        exes.append(exe +" -o '"+pout+u"'  --forced-track 0:no --timecodes '0:"+pintimecode+"' -d 0 -A -S '"+pin120+"' --sync 0:-225 --forced-track 0:no -a 0 -D -S '"+pinaac+"' --track-order 0:0,1:0")
+        #exes.append(doexe = exe + u" -o '" + pout + u"' --cues 0:all --forced-track 0:no --default-duration 0:120000/1001fps -d 0 -A -S '" + pin + u"' --sync 0:0 --forced-track 0:no -a 0 -D -S '"+pinaac+"' --track-order 0:0,1:0")
     else:
-        pinaac=pin.replace(".avi",".aac")
-        pints=pin.replace(".avi",".ts")
-        ffmpegdo="ffmpeg -i '"+pints+"' -vn -f aac -acodec copy '"+pinaac+"'"
-        doexe = exe + u" -o '" + pout + u"' --forced-track 0:no --default-duration 0:30000/1001fps -d 0 -A -S '" + pin + u"' --forced-track 0:no -a 0 -D -S '"+pinaac+"' --track-order 0:0,1:0"
-    doexe = "nice -n 17 " + doexe
-    recdblist.printutf8(doexe)
+        exes.append(doexe = exe + u" -o '" + pout + u"' --cues 0:all --forced-track 0:no --forced-track 1:no -a 1 -d 0 -S '" + pin + u"' --track-order 0:0,0:1")
     logo=pout.replace(".mkv",".log")
     txt=""
     os.environ['LANG']="ja_JP.UTF-8"
-    if doexe0!="":
-        recdblist.printutf8(ffmpegdo)
-        txt= ffmpegdo+"\n"
-        txt=txt+unicode(commands.getoutput(ffmpegdo.encode('utf-8')),'utf-8')
-        recdblist.printutf8(doexe0)
-        txt= doexe0+"\n"
-        txt=txt+unicode(commands.getoutput(doexe0.encode('utf-8')),'utf-8')
-    txt= txt+ doexe+"\n"
-    txt = txt+unicode(commands.getoutput(doexe.encode('utf-8')),'utf-8')
+    for e in exes:
+        ex= "nice -n 17 "+e
+        recdblist.printutf8(e)
+        txt=txt+e+"\n"
+        cmdt=""
+        try:
+            cmdt=unicode(commands.getoutput(ex.encode('utf-8')),'utf-8')
+        except:
+            ""
+        txt=txt+cmdt+"\n"
+    if (isvfr==1 and (not os.path.exists(pin.replace(".avi",".120.avi"))) and (not os.path.exists(pout))):
+        exes=[]
+        exes.append(doexe = exe + u" -o '" + pout + u"' --cues 0:all --forced-track 0:no --default-duration 0:120000/1001fps -d 0 -A -S '" + pin + u"' --sync 0:0 --forced-track 0:no -a 0 -D -S '"+pinaac+"' --track-order 0:0,1:0")
+        txt=txt+"120fps cfr exection\n"
+        try:
+            txt=txt+unicode(commands.getoutput(ex.encode('utf-8')),'utf-8')
+        except:
+            ""
     txt = "\n####mkvmerge-log####\n"+txt
     f=open(logo,'a')
     f.write(txt.encode('utf-8'))