OSDN Git Service

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