OSDN Git Service

bug fixes.
[rec10/rec10-git.git] / rec10 / trunk / 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     isAnime=0
18     size="SD"
19
20     makemini=0
21     if re.search("a",opts):
22         isAnime=1
23         #print "isAnime"
24     dualpass=0
25     if re.search("2",opts):
26         dualpass=1
27     if re.search("Q",opts):
28         size="WQVGA"
29     if re.search("F",opts):
30         size="FHD"
31     if re.search("H",opts):
32         size="HD"
33     if re.search("S",opts):
34         size="SD"
35     if isAnime==1:
36         encvf="-vf pullup,softskip,pp=l5,"
37     else:
38         encvf="-vf pp=l5,"
39     if size=="SD":
40         encvf=encvf+"scale=720:480,harddup"
41         bitrate="bitrate="+tv2avi.Bitrate_SD
42     elif size=="HD":
43         encvf=encvf+"scale=1280:720,harddup"
44         bitrate="bitrate="+tv2avi.Bitrate_HD
45     elif size=="FHD":
46         encvf=encvf+"scale=1920:1080,harddup"
47         bitrate="bitrate="+tv2avi.Bitrate_FHD
48     elif size=="WQVGA":
49         encvf=encvf+"scale=400:240,harddup"
50         bitrate="bitrate="+tv2avi.Bitrate_WQVGA
51     else:
52         encvf=encvf+"scale=1280:720,harddup"
53         bitrate="bitrate="+tv2avi.Bitrate_HD
54
55     if dualpass==1:
56         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"
57         pas2exe="mencoder \'"+pin+"\' -quiet -ovc x264 "+encvf+" -x264encopts "+bitrate+":threads=auto:pass=2 -passlogfile \'"+pin+".log\' "+"-oac mp3lame -lameopts cbr:br=128 -o \'"+pout+"\'"
58         pas1exe="nice -n 19 "+pas1exe
59         pas2exe="nice -n 19 "+pas2exe
60         print pas2exe
61         os.system(pas1exe)
62         print "1pass終了"
63         time.sleep(5)
64         os.system(pas2exe)
65     else:
66         pas1exe="mencoder \'"+pin+"\' -quiet -ovc x264 "+encvf+" -x264encopts "+bitrate+":threads=auto -oac mp3lame -lameopts cbr:br=128  -o \'"+pout+"\'"
67         pas1exe="nice -n 19 "+pas1exe
68         os.system(pas1exe)