OSDN Git Service

implement single audio using bontsdemux option(b).
authorgn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Sun, 9 May 2010 04:08:18 +0000 (04:08 +0000)
committergn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Sun, 9 May 2010 04:08:18 +0000 (04:08 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@593 4e526526-5e11-4fc0-8910-f8fd03428081

rec10/trunk/src/timerec.py
rec10/trunk/src/ts2x264.py
rec10/trunk/src/tv2avi.py

index ab8da85..04b7642 100644 (file)
@@ -593,6 +593,14 @@ def type_encode_que(typetxt,chtxt,title,bt,et,opt):
                     if not os.path.exists(paac2) and not os.path.exists(pmp32):
                         tv2avi.pentaaudio2sep(os.path.join(recpath, title+".ts"))
                 time.sleep(3)
+            elif re.search("b", opt):
+                pin = recpath + "/" + title + ".m2v"
+                if not os.path.exists(pin) or os.path.getsize(pin)<100*1000:
+                    paac2 = recpath + "/" + title + "_1.aac"
+                    pmp32 = recpath + "/" + title + "_1.mp3"
+                    if not os.path.exists(paac2) and not os.path.exists(pmp32):
+                        tv2avi.singleaudio2sep(os.path.join(recpath, title+".ts"))
+                time.sleep(3)
             makeMP4=0
             try:
                 if configreader.getenv("make_mp4")=="1":
index f2bda75..8d44261 100644 (file)
@@ -61,6 +61,14 @@ def ts2x264(pin, pout, opts):#sizeは"HD"か"SD"
         encode_ffmpeg(pin,pout,size,is24fps,quality,crf)
     elif re.search("5",opts):
         encode_ffmpeg(pin,pout,size,is24fps,quality,crf)
+    elif re.search("b",opts):
+        try:
+            tm2v=pin.replace(".ts",".m2v")
+            encode(tm2v, pout,size,is24fps,quality,crf)
+        except Exception, inst:
+            recdblist.printutf8("error occures in ts2x264.py encode")
+            recdblist.printutf8(str(type(inst)))
+            recdblist.printutf8(str(inst))
     else:
         try:
             encode(pin, pout,size,is24fps,quality,crf)
index 0449f15..d4a0b54 100644 (file)
@@ -59,6 +59,7 @@ def b252ts(pout, chtxt, btime, etime, opt):
         aviin = pout + ".ts"
         dualaudio = 0
         pentaaudio = 0
+        singleaudiosplit = 0
         if re.search("5", opt):
             pentaaudio = 1
         if re.search("d", opt):
@@ -69,10 +70,14 @@ def b252ts(pout, chtxt, btime, etime, opt):
             dualaudio = 1
         elif re.search(u'\(二\)', pout):
             dualaudio = 1
+        elif re.search("b",opt):
+            singleaudiosplit = 1
         if dualaudio == 1:
             dualaudio2sep(aviin,"167")
         if pentaaudio == 1:
             pentaaudio2sep(aviin)
+        if singleaudiosplit ==1:
+            singleaudio2sep(aviin)
     except Exception, inst:
         recdblist.printutf8("Error happened in b252ts in tv2avi")
         recdblist.printutf8(str(type(inst)))
@@ -96,26 +101,6 @@ def ts2raw(pin, pout, opt):
         recdblist.printutf8(str(type(inst)))
         recdblist.printutf8(str(inst))
     status.changeEncoding(-1)
-def dualaudiots2avi(pin, pout):
-    bontsdemux = configreader.getpath('bontsdemux')
-    bonpin = "Z:\\" + pin[1:]
-    outf = os.path.splitext(pin)[0]
-    bonpout = "Z:\\" + outf[1:]
-    xvfb = configreader.getpath('xvfb-run')
-    logpath=pin.replace("ts","log")
-    exe = 'wine ' + bontsdemux + " -i \"" + bonpin + "\" -delay 167 -nd -sound 0 -o \"" + bonpout + "\" -start -quit"
-    #recdblist.printutf8(exe)
-    exe = xvfb + ' -a ' + exe
-    recdblist.printutf8(exe)
-    os.system(exe.encode('utf-8'))
-    ffpin1 = pin.replace("ts", "wav")
-    ffpin2 = pin.replace("ts", "m2v")
-    exe = "ffmpeg -y  -i \'" + ffpin1 + "\' -i \'" + ffpin2 + "\' -r 29.97 -vsync 200 -vcodec copy -acodec libmp3lame -async 200 -ab 128k -f avi  \'" + pout + "\'"
-    recdblist.printutf8(exe)
-    #commands.getoutput(exe)
-    os.system(exe.encode('utf-8'))
-    os.remove(ffpin1)
-    os.remove(ffpin2)
 def dualaudio2sep(pin, delay):
     """
     delay is string
@@ -231,33 +216,48 @@ def pentaaudio2sep(pin):
     if os.path.exists(ffoput21):
         if os.path.getsize(ffpout21)>10*1000*1000:
             os.remove(ffpout1)
-def pentaaudiots2avi(pin, pout):
+
+def singleaudio2sep(pin):
     bontsdemux = configreader.getpath('bontsdemux')
+    wine = configreader.getpath('wine')
     xvfb = configreader.getpath('xvfb-run')
     bonpin = "Z:\\" + pin[1:]
     outf = os.path.splitext(pin)[0]
     bonpout = "Z:\\" + outf[1:]
-    exe = 'wine ' + bontsdemux + " -i \"" + bonpin + "\" -delay 167 -nd -sound 3 -o \"" + bonpout + "\" -start -quit"
+    exe = wine + ' ' + bontsdemux + " -i \"" + bonpin + "\" -delay 167 -nd -sound 0 -o \"" + bonpout + "\" -start -quit"
     exe = xvfb + ' -a ' + exe
     recdblist.printutf8(exe)
-    txt=u"Cmd : "+exe+"\n"
-    txt=txt+commands.getoutput(exe.encode('utf-8'))
-    recdblist.addlog(pin, txt, "5.1ch audio Demux log")
+    txt=commands.getoutput(exe.encode('utf-8'))
+    try:
+        recdblist.addlog(pin, txt, "singleaaudio-sep1 BontsDemux")
+    except:
+        ""
+    ffpin = pin.replace(".ts", "")
     ffpin1 = pin.replace("ts", "wav")
     ffpin2 = pin.replace("ts", "m2v")
-
-
-    exe = u"ffmpeg -y  -i \"" + ffpin1 + u"\" -i \'" + ffpin2 + u"\' -r 29.97 -vsync 200 -vcodec copy -acodec libmp3lame -async 200 -ab 128k -f avi  \"" + pout + "\""
+    ffpout1 = ffpin + "_1.wav"
+    ffpout2 = ffpin + "_2.aac"
+    shutil.move(ffpin1, ffpout1)
+    exe = "ffmpeg -i '"+pin+"' -vn -f aac -acodec copy '"+ffpout2+"'"
     recdblist.printutf8(exe)
-    txt=u"Cmd : "+exe+"\n"
-    txtt=commands.getoutput(exe.encode('utf-8'))
+    txt=commands.getoutput(exe.encode('utf-8'))
     try:
-        txt=txt+txtt
+        recdblist.addlog(pin, txt, "singleaudio-sep2(raw aac) ffmpeg")
     except:
-        txt=txt+"skip logging (not UTF-8)"
-    recdblist.addlog(pin, txt, "5.1ch audio Mux log")
-    if os.path.exists(pout):
-        if os.path.getsize(pout)>100*1000:
-            os.remove(ffpin1)
-            os.remove(ffpin2)
-
+        ""
+    ffpout21=ffpout1.replace(".wav",".mp3")
+    useNero=0
+    try:
+        if configreader.getpath("useNeroAAC")=="1" and os.path.exists(configreader.getpath("NeroAAC")):
+            useNero=1
+    except:
+        useNero=0
+    if useNero==1:
+        ffpout21=ffpout1.replace(".wav",".aac")
+        tv2audio.wav2aac_nero(ffpout1, ffpout21)
+    else:
+        tv2audio.wav2mp3_lame(ffpout1, ffpout21)
+    ffpout21=ffpout1.replace(".wav",".aac")
+    if os.path.exists(ffoput21):
+        if os.path.getsize(ffpout21)>10*1000*1000:
+            os.remove(ffpout1)
\ No newline at end of file