OSDN Git Service

implement BonTsDemux Audio Split option.
authorgn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Sun, 27 Feb 2011 03:02:47 +0000 (03:02 +0000)
committergn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Sun, 27 Feb 2011 03:02:47 +0000 (03:02 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@848 4e526526-5e11-4fc0-8910-f8fd03428081

rec10/trunk/src/chdb.py
rec10/trunk/src/dbMySQL.py
rec10/trunk/src/readme.txt
rec10/trunk/src/timerec.py
rec10/trunk/src/ts2x264.py
rec10/trunk/src/tv2avi.py
rec10/trunk/src/tv2mp4.py

index 65133fa..b53c220 100644 (file)
-#!/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
index 667be02..4e6d1f9 100644 (file)
@@ -24,7 +24,7 @@ class DB_MySQL:
         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:
index ea70a7f..1533af0 100644 (file)
@@ -72,6 +72,7 @@ yukikaze.jp@gmail.com
 
 [History]
 11/XX/XX 0.9.10
+ステレオ音声時のBonTsDemux仕様オプション追加("0")
 lameの実行パスチェックを実装
 mencoderのコマンドラインを最新版対応へ
 ffmpegのオプション追加
index dff97a8..633f4e1 100644 (file)
@@ -116,14 +116,14 @@ def task():
                 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()
@@ -652,6 +652,14 @@ def type_encode_que(typetxt,chtxt,title,bt,et,opt):
                     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":
index 69b23b5..0faf8fd 100644 (file)
@@ -69,7 +69,8 @@ def ts2x264(pin, pout, opts):#sizeは"HD"か"SD"
     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
index 1228fac..4123a31 100644 (file)
@@ -73,6 +73,8 @@ def b252ts(pout, chtxt, btime, etime, opt):
             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
@@ -83,6 +85,8 @@ def b252ts(pout, chtxt, btime, etime, opt):
             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
index d237be8..13a4251 100644 (file)
@@ -27,8 +27,6 @@ def ts2mp4(pin, pout, opt):
     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
@@ -59,10 +57,7 @@ def raw2mp4(pin,pout,opt):
     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
@@ -137,6 +132,13 @@ def addAudio(pts,pmp4,opts):#オプションに応じた音声の追加を行う
             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