OSDN Git Service

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