OSDN Git Service

add bluray option.
authorgn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Sat, 26 Mar 2011 01:27:55 +0000 (01:27 +0000)
committergn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Sat, 26 Mar 2011 01:27:55 +0000 (01:27 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@852 4e526526-5e11-4fc0-8910-f8fd03428081

rec10/trunk/src/ts2x264.py

index 0cfb9d4..672bbea 100644 (file)
@@ -25,6 +25,7 @@ def ts2x264(pin, pout, opts):#sizeは"HD"か"SD"
     quality=int(configreader.getConfEnv("x264_preset"))\r
     crf=int(configreader.getConfEnv("crf"))\r
     deinterlace=1\r
+    bluray=0\r
     if re.search("H", opts):\r
         size = "HD"\r
     if re.search("S", opts):\r
@@ -47,6 +48,8 @@ def ts2x264(pin, pout, opts):#sizeは"HD"か"SD"
         crf=int(configreader.getConfEnv("animation_crf"))\r
     if re.search("I", opts):\r
         deinterlace=0\r
+    if re.search("B", opts):\r
+        bluray=1\r
     if re.search("q",opts):\r
         quality=quality-2\r
     if re.search("w",opts):\r
@@ -65,31 +68,31 @@ def ts2x264(pin, pout, opts):#sizeは"HD"か"SD"
         crf=crf-2\r
     if re.search("d",opts):#二カ国語放送の場合\r
         tm2v=pin.replace(".ts",".m2v")\r
-        encodeFfmpegSar(tm2v,pout,size,is24fps,quality,crf,deinterlace)\r
+        encodeFfmpegSar(tm2v,pout,size,is24fps,quality,crf,deinterlace=deinterlace,usebluray=bluray)\r
     elif re.search("5",opts):#5.1chの場合\r
-        encodeFfmpegSar(pin,pout,size,is24fps,quality,crf,deinterlace)\r
+        encodeFfmpegSar(pin,pout,size,is24fps,quality,crf,deinterlace=deinterlace,usebluray=bluray)\r
     elif re.search("b",opts):#BonTsDemuxを使いたい場合\r
         tm2v=pin.replace(".ts",".m2v")\r
-        encodeFfmpegSar(tm2v,pout,size,is24fps,quality,crf,deinterlace)\r
+        encodeFfmpegSar(tm2v,pout,size,is24fps,quality,crf,deinterlace=deinterlace,usebluray=bluray)\r
     else:\r
         try:\r
-            encodeMencoderSar(pin, pout,size,is24fps,quality,crf,deinterlace=deinterlace,uselavf=1)\r
+            encodeMencoderSar(pin, pout,size,is24fps,quality,crf,deinterlace=deinterlace,uselavf=1,usebluray=bluray)\r
             if os.path.exists(pout):\r
                 if not os.path.getsize(pout)>1*1000:\r
                     recdblist.addCommonlogEX("Warning", "Old mencoder option used.","","",log_level=200)\r
                     try:\r
-                        encodeMencoderSar(pin, pout,size,is24fps,quality,crf,deinterlace=deinterlace,uselavf=0)\r
+                        encodeMencoderSar(pin, pout,size,is24fps,quality,crf,deinterlace=deinterlace,uselavf=0,usebluray=bluray)\r
                     except Exception, inst:\r
                         recdblist.addCommonlogEX("Error", "ts2x264_mencoder_old(ts2x264.py)", str(type(inst)), str(inst)+traceback.format_exc(),log_level=200)\r
             else:\r
                 recdblist.addCommonlogEX("Warning", "Old mencoder option used.","","",log_level=200)\r
                 try:\r
-                    encodeMencoderSar(pin, pout,size,is24fps,quality,crf,deinterlace=deinterlace,uselavf=0)\r
+                    encodeMencoderSar(pin, pout,size,is24fps,quality,crf,deinterlace=deinterlace,uselavf=0,usebluray=bluray)\r
                 except Exception, inst:\r
                     recdblist.addCommonlogEX("Error", "ts2x264_mencoder_old(ts2x264.py)", str(type(inst)), str(inst)+traceback.format_exc(),log_level=200)\r
         except Exception, inst:\r
             recdblist.addCommonlogEX("Error", "ts2x264(ts2x264.py)", str(type(inst)), str(inst)+traceback.format_exc(),log_level=200)\r
-def encodeMencoderSar(pin,pout,size,is24fps,quality,crf,deinterlace=1,uselavf=0):\r
+def encodeMencoderSar(pin,pout,size,is24fps,quality,crf,deinterlace=1,uselavf=0,usebluray=0):\r
     mencoder=configreader.getConfPath("mencoder")\r
     tee=configreader.getConfPath("tee")\r
     encvf=""\r
@@ -103,6 +106,7 @@ def encodeMencoderSar(pin,pout,size,is24fps,quality,crf,deinterlace=1,uselavf=0)
     x264preset=""\r
     x264tune=""\r
     x264_bitrate="5000"\r
+    x264interlaced=0\r
     tsar=getMoviePAR2(pin)\r
     x264sar=str(tsar[0])+":"+str(tsar[1])\r
     lavft=""\r
@@ -149,7 +153,7 @@ def encodeMencoderSar(pin,pout,size,is24fps,quality,crf,deinterlace=1,uselavf=0)
         #fps="-fps 30000/1001"\r
         fps=""\r
         x264fps="30000/1001"\r
-        x264tune=x264tune+" --tff --nal-hrd vbr"\r
+        x264interlaced=1\r
         encvf="-vf hqdn3d=2:1:2"\r
         harddup=",harddup"\r
         encvf=encvf+harddup\r
@@ -196,7 +200,7 @@ def encodeMencoderSar(pin,pout,size,is24fps,quality,crf,deinterlace=1,uselavf=0)
     logmencoder=recdblist.getLogTitle(pin)+".mencoder.log"\r
     logx264=recdblist.getLogTitle(pin)+".x264.log"\r
     encexe=mencoder+u" \""+pin+u"\" -quiet -vfm ffmpeg "+lavft+encvf+u",format=i420 "+fps+" "+ofps+" -oac mp3lame -ovc raw -of rawvideo -o \""+streampath+"\" 2>&1 | "+tee+" \""+logmencoder+"\" & "\r
-    encexe=encexe+getX264Commandline(x264preset, x264sar, x264fps, x264profile, x264tune, pout, streampath, x264streamsize, crf=x264crf)\r
+    encexe=encexe+getX264Commandline(x264preset, x264sar, x264fps, x264profile, x264tune, pout, streampath, x264streamsize, crf=x264crf,interlaced=x264interlaced,bluray=usebluray)\r
     #encexe=encexe+u" nice -n 19 "+x264+" "+x264_sar+" "+x264crf+u" "+x264_addline+u"  --threads "+x264_thread+" "+x264profile+x264preset+" "+x264tune+" "+x264fps+" -o \""+pout+"\" "+streampath+" "+x264streamsize\r
     encexe=u"nice -n 19 " +encexe+" 2>&1 | "+tee+" \""+logx264+"\""\r
     try:\r
@@ -218,7 +222,7 @@ def encodeMencoderSar(pin,pout,size,is24fps,quality,crf,deinterlace=1,uselavf=0)
     os.remove(logx264)\r
     recdblist.addCommandLog(pin, u"Mencoder", encexe, txt)\r
 #    recdblist.addCommandLogTar(pin,u"Mencoder","mencoder", encexe,txt)\r
-def encodeFfmpegSar(pin,pout,size,is24fps,quality,crf,deinterlace=1):\r
+def encodeFfmpegSar(pin,pout,size,is24fps,quality,crf,deinterlace=1,usebluray=0):\r
     """\r
 \r
     """\r
@@ -231,6 +235,7 @@ def encodeFfmpegSar(pin,pout,size,is24fps,quality,crf,deinterlace=1):
     x264tune=""\r
     x264_bitrate="2500"\r
     x264_thread="auto"\r
+    x264interlaced=0\r
     tsar=getMoviePAR2(pin)\r
     filter="-deinterlace"\r
     x264sar=str(tsar[0])+":"+str(tsar[1])\r
@@ -278,7 +283,7 @@ def encodeFfmpegSar(pin,pout,size,is24fps,quality,crf,deinterlace=1):
         fps=""\r
         s = "-s "+str(tsize[0])+"x"+str(tsize[1])+" "\r
         x264fps="30000/1001"\r
-        x264tune=x264tune+" --tff --nal-hrd vbr"\r
+        x264interlaced=1\r
         filter=""\r
         x264streamsize=str(tsize[0])+u"x"+str(tsize[1])\r
     if quality==1:\r
@@ -305,7 +310,7 @@ def encodeFfmpegSar(pin,pout,size,is24fps,quality,crf,deinterlace=1):
     log_ffmpeg=recdblist.getLogTitle(pin)+".ffmpeg.log"\r
     log_x264=recdblist.getLogTitle(pin)+".x264.log"\r
     exe=ffmpeg+u" -y -i \""+pin+"\" -vsync 400 -vcodec rawvideo -pix_fmt yuv420p "+s+fps+" "+filter+" -an -f rawvideo - 2> \""+log_ffmpeg+"\" | "\r
-    exe=exe+getX264Commandline(x264preset, x264sar, x264fps, x264profile, x264tune, pout,"-", x264streamsize, crf=x264crf)\r
+    exe=exe+getX264Commandline(x264preset, x264sar, x264fps, x264profile, x264tune, pout,"-", x264streamsize, crf=x264crf,interlaced=x264interlaced,bluray=usebluray)\r
     exe = "nice -n 19 " + exe+" 2>&1 | "+tee+" \""+log_x264+"\""\r
     txt=""\r
     #recdblist.addCommandSelfLog(log_ffmpeg,recdblist.getLogTitle(pin)+".log.zip")\r
@@ -502,16 +507,22 @@ def getX264CoreVersion():
     if rM:\r
         v=int(rM.group(1))\r
     return v\r
-def getX264Commandline(preset,sar,fps,x264profile,x264tune,pout,pin,x264streamsize,crf=-1,bitrate=0):\r
+def getX264Commandline(preset,sar,fps,x264profile,x264tune,pout,pin,x264streamsize,crf=-1,bitrate=0,intererlaced=0,bluray=0):\r
     x264=configreader.getConfPath("x264")\r
     os.environ['LANG']="ja_JP.UTF-8"\r
     x264_sar="--sar "+sar\r
     x264preset=u"--preset "+preset\r
     x264fps="--fps "+fps\r
+    x264interlaced=""\r
+    x264bluray=""\r
     if crf==-1:\r
         x264bitrate=u"--bitrate "+str(bitrate)\r
     else:\r
         x264crf=u"--crf "+str(crf)\r
+    if interlaced==1:\r
+        x264interlaced="--tff --nal-hrd vbr"\r
+    if bluray==1:\r
+        x264bluray="--weightp 1 --bframes 3 --nal-hrd vbr --b-pyramid none --open-gop bluray --slices 4 --aud --colorprim bt709 --transfer bt709 "\r
     x264_addline=configreader.getConfEnv("x264_addline")\r
     x264_thread="auto"\r
     try:\r
@@ -524,7 +535,7 @@ def getX264Commandline(preset,sar,fps,x264profile,x264tune,pout,pin,x264streamsi
     x264_addline=configreader.getConfEnv("x264_addline")\r
     if getX264CoreVersion()>103:\r
         x264res=u"--input-res "+x264streamsize\r
-        exe=u"nice -n 19 "+x264+" "+x264_sar+" "+x264crf+u" "+x264_addline+u" --colormatrix bt709 --threads "+x264_thread+" "+x264profile+x264preset+" "+x264tune+" "+x264fps+" "+x264res+" -o \""+pout+"\" "+pin\r
+        exe=u"nice -n 19 "+x264+" "+x264_sar+" "+x264crf+u" "+x264bluray+u" "+x264interlaced+u" "+x264_addline+u" --colormatrix bt709 --threads "+x264_thread+" "+x264profile+x264preset+" "+x264tune+" "+x264fps+" "+x264res+" -o \""+pout+"\" "+pin\r
     else:\r
-        exe=u"nice -n 19 "+x264+" "+x264_sar+" "+x264crf+u" "+x264_addline+u" --colormatrix bt709 --threads "+x264_thread+" "+x264profile+x264preset+" "+x264tune+" "+x264fps+" -o \""+pout+"\" "+pin+" "+x264streamsize\r
+        exe=u"nice -n 19 "+x264+" "+x264_sar+" "+x264crf+u" "+x264bluray+u" "+x264interlaced+u" "+x264_addline+u" --colormatrix bt709 --threads "+x264_thread+" "+x264profile+x264preset+" "+x264tune+" "+x264fps+" -o \""+pout+"\" "+pin+" "+x264streamsize\r
     return exe\r