OSDN Git Service

implement to work "a bit after start resolution changing movie".
[rec10/rec10-git.git] / rec10 / trunk / src / tv2avi.py
1 #!/usr/bin/python
2 # coding: UTF-8
3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009-2010 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.chtxtsearch(chtxt)['ch'], rectime)
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             ch=chtxt.split("_")[0]
60             csch=chtxt.split("_")[1]
61         except:
62             ch=0
63             csch=0
64         tv2ts.b252ts(pout + ".ts", ch, csch)
65         tsout = pout
66         aviin = pout + ".ts"
67         dualaudio = 0
68         pentaaudio = 0
69         singleaudiosplit = 0
70         if re.search("5", opt):
71             pentaaudio = 1
72         if re.search("d", opt):
73             dualaudio = 1
74         if re.search(u"\[二\]", pout):
75             dualaudio = 1
76         elif re.search(u'(二)', pout):
77             dualaudio = 1
78         elif re.search(u'\(二\)', pout):
79             dualaudio = 1
80         if dualaudio == 1:
81             tv2audio.ts2dualaudio_BonTsDemux(aviin, recdblist.BONTSDEMUX_DELAY, opt)
82         if pentaaudio == 1:
83             tv2audio.ts2pentaaudio_BonTsDemux(aviin, recdblist.BONTSDEMUX_DELAY, opt)
84     except Exception, inst:
85         recdblist.Commonlogex("Error", "b252ts(tv2avi.py)", str(type(inst))+traceback.format_exc(), str(inst))
86     status.changeB25Decoding(-1)
87 def ts2avi(pin, pout, opt):
88     status.changeEncoding(1)
89     try:
90         ts2x264.ts2x264(pin, pout, opt)
91     except Exception, inst:
92         recdblist.printutf8("error occures in tv2avi.py ts2avi")
93         recdblist.printutf8(str(type(inst)))
94         recdblist.printutf8(str(inst)+traceback.format_exc())
95     status.changeEncoding(-1)
96 def ts2raw(pin, pout, opt):
97     status.changeEncoding(1)
98     try:
99         ts2x264.ts2x264(pin, pout, opt)
100     except Exception, inst:
101         recdblist.printutf8("error occures in tv2avi.py ts2raw")
102         recdblist.printutf8(str(type(inst)))
103         recdblist.printutf8(str(inst)+traceback.format_exc())
104     status.changeEncoding(-1)
105