OSDN Git Service

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