OSDN Git Service

make last branch
[rec10/rec10-git.git] / rec10 / branches / 0.4 / src / tv2avi.py
diff --git a/rec10/branches/0.4/src/tv2avi.py b/rec10/branches/0.4/src/tv2avi.py
new file mode 100644 (file)
index 0000000..b4e682d
--- /dev/null
@@ -0,0 +1,277 @@
+#!/usr/bin/python
+# coding: UTF-8
+# Rec10 TS Recording Tools
+# Copyright (C) 2009 Yukikaze
+import time
+import chdb
+import configreader
+import datetime
+import os
+import re
+import ts2x264
+import ts2xvid
+import tv2ts
+import recdb
+
+global Bitrate_HD
+global Bitrate_FHD
+global Bitrate_SD
+global Bitrate_WQVGA
+Bitrate_HD="2000"
+Bitrate_FHD="2500"
+Bitrate_SD="1250"
+Bitrate_WQVGA="200"
+
+def timetv2avi(pout, chtxt, btime, etime,opt):
+    bt = datetime.datetime.strptime(btime, "%Y-%m-%d %H:%M:%S")
+    et = datetime.datetime.strptime(etime, "%Y-%m-%d %H:%M:%S")
+    extt = os.path.splitext(pout)
+    tsout = extt[0]
+    #tsout=pout####
+    #print "4"+tsout
+    tnow = datetime.datetime.now()
+    wt = bt-tnow
+    waitt = wt.seconds-5
+    time.sleep(waitt)
+    tnow = datetime.datetime.now()
+    dt = et-tnow
+    rectime = dt.seconds-10
+    rectime = str(rectime)
+    #print tsout+".ts,"+chdb.chtxtsearch(chtxt)['ch']+","+chdb.chtxtsearch(chtxt)['csch']+","+rectime
+    tv2ts.tv2ts(tsout + ".ts", chdb.chtxtsearch(chtxt)['ch'], chdb.chtxtsearch(chtxt)['csch'], rectime)
+    aviin = tsout + ".ts"
+    dualaudio = 0
+    pentaaudio = 0
+    if re.search("5",opt):
+        pentaaudio = 1
+    if re.search("d",opt):
+        dualaudio = 1
+    if re.search("\[二\]", pout):
+        dualaudio = 1
+    elif re.search('(二)', pout):
+        dualaudio = 1
+    elif re.search('\(二\)', pout):
+        dualaudio = 1
+    if opt=="":
+        opts=""
+        if chdb.chtxtsearch(chtxt)['bctype'] == 'cs':
+            opts=opts+"S2"
+            if chtxt == "disch":
+                ""
+            elif chtxt == "hisch":
+                ""
+            else:
+                opts=opts+"a"
+        else:
+            opts=opts+"Ha2"
+    else:
+        opts=opt
+    if re.search("x",opt):
+        makexvid = 0
+    else:
+        makexvid = 1
+    if dualaudio == 1:
+        dualaudiots2avi(aviin, tsout + "sa.avi")
+        aviin = tsout + "sa.avi"
+    if pentaaudio ==1:
+        dualaudiots2avi(aviin, tsout + "sa.avi")
+        aviin = tsout + "sa.avi"
+    """
+    if makexvid==1:
+        ts2xvid.ts2xvid(aviin, pout,opts)
+    else:
+        ts2x264.ts2x264(aviin, pout,opts)
+        """
+    bt=datetime.datetime.now()+datetime.timedelta(seconds=600)
+    btime=bt.strftime("%Y-%m-%d %H:%M:%S")
+    et=datetime.datetime.now()+datetime.timedelta(seconds=600)
+    etime=et.strftime("%Y-%m-%d %H:%M:%S")
+    title=os.path.split(tsout)[1]
+    #try:
+    #    os.remove(aviin)
+    #except:
+    #    ""
+def tv2avi(pout, chtxt, btime, etime,opt):
+    bt = datetime.datetime.strptime(btime, "%Y-%m-%d %H:%M:%S")
+    et = datetime.datetime.strptime(etime, "%Y-%m-%d %H:%M:%S")
+    dt = et-bt
+    time = dt.seconds-10
+    time = str(time)
+    extt = os.path.splitext(pout)
+    tsout = extt[0]
+    #tsout=pout####
+    #print "4"+tsout
+    #print tsout+".ts,"+chdb.chtxtsearch(chtxt)['ch']+","+chdb.chtxtsearch(chtxt)['csch']+","+time
+    tv2ts.tv2ts(tsout + ".ts", chdb.chtxtsearch(chtxt)['ch'], chdb.chtxtsearch(chtxt)['csch'], time)
+    aviin = tsout + ".ts"
+    dualaudio = 0
+    pentaaudio = 0 
+    if re.search("5",opt):
+        pentaaudio = 1
+    if re.search("d",opt):
+        dualaudio = 1
+    if re.search('\[二\]', pout):
+        dualaudio = 1
+    elif re.search('(二)', pout):
+        dualaudio = 1
+    elif re.search('\(二\)', pout):
+        dualaudio = 1
+    opts=""
+    if chdb.chtxtsearch(chtxt)['bctype'] == 'cs':
+        opts=opts+"S2"
+        if chtxt == "disch":
+            ""
+        elif chtxt == "hisch":
+            ""
+        else:
+            opts=opts+"a"
+    else:
+        opts=opts+"Ha2"
+    if dualaudio == 1:
+        dualaudiots2avi(aviin, tsout + "sa.avi")
+        aviin = tsout + "sa.avi"
+    if pentaaudio ==1:
+        dualaudiots2avi(aviin, tsout + "sa.avi")
+        aviin = tsout + "sa.avi"
+    ts2x264.ts2x264(aviin, pout,opts)
+    #os.remove(aviin)
+def b252avi(pout, chtxt,opt):
+    #bt = datetime.datetime.strptime(btime, "%Y-%m-%d %H:%M:%S")
+    #et = datetime.datetime.strptime(etime, "%Y-%m-%d %H:%M:%S")
+    extt = os.path.splitext(pout)
+    tsout = extt[0]
+    #tsout=pout####
+    #print "4"+tsout
+    #tnow = datetime.datetime.now()
+    #wt = bt-tnow
+    #waitt = wt.seconds-5
+    #time.sleep(waitt)
+    #tnow = datetime.datetime.now()
+    #dt = et-tnow
+    #rectime = dt.seconds-10
+    #rectime = str(rectime)
+    tv2ts.b252ts(tsout + ".ts", chdb.chtxtsearch(chtxt)['ch'], chdb.chtxtsearch(chtxt)['csch'])
+    #tv2ts.tv2ts(tsout + ".ts", chdb.chtxtsearch(chtxt)['ch'], chdb.chtxtsearch(chtxt)['csch'], rectime)
+    aviin = tsout + ".ts"
+    dualaudio = 0
+    pentaaudio = 0
+    if re.search("5",opt):
+        pentaaudio = 1
+    if re.search("d",opt):
+        dualaudio = 1
+    if re.search('\[二\]', pout):
+        dualaudio = 1
+    elif re.search('(二)', pout):
+        dualaudio = 1
+    elif re.search('\(二\)', pout):
+        dualaudio = 1
+    if opt=="":
+        opts=""
+        if chdb.chtxtsearch(chtxt)['bctype'] == 'cs':
+            opts=opts+"S2"
+            if chtxt == "disch":
+                ""
+            elif chtxt == "hisch":
+                ""
+            else:
+                opts=opts+"a"
+        else:
+            opts=opts+"Ha2"
+    else:
+        opts=opt
+    if re.search("x",opt):
+        makexvid = 0
+    else:
+        makexvid = 1
+    if dualaudio == 1:
+        dualaudiots2avi(aviin, tsout + "sa.avi")
+        aviin = tsout + "sa.avi"
+    if pentaaudio ==1:
+        dualaudiots2avi(aviin, tsout + "sa.avi")
+        aviin = tsout + "sa.avi"
+    if makexvid==1:
+        ts2xvid.ts2xvid(aviin, pout,opts)
+    else:
+        ts2x264.ts2x264(aviin, pout,opts)
+    #try:
+    #    os.remove(aviin)
+    #except:
+    #    ""
+
+    """
+    pout = pout.encode('utf-8')
+    extt = os.path.splitext(pout)
+    tsout = extt[0]
+    #print tsout+".ts,"+chdb.chtxtsearch(chtxt)['ch']+","+chdb.chtxtsearch(chtxt)['csch']+","+time
+    tv2ts.b252ts(tsout + ".ts", chdb.chtxtsearch(chtxt)['ch'], chdb.chtxtsearch(chtxt)['csch'])
+    aviin = tsout + ".ts"
+    dualaudio = 0
+    if re.search("d",opt):
+        dualaudio = 1
+    if re.search('\[二\]', pout):
+        dualaudio = 1
+    elif re.search('(二)', pout):
+        dualaudio = 1
+    elif re.search('\(二\)', pout):
+        dualaudio = 1
+    opts=""
+    if chdb.chtxtsearch(chtxt)['bctype'] == 'cs':
+        opts=opts+"S2"
+        if chtxt == "disch":
+            ""
+        elif chtxt == "hisch":
+            ""
+        else:
+            opts=opts+"a"
+    else:
+        opts=opts+"Ha2"
+    if dualaudio == 1:
+        dualaudiots2avi(aviin, tsout + "sa.avi")
+        aviin = tsout + "sa.avi"
+    ts2x264.ts2x264(aviin, pout,opts)
+    #os.remove(aviin)
+
+    """
+
+def dualaudiots2avi(pin, pout):
+    bontsdemux = configreader.getpath('bontsdemux')
+    wine = configreader.getpath('wine')
+    cmdwine = configreader.getpath('cmdwine')
+    bonpin = "Z:\\" + pin[1:]
+    outf = os.path.splitext(pin)[0]
+    bonpout = "Z:\\" + outf[1:]
+    exe = 'wine ' + bontsdemux + " -i \"" + bonpin + "\" -delay 167 -nd -sound 0 -o \"" + bonpout + "\" -start -quit"
+    #print exe
+    exe = 'xvfb-run -a ' + exe
+    #exe='export Display=:2&&'+exe
+    print exe
+    os.system(exe)
+    ffpin1 = pin.replace("ts", "wav")
+    ffpin2 = pin.replace("ts", "m2v")
+    exe = "ffmpeg -y  -i \'" + ffpin1 + "\' -i \'" + ffpin2 + "\' -r 29.97 -vsync 200 -vcodec copy -acodec libmp3lame -async 200 -ab 128k -f avi  \'" + pout + "\'"
+    #print exe
+    os.system(exe)
+    os.remove(ffpin1)
+    os.remove(ffpin2)
+
+def pentaaudiots2avi(pin, pout):
+    bontsdemux = configreader.getpath('bontsdemux')
+    wine = configreader.getpath('wine')
+    cmdwine = configreader.getpath('cmdwine')
+    bonpin = "Z:\\" + pin[1:]
+    outf = os.path.splitext(pin)[0]
+    bonpout = "Z:\\" + outf[1:]
+    exe = 'wine ' + bontsdemux + " -i \"" + bonpin + "\" -delay 167 -nd -sound 3 -o \"" + bonpout + "\" -start -quit"
+    #print exe
+    exe = 'xvfb-run -a ' + exe
+    #exe='export Display=:2&&'+exe
+    print exe
+    os.system(exe)
+    ffpin1 = pin.replace("ts", "wav")
+    ffpin2 = pin.replace("ts", "m2v")
+    exe = "ffmpeg -y  -i \'" + ffpin1 + "\' -i \'" + ffpin2 + "\' -r 29.97 -vsync 200 -vcodec copy -acodec libmp3lame -async 200 -ab 128k -f avi  \'" + pout + "\'"
+    #print exe
+    os.system(exe)
+    os.remove(ffpin1)
+    os.remove(ffpin2)
+