OSDN Git Service

implement encode tester.
[rec10/rec10-git.git] / rec10 / trunk / src / tv2mkv.py
index 3c2899e..3c2a9ce 100644 (file)
@@ -1,66 +1,21 @@
+import auto_process
 #!/usr/bin/python
 # coding: UTF-8
 # Rec10 TS Recording Tools
-# Copyright (C) 2009 Yukikaze
-import sys
-import commands
-import tv2avi
+# Copyright (C) 2009-2010 Yukikaze
+import os
 import os.path
-import time
-import shutil
-import re
-import recdblist
+import tv2mp4
 import configreader
+import subprocess
 def ts2mkv(pin, pout, opt):
-    dir=os.path.split(pout)[0]
-    title=os.path.split(pout)[1]
-    title=os.path.splitext(title)[0]
-    tpavi=os.path.join(dir,title+".avi")
-    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
+    tpout=pout.replace(".mkv",".mp4")
+    tv2mp4.ts2mp4(pin, tpout, opt)
+    mp42mkv(pout, tpout)
+    if os.path.exists(pout) and os.path.getsize(pout)>os.path.getsize(tpout)*0.9:
+        os.remove(tpout)
+def mp42mkv(pmkv,pmp4):
     exe = configreader.getpath("mkvmerge")
-    doexe=""
-    doexe0=""
-    ffmpegdo=""
-    if isvfr==1:
-        wineexe=configreader.getpath("wine")
-        cfr2tc=configreader.getpath("cfr2tc")
-        pin120=pin.replace(".avi",".120.avi")
-        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"
-    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)
-    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')
-    txt = "\n####mkvmerge-log####\n"+txt
-    f=open(logo,'a')
-    f.write(txt.encode('utf-8'))
-    f.close()
\ No newline at end of file
+    e1=exe +" -o \""+pmkv+u"\" \""+pmp4+"\""
+    p=subprocess.Popen(e1,shell=True)
+    os.waitpid(p.pid, 0)