OSDN Git Service

add dist
[rec10/rec10-git.git] / dist / trunk / rec10 / tv2avi.py
diff --git a/dist/trunk/rec10/tv2avi.py b/dist/trunk/rec10/tv2avi.py
new file mode 100755 (executable)
index 0000000..9af76d2
--- /dev/null
@@ -0,0 +1,111 @@
+#!/usr/bin/python\r
+# coding: UTF-8\r
+# Rec10 TS Recording Tools\r
+# Copyright (C) 2009-2011 Yukikaze\r
+import commands\r
+import datetime\r
+import os\r
+import re\r
+import shutil\r
+import time\r
+import os.path\r
+import traceback\r
+\r
+import chdb\r
+import configreader\r
+import status\r
+import ts2x264\r
+import tv2ts\r
+import recdblist\r
+import tv2audio\r
+\r
+\r
+global Bitrate_SD\r
+global Bitrate_HD\r
+global Bitrate_FHD\r
+global Bitrate_Short\r
+global Bitrate_LowHD\r
+Bitrate_SD = 1250\r
+Bitrate_HD = 3750\r
+Bitrate_LowHD = 2500\r
+Bitrate_FHD = 5000\r
+Bitrate_Short = 1250\r
+def timetv2b25(pout, chtxt, btime, etime, opt):\r
+    """\r
+    poutはタイトル\r
+    """\r
+    bt = datetime.datetime.strptime(btime, "%Y-%m-%d %H:%M:%S")\r
+    et = datetime.datetime.strptime(etime, "%Y-%m-%d %H:%M:%S")\r
+    extt = os.path.splitext(pout)\r
+    tsout = extt[0]\r
+    tnow = datetime.datetime.now()\r
+    wt = bt-tnow\r
+    waitt = wt.seconds\r
+    if waitt>0:\r
+        time.sleep(waitt)\r
+    tnow = datetime.datetime.now()\r
+    dt = et-tnow\r
+    rectime = dt.seconds-5\r
+    rectime = str(rectime)\r
+    tv2ts.tv2b25ts(tsout + ".ts.b25", chdb.searchCHFromChtxt(chtxt)['ch'], rectime)\r
+def b252ts(pout, chtxt, btime, etime, opt):\r
+    """\r
+    poutはタイトル(自動的にtitle.b25 title.tsと名前がつきます。)\r
+    """\r
+    #status.setB25Decoding(status.getB25Decoding() + 1)\r
+    status.changeB25Decoding(1)\r
+    try:\r
+        try:\r
+            chs=chdb.searchCHFromChtxt(chtxt)\r
+            ch=chs['ch']\r
+            csch=chs['csch']\r
+            #print [ch,csch,chtxt]\r
+        except:\r
+            ch=0\r
+            csch=0\r
+        tv2ts.b252ts(pout + ".ts", ch, csch)\r
+        tsout = pout\r
+        aviin = pout + ".ts"\r
+        dualaudio = 0\r
+        pentaaudio = 0\r
+        singleaudiosplit = 0\r
+        if re.search("5", opt):\r
+            pentaaudio = 1\r
+        if re.search("d", opt):\r
+            dualaudio = 1\r
+        if re.search("b", opt):\r
+            singleaudiosplit = 1\r
+        if re.search(u"\[二\]", pout):\r
+            dualaudio = 1\r
+        elif re.search(u'(二)', pout):\r
+            dualaudio = 1\r
+        elif re.search(u'\(二\)', pout):\r
+            dualaudio = 1\r
+        if dualaudio == 1:\r
+            tv2audio.ts2dualaudio_BonTsDemux(aviin, recdblist.BONTSDEMUX_DELAY, opt)\r
+        if pentaaudio == 1:\r
+            tv2audio.ts2pentaaudio_BonTsDemux(aviin, recdblist.BONTSDEMUX_DELAY, opt)\r
+        if singleaudiosplit == 1:\r
+            tv2audio.ts2single_fp_BonTsDemux(aviin, opt)\r
+    except Exception, inst:\r
+        recdblist.addCommonlogEX("Error", "b252ts(tv2avi.py)", str(type(inst))+traceback.format_exc(), str(inst))\r
+    status.changeB25Decoding(-1)\r
+def ts2avi(pin, pout, opt):\r
+    status.changeEncoding(1)\r
+    try:\r
+        ts2x264.ts2x264(pin, pout, opt)\r
+    except Exception, inst:\r
+        recdblist.printutf8("error occures in tv2avi.py ts2avi")\r
+        recdblist.printutf8(str(type(inst)))\r
+        recdblist.printutf8(str(inst)+traceback.format_exc())\r
+    status.changeEncoding(-1)\r
+def ts2raw(pin, pout, opt):\r
+    status.changeEncoding(1)\r
+    try:\r
+        ts2x264.ts2x264(pin, pout, opt)\r
+    except Exception, inst:\r
+        recdblist.printutf8("error occures in tv2avi.py ts2raw")\r
+        recdblist.printutf8(str(type(inst)))\r
+        recdblist.printutf8(str(inst)+traceback.format_exc())\r
+    status.changeEncoding(-1)\r
+\r