-#!/usr/bin/python
-# coding: UTF-8
-# Rec10 TS Recording Tools
-# Copyright (C) 2009-2011 Yukikaze
- # モジュール属性 argv を取得するため
-import rec10d
-
-def searchCHFromChtxt(chtxtin):
- chtxtt=chtxtin.replace("_0","_%")
- ret = []
- for datum in rec10d.rec10db.select_by_chtxt_epg_ch(chtxtt):
- rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}
- ret.append(rett)
- if len(ret) == 0:
- ret.append(None)
- return ret[0]
-def searchCHFromBctype(bctypein):
- ret = []
- for datum in rec10d.rec10db.select_by_bctype_epg_ch(bctypein):
- rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}
- ret.append(rett)
- if len(ret) == 0:
- ret.append(None)
- return ret[0]
-def searchCHFromCh(chin):
- ret = []
- for datum in rec10d.rec10db.select_by_ch_epg_ch(chin):
- rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}
- ret.append(rett)
- if len(ret) == 0:
- ret.append(None)
- return ret[0]
-def searchCHFromCsch(cschin):
- ret = []
- for datum in rec10d.rec10db.select_by_csch_epg_ch(cschin):
- rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}
- ret.append(rett)
- if len(ret) == 0:
- ret.append(None)
- return ret[0]
-def searchAllCHFromCh(chin):
- ret = []
- for datum in rec10d.rec10db.select_by_ch_epg_ch(chin):
- rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}
- ret.append(rett)
- if len(ret) == 0:
- ret.append(None)
- return ret
-def getAllCH():
- ret = []
- for datum in rec10d.rec10db.select_all_epg_ch():
- rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}
- ret.append(rett)
- if len(ret) == 0:
- ret.append(None)
- return ret
-def update():
- ret = []
- CSupdate = 0
- CS2update = 0
- BSupdate = 0
- rec10d.rec10db.set_new_status("8")
- for datum in rec10d.rec10db.select_get_update_epg_ch("6"):
- bctype = datum[0]
- if bctype == "cs1" or bctype == u"cs1":
- if CSupdate == 0:
- ret.append(u"cs1")
- CSupdate = 1
- elif bctype == "cs2" or bctype == u"cs2":
- if CS2update == 0:
- ret.append(u"cs2")
- CS2update = 1
- elif bctype == "bs" or bctype == u"bs":
- if BSupdate == 0:
- ret.append(u"bs")
- BSupdate = 1
- else:
- ret.append(bctype)
- return ret
-def changeCHShow(chtxt,isshow):
- rec10d.rec10db.change_visible_epg_ch(chtxt, isshow)
-def updateLogo():
- ret=[]
- BSCSUpdate=0
- for datum in rec10d.rec10db.select_get_updatelogo_epg_ch("720"):
- bctype=datum[0]
- if bctype == "cs1" or bctype == u"cs1":
- if BSCSUpdate==0:
- ret.append(u"bs")
- BSCSUpdate=1
- elif bctype == "cs2" or bctype == u"cs2":
- if BSCSUpdate==0:
- ret.append(u"bs")
- BSCSUpdate=1
- elif bctype == "bs" or bctype == u"bs":
- if BSCSUpdate==0:
- ret.append(u"bs")
- BSCSUpdate=1
- else:
- ret.append(bctype)
- return ret
+#!/usr/bin/python\r
+# coding: UTF-8\r
+# Rec10 TS Recording Tools\r
+# Copyright (C) 2009-2011 Yukikaze\r
+ # モジュール属性 argv を取得するため\r
+import rec10d\r
+\r
+def searchCHFromChtxt(chtxtin):\r
+ chtxtt=chtxtin.replace("_0","_%")\r
+ ret = []\r
+ for datum in rec10d.rec10db.select_by_chtxt_epg_ch(chtxtt):\r
+ rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}\r
+ ret.append(rett)\r
+ if len(ret) == 0:\r
+ ret.append(None)\r
+ return ret[0]\r
+def searchCHFromBctype(bctypein):\r
+ ret = []\r
+ for datum in rec10d.rec10db.select_by_bctype_epg_ch(bctypein):\r
+ rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}\r
+ ret.append(rett)\r
+ if len(ret) == 0:\r
+ ret.append(None)\r
+ return ret[0]\r
+def searchCHFromCh(chin):\r
+ ret = []\r
+ for datum in rec10d.rec10db.select_by_ch_epg_ch(chin):\r
+ rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}\r
+ ret.append(rett)\r
+ if len(ret) == 0:\r
+ ret.append(None)\r
+ return ret[0]\r
+def searchCHFromCsch(cschin):\r
+ ret = []\r
+ for datum in rec10d.rec10db.select_by_csch_epg_ch(cschin):\r
+ rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}\r
+ ret.append(rett)\r
+ if len(ret) == 0:\r
+ ret.append(None)\r
+ return ret[0]\r
+def searchAllCHFromCh(chin):\r
+ ret = []\r
+ for datum in rec10d.rec10db.select_by_ch_epg_ch(chin):\r
+ rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}\r
+ ret.append(rett)\r
+ if len(ret) == 0:\r
+ ret.append(None)\r
+ return ret\r
+def getAllCH():\r
+ ret = []\r
+ for datum in rec10d.rec10db.select_all_epg_ch():\r
+ rett = {'bctype':datum[0], 'chtxt':datum[1], 'ch':datum[2], 'csch':datum[3], 'update':datum[4], 'chname':datum[5], 'visible':datum[7]}\r
+ ret.append(rett)\r
+ if len(ret) == 0:\r
+ ret.append(None)\r
+ return ret\r
+def update():\r
+ ret = []\r
+ CSupdate = 0\r
+ CS2update = 0\r
+ BSupdate = 0\r
+ rec10d.rec10db.set_new_status("8")\r
+ for datum in rec10d.rec10db.select_get_update_epg_ch("6"):\r
+ bctype = datum[0]\r
+ if bctype == "cs1" or bctype == u"cs1":\r
+ if CSupdate == 0:\r
+ ret.append(u"cs1")\r
+ CSupdate = 1\r
+ elif bctype == "cs2" or bctype == u"cs2":\r
+ if CS2update == 0:\r
+ ret.append(u"cs2")\r
+ CS2update = 1\r
+ elif bctype == "bs" or bctype == u"bs":\r
+ if BSupdate == 0:\r
+ ret.append(u"bs")\r
+ BSupdate = 1\r
+ else:\r
+ ret.append(bctype)\r
+ return ret\r
+def changeCHShow(chtxt,isshow):\r
+ rec10d.rec10db.change_visible_epg_ch(chtxt, isshow)\r
+def updateLogo():\r
+ ret=[]\r
+ BSCSUpdate=0\r
+ for datum in rec10d.rec10db.select_get_updatelogo_epg_ch("720"):\r
+ bctype=datum[0]\r
+ if bctype == "cs1" or bctype == u"cs1":\r
+ if BSCSUpdate==0:\r
+ ret.append(u"bs")\r
+ BSCSUpdate=1\r
+ elif bctype == "cs2" or bctype == u"cs2":\r
+ if BSCSUpdate==0:\r
+ ret.append(u"bs")\r
+ BSCSUpdate=1\r
+ elif bctype == "bs" or bctype == u"bs":\r
+ if BSCSUpdate==0:\r
+ ret.append(u"bs")\r
+ BSCSUpdate=1\r
+ else:\r
+ ret.append(bctype)\r
+ return ret\r
try:
con = MySQLdb.connect(user=user, passwd=passwd)
cur = con.cursor()
- cur.execute('CREATE DATABASE ' + dbname + " DEFAULT CHARACTER SET utf8")
+ cur.execute('CREATE DATABASE ' + dbname + " DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;")
cur.close()
con.close()
except Exception, inst:
[History]
11/XX/XX 0.9.10
+ステレオ音声時のBonTsDemux仕様オプション追加("0")
lameの実行パスチェックを実装
mencoderのコマンドラインを最新版対応へ
ffmpegのオプション追加
recnum = 0
if bctype.find('te') > -1:
recnum = status.getTERecording() + recdb.countRecNow_minutes_TE("1200")
- recdblist.printutf8(u"ロゴ取得 : 放送種別-"+bctype + u"||該当チューナー実行中件数:" + str(status.getTERecording()) + u":直近予約件数:" + str(recdb.countRecNow_minutes_TE("10")),verbose_level=800)
+ recdblist.printutf8(u"ロゴ未取得 : 放送種別-"+bctype + u"||該当チューナー実行中件数:" + str(status.getTERecording()) + u":直近予約件数:" + str(recdb.countRecNow_minutes_TE("10")),verbose_level=800)
recnum = int(configreader.getConfEnv("te_max")) -recnum
else:
recnum = status.getBSCSRecording() + recdb.countRecNow_minutes_BSCS("1200")
- recdblist.printutf8(u"ロゴ取得 : 放送種別-"+bctype + u"||該当チューナー実行中件数:" + str(status.getBSCSRecording()) + u":直近予約件数:" + str(recdb.countRecNow_minutes_BSCS("10")),verbose_level=800)
+ recdblist.printutf8(u"ロゴ未取得 : 放送種別-"+bctype + u"||該当チューナー実行中件数:" + str(status.getBSCSRecording()) + u":直近予約件数:" + str(recdb.countRecNow_minutes_BSCS("10")),verbose_level=800)
recnum = int(configreader.getConfEnv("bscs_max")) -recnum
if recnum >0 :
- recdblist.printutf8(str(updatelogo),verbose_level=750)
+ recdblist.printutf8(u"ロゴ取得"+str(updatelogo),verbose_level=750)
rec10d.rec10db.update_logostatus_by_bctype_epg_ch(bctype,"0")
epgdb.updateLogo_bc(bctype)
updatelogo = chdb.updateLogo()
if not os.path.exists(paac2) and not os.path.exists(pmp32):
tv2audio.ts2pentaaudio_BonTsDemux(os.path.join(recpath, title+".ts"), recdblist.BONTSDEMUX_DELAY, opt)
time.sleep(3)
+ elif re.search("0", opt):
+ pin = recpath + "/" + title + ".m2v"
+ if not os.path.exists(pin) or os.path.getsize(pin)<100*1000:
+ paac2 = recpath + "/" + title + ".aac"
+ pmp32 = recpath + "/" + title + ".mp3"
+ if not os.path.exists(paac2) and not os.path.exists(pmp32):
+ tv2audio.ts2single_fp_BonTsDemux(os.path.join(recpath, title+".ts"),opt)
+ time.sleep(3)
makeMP4=0
try:
if configreader.getConfEnv("make_mp4")=="1":
elif re.search("5",opts):#5.1chの場合\r
encodeFfmpegSar(pin,pout,size,is24fps,quality,crf,deinterlace)\r
elif re.search("0",opts):#BonTsDemuxを使いたい場合\r
- ""\r
+ tm2v=pin.replace(".ts",".m2v")\r
+ encodeFfmpegSar(tm2v,pout,size,is24fps,quality,crf,deinterlace)\r
else:\r
try:\r
encodeMencoderSar(pin, pout,size,is24fps,quality,crf,deinterlace=deinterlace,uselavf=1)\r
pentaaudio = 1\r
if re.search("d", opt):\r
dualaudio = 1\r
+ if re.search("0", opt):\r
+ singleaudiosplit = 1\r
if re.search(u"\[二\]", pout):\r
dualaudio = 1\r
elif re.search(u'(二)', pout):\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
title=os.path.splitext(title)[0]\r
tpraw=os.path.join(dir, title+".264")\r
tpmp4=os.path.join(dir, title+".mp4")\r
- if re.search("d",opt) and not os.path.exists(pin.replace(".ts",".m2v")):\r
- tv2audio.ts2dualaudio_BonTsDemux(pin,recdblist.BONTSDEMUX_DELAY, opt)\r
if os.path.isfile(pin) and os.path.getsize(pin)>10*1000:\r
tv2avi.ts2raw(pin, tpraw, opt)\r
time.sleep(10)\r
addCaption(pints, pout)\r
if status.getSettings_auto_del_tmp()==1:\r
if os.path.exists(pout):\r
- if re.search(opt,"1") or re.search(opt,"2"):\r
- auto_process.deleteTmpFile(dir, title, ".mp4")\r
- else:\r
- auto_process.deleteTmpFile(dir, title, ".mp4")\r
+ auto_process.deleteTmpFile(dir, title, ".mp4")\r
def mkv2mp4(pin,pout):\r
exeb = configreader.getConfPath(u"mkvextract")\r
exe = configreader.getConfPath(u"mp4Box")\r
addmp4(paac1, pmp4, e1a1)\r
if os.path.exists(paac2):\r
addmp4(paac2, pmp4, e1a2)\r
+ elif re.search("0",opts):#BonTsDemuxを使って音声をスプリットした場合\r
+ paac=pts.replace(".ts",".aac")\r
+ if not os.path.exists(paac):\r
+ paac=pts.replace(".ts",".mp3")\r
+ e1a1=exe +u" -add \""+paac+"\" \""+pmp4+"\""\r
+ if os.path.exists(paac):\r
+ addmp4(paac, pmp4, e1a1)\r
else:\r
tv2audio.ts2single_audio(pts,opts)\r
pinaac=pts.replace(".ts",".aac")\r