--- /dev/null
+#!/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)
+