OSDN Git Service

stop using trunk directory in rectool
[rec10/rec10-git.git] / rec10 / branches / 0.5 / src / ts2x264.py
1 #!/usr/bin/python
2 # coding: UTF-8
3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
5 import tv2avi
6 import status
7 import os
8 import time
9 import re
10
11 def ts2x264(pin,pout,opts):#sizeは"HD"か"SD"
12     pout = pout.encode('utf-8')
13     pin = pin.encode('utf-8')
14     """
15     pinで指定されたファイルをpoutにx264でエンコードして書き出す
16     """
17     
18     status.setEncoding(status.getEncoding()+1)
19     isAnime=0
20     size="SD"
21
22     makemini=0
23     if re.search("a",opts):
24         isAnime=1
25         #print "isAnime"
26     dualpass=0
27     if re.search("2",opts):
28         dualpass=1
29     if re.search("Q",opts):
30         size="WQVGA"
31     if re.search("F",opts):
32         size="FHD"
33     if re.search("H",opts):
34         size="HD"
35     if re.search("S",opts):
36         size="SD"
37     if isAnime==1:
38         encvf="-vf pullup,softskip,pp=l5,"
39     else:
40         encvf="-vf pp=l5,"
41     if size=="SD":
42         encvf=encvf+"scale=720:480,harddup"
43         bitrate="bitrate="+tv2avi.Bitrate_SD
44     elif size=="HD":
45         encvf=encvf+"scale=1280:720,harddup"
46         bitrate="bitrate="+tv2avi.Bitrate_HD
47     elif size=="FHD":
48         encvf=encvf+"scale=1920:1080,harddup"
49         bitrate="bitrate="+tv2avi.Bitrate_FHD
50     elif size=="WQVGA":
51         encvf=encvf+"scale=400:240,harddup"
52         bitrate="bitrate="+tv2avi.Bitrate_WQVGA
53     else:
54         encvf=encvf+"scale=1280:720,harddup"
55         bitrate="bitrate="+tv2avi.Bitrate_HD
56
57     if dualpass==1:
58         pas1exe="mencoder \'"+pin+"\' -quiet -ovc x264 "+encvf+" -x264encopts "+bitrate+":threads=auto:pass=1:turbo=2 -passlogfile \'"+pin+".log\' "+"-oac mp3lame -lameopts cbr:br=128 -o /dev/null"
59         pas2exe="mencoder \'"+pin+"\' -quiet -ovc x264 "+encvf+" -x264encopts "+bitrate+":threads=auto:pass=2 -passlogfile \'"+pin+".log\' "+"-oac mp3lame -lameopts cbr:br=128 -o \'"+pout+"\'"
60         pas1exe="/usr/bin/nice -n 19 "+pas1exe
61         pas2exe="/usr/bin/nice -n 19 "+pas2exe
62         print pas2exe
63         os.system(pas1exe)
64         print "1pass終了"
65         time.sleep(5)
66         os.system(pas2exe)
67     else:
68         pas1exe="mencoder \'"+pin+"\' -quiet -ovc x264 "+encvf+" -x264encopts "+bitrate+":threads=auto -oac mp3lame -lameopts cbr:br=128  -o \'"+pout+"\'"
69         pas1exe="/usr/bin/nice -n 19 "+pas1exe
70         os.system(pas1exe)
71     status.setEncoding(status.getEncoding()-1)