OSDN Git Service

classify : fix DB id undefined.
[rec10/rec10-git.git] / rec10 / tv2avi.py
1 #!/usr/bin/python
2 # coding: UTF-8
3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009-2011 Yukikaze
5 import commands
6 import datetime
7 import os
8 import re
9 import shutil
10 import time
11 import os.path
12 import traceback
13
14 import chdb
15 import configreader
16 import status
17 import ts2x264
18 import tv2ts
19 import recdblist
20 import tv2audio
21
22
23 global Bitrate_SD
24 global Bitrate_HD
25 global Bitrate_FHD
26 global Bitrate_Short
27 global Bitrate_LowHD
28 Bitrate_SD = 1250
29 Bitrate_HD = 3750
30 Bitrate_LowHD = 2500
31 Bitrate_FHD = 5000
32 Bitrate_Short = 1250
33 def timetv2b25(pout, chtxt, btime, etime, opt):
34     """
35     poutはタイトル
36     """
37     bt = datetime.datetime.strptime(btime, "%Y-%m-%d %H:%M:%S")
38     et = datetime.datetime.strptime(etime, "%Y-%m-%d %H:%M:%S")
39     extt = os.path.splitext(pout)
40     tsout = extt[0]
41     tnow = datetime.datetime.now()
42     wt = bt-tnow
43     waitt = wt.seconds
44     if waitt>0:
45         time.sleep(waitt)
46     tnow = datetime.datetime.now()
47     dt = et-tnow
48     rectime = dt.seconds-5
49     rectime = str(rectime)
50     tv2ts.tv2b25ts(tsout + ".ts.b25", chdb.searchCHFromChtxt(chtxt)['ch'], rectime,chdb.searchCHFromChtxt(chtxt)['tsid'])
51 def b252ts(pout, chtxt, btime, etime, opt):
52     """
53     poutはタイトル(自動的にtitle.b25 title.tsと名前がつきます。)
54     """
55     #status.setB25Decoding(status.getB25Decoding() + 1)
56     status.changeB25Decoding(1)
57     try:
58         try:
59             chs=chdb.searchCHFromChtxt(chtxt)
60             ch=chs['ch']
61             csch=chs['csch']
62             #print [ch,csch,chtxt]
63         except:
64             ch="0"
65             csch="0"
66         tv2ts.b252ts(pout + ".ts", ch, csch)
67         tsout = pout
68         aviin = pout + ".ts"
69         dualaudio = 0
70         pentaaudio = 0
71         singleaudiosplit = 0
72         if re.search("5", opt):
73             pentaaudio = 1
74         if re.search("d", opt):
75             dualaudio = 1
76         if re.search("b", opt):
77             singleaudiosplit = 1
78         if re.search(u"\[二\]", pout):
79             dualaudio = 1
80         elif re.search(u'(二)', pout):
81             dualaudio = 1
82         elif re.search(u'\(二\)', pout):
83             dualaudio = 1
84         if dualaudio == 1:
85             tv2audio.ts2dualaudio_BonTsDemux(aviin, recdblist.BONTSDEMUX_DELAY, opt)
86         if pentaaudio == 1:
87             tv2audio.ts2pentaaudio_BonTsDemux(aviin, recdblist.BONTSDEMUX_DELAY, opt)
88         if singleaudiosplit == 1:
89             tv2audio.ts2single_fp_BonTsDemux(aviin, opt)
90     except Exception, inst:
91         recdblist.addCommonlogEX("Error", "b252ts(tv2avi.py)", str(type(inst))+traceback.format_exc(), str(inst))
92     status.changeB25Decoding(-1)
93 def ts2avi(pin, pout, opt):
94     status.changeEncoding(1)
95     try:
96         ts2x264.ts2x264(pin, pout, opt)
97     except Exception, inst:
98         recdblist.printutf8("error occures in tv2avi.py ts2avi")
99         recdblist.printutf8(str(type(inst)))
100         recdblist.printutf8(str(inst)+traceback.format_exc())
101     status.changeEncoding(-1)
102 def ts2raw(pin, pout, opt):
103     status.changeEncoding(1)
104     try:
105         ts2x264.ts2x264(pin, pout, opt)
106     except Exception, inst:
107         recdblist.printutf8("error occures in tv2avi.py ts2raw")
108         recdblist.printutf8(str(type(inst)))
109         recdblist.printutf8(str(inst)+traceback.format_exc())
110     status.changeEncoding(-1)
111