OSDN Git Service

fix encode.
[rec10/rec10-git.git] / rec10 / trunk / src / tv2audio.py
index c59a335..41b9d51 100644 (file)
@@ -1,24 +1,77 @@
-import os.path
 #!/usr/bin/python
 # coding: UTF-8
 # Rec10 TS Recording Tools
 # Copyright (C) 2009-2010 Yukikaze
 import os
 import configreader
-
+import recdblist
+import commands
+import os.path
+import tv2audio
+import subprocess
+import signal
+import time
 def wav2aac_nero(pin,pout):
     os.environ['LANG']="ja_JP.UTF-8"
     neroaac=configreader.getpath('NeroAAC')
     exe=neroaac+" -br 128000 -2pass -if \""+pin+"\" -of \""+pout+"\""
+    txt=u"Cmd : "+exe+"\n"
     try:
-        os.system(exe.encode('utf-8'))
+        txt=txt+commands.getoutput(exe.encode('utf-8'))
+        recdblist.addlog(pin, txt, "Wav2aac_Nero log")
     except:
         if not os.path.exists(pout):
             lame="lame"
             exe=lame+" -b 128 \""+pin+"\" \""+pout+"\""
-            os.system(exe.encode('utf-8'))
+            txt=u"Cmd : "+exe+"\n"
+            txt=txt+commands.getoutput(exe.encode('utf-8'))
+            recdblist.addlog(pin, txt, "Wav2aac_Lame log")
 def wav2mp3_lame(pin,pout):
     os.environ['LANG']="ja_JP.UTF-8"
     lame="lame"
     exe=lame+" -b 128 \""+pin+"\" \""+pout+"\""
-    os.system(exe.encode('utf-8'))
\ No newline at end of file
+    txt=u"Cmd : "+exe+"\n"
+    try:
+        txt=txt+commands.getoutput(exe.encode('utf-8'))
+    except:
+        ""
+    recdblist.addlog(pin, txt, "Wav2aac_Lame log")
+def ts2single_audio(pts):
+    paac=pts.replace(".ts",".aac")
+    ffmpeg=configreader.getpath("ffmpeg")
+    e0=ffmpeg+" -i \""+pts+"\" -y -vn -f aac -acodec copy \""+paac+"\""
+    p0=subprocess.Popen(e0,shell=True)
+    time.sleep(60)
+    if p0.poll==None:#実行中
+        if os.path.getsize(paac)<1000:#1mで1kb以下の場合自動で終了
+            os.kill(p0.pid,signal.SIGKILL)
+            os.remove(paac)
+            ts2singlewav(pts)
+            useNero=0
+            try:
+                if configreader.getpath("useNeroAAC")=="1" and os.path.exists(configreader.getpath("NeroAAC")):
+                    useNero=1
+            except:
+                useNero=0
+            if useNero==1:
+                aout=pts.replace(".ts",".aac")
+                ain=pts.replace(".ts",".wav")
+                tv2audio.wav2aac_nero(ain,aout)
+            else:
+                aout=pts.replace(".ts",".mp3")
+                ain=pts.replace(".ts",".wav")
+                tv2audio.wav2mp3_lame(ain,aout)
+        else:
+            os.waitpid(p0.pid, 0)
+def ts2singlewav(pts):
+    bontsdemux = configreader.getpath('bontsdemux')
+    bonpin = "Z:\\" + pts[1:]
+    outf = os.path.splitext(pts)[0]
+    bonpout = "Z:\\" + outf[1:]
+    xvfb = configreader.getpath('xvfb-run')
+    exe = 'wine ' + bontsdemux + " -i \"" + bonpin + "\" -delay 167 -nd -sound 0 -o \"" + bonpout + "\" -start -quit"
+    #recdblist.printutf8(exe)
+    exe = xvfb + ' -a ' + exe
+    recdblist.printutf8(exe)
+    p=subprocess.Popen(exe.encode('utf-8'),shell=True)
+    os.waitpid(p.pid, 0)