OSDN Git Service

エンコードオプションを再調整。EDの動きが激しい部分でノイズが出るため。
[kosys/kosys-ep02.git] / Makefile
1 \r
2 #############################################################################\r
3 # マクロ定義\r
4 #############################################################################\r
5 \r
6 # 共通マクロ\r
7 include Makefile.inc\r
8 \r
9 \r
10 # サブディレクトリ \r
11 SUBDIRS:=doga\r
12 \r
13 # エンコード関連\r
14 AVS2WAV:=$(ENC_UTIL_DIR)/avs2wav.exe\r
15 FDKAAC:=$(ENC_UTIL_DIR)/fdkaac.exe\r
16 X264:=$(ENC_UTIL_DIR)/x264_x64.exe\r
17 MUXER:=$(ENC_UTIL_DIR)/muxer.exe\r
18 REMUXER:=$(ENC_UTIL_DIR)/remuxer.exe\r
19 \r
20 AOPTION=-b 256000 --profile 2\r
21 AOPTION_ECO=-b 64000 --profile 29\r
22 \r
23 VOPTION_COMMON=--opencl --preset slower --me umh --bframes 3 --keyint 240 --min-keyint 23 --qcomp 0.70 --rc-lookahead 240 --scenecut 65 --no-dct-decimate --no-fast-pskip --aq-mode 1 --aq-strength 0.8\r
24         # 注: bframesは3より大きいと黒背景白文字のスライドの動き(EDロールなど)で破綻する\r
25         #      scenecutはアニメではデフォルトより大きめにしておくと良いらしい\r
26 \r
27 VOPTION=     $(VOPTION_COMMON) --crf 16 --vbv-maxrate 3500 --vbv-bufsize 3400 --profile high --partitions all --video-filter resize:1280,720,1:1:lanczos\r
28 VOPTION_BD=  $(VOPTION_COMMON) --crf 16  --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --b-pyramid strict --weightp 0\r
29 VOPTION_ECO= $(VOPTION_COMMON) --bitrate 230  --profile main --8x8dct --partitions "p8x8,b8x8,i8x8,i4x4" --video-filter resize:352,200,1:1:lanczos\r
30 VOPT_FAST=--analyse none --subme 1 --me dia\r
31 VOPT_SLOW=\r
32 FPS=24\r
33 \r
34 IN_AVS=main.avs\r
35 VER_AVS=version.avs\r
36 OUT_MP4=_release/kosys.mp4\r
37 TMPA1=_release/kosys.tmp.m4a\r
38 TMPV1=_release/kosys.tmp.264\r
39 TMPV2=_release/kosys.tmp.mp4\r
40 OUT_MP4_PRE=_release/kosys_pre.mp4\r
41 TMPV1_PRE=_release/kosys_pre.tmp.264\r
42 TMPV2_PRE=_release/kosys_pre.tmp.mp4\r
43 OUT_MP4_BD=_release/kosys_bd.mp4\r
44 TMPV1_BD=_release/kosys_bd.tmp.264\r
45 TMPV2_BD=_release/kosys_bd.tmp.mp4\r
46 OUT_MP4_ECO=_release/kosys_eco.mp4\r
47 TMPA1_ECO=_release/kosys_eco.tmp.m4a\r
48 TMPV1_ECO=_release/kosys_eco.tmp.264\r
49 TMPV2_ECO=_release/kosys_eco.tmp.mp4\r
50 \r
51 #############################################################################\r
52 # Makeルール\r
53 #############################################################################\r
54 \r
55 .PHONY: all $(SUBDIRS)\r
56 all: $(SUBDIRS)\r
57 $(SUBDIRS):\r
58         $(MAKE) -C $@\r
59 \r
60 \r
61 .PHONY: release\r
62 release: version $(OUT_MP4)\r
63 $(OUT_MP4): $(TMPA1) $(TMPV1) $(TMPV2)\r
64         $(REMUXER) -i $(TMPV2) -i $(TMPA1) -o $(OUT_MP4)\r
65 \r
66 $(TMPV2): $(TMPV1)\r
67         $(MUXER) -i $(TMPV1)?fps=$(FPS) -o $(TMPV2)\r
68 \r
69 \r
70 $(TMPV1): $(wildcard *.avs) $(wildcard doga/*.avs) $(wildcard doga/_output/*.avi) $(VER_AVS)\r
71         $(X264) $(VOPTION) $(VOPT_SLOW) -o $(TMPV1) $(IN_AVS)\r
72         \r
73 \r
74 $(TMPA1): $(wildcard sound/*.avs) $(wildcard sound/*.wav) $(wildcard sound/*.mp3) $(wildcard sound/*.aac) $(wildcard sound/*.m4a)\r
75         $(AVS2WAV) $(IN_AVS)  - |$(FDKAAC) $(AOPTION) -o $(TMPA1) -\r
76         \r
77 \r
78 .PHONY: preview\r
79 preview: version $(OUT_MP4_PRE)\r
80 $(OUT_MP4_PRE): $(TMPA1) $(TMPV1_PRE) $(TMPV2_PRE)\r
81         $(REMUXER) -i $(TMPV2_PRE) -i $(TMPA1) -o $(OUT_MP4_PRE)\r
82 \r
83 $(TMPV2_PRE): $(TMPV1_PRE)\r
84         $(MUXER) -i $(TMPV1_PRE)?fps=$(FPS) -o $(TMPV2_PRE)\r
85 \r
86 $(TMPV1_PRE): $(wildcard *.avs) $(wildcard doga/*.avs) $(wildcard doga/_output/*.avi) $(VER_AVS)\r
87         $(X264) $(VOPTION) $(VOPT_FAST) -o $(TMPV1_PRE) $(IN_AVS)\r
88         \r
89 \r
90 eco: version $(OUT_MP4_ECO)\r
91 $(OUT_MP4_ECO): $(OUT_MP4) $(TMPA1_ECO)\r
92         $(X264) $(VOPTION_ECO) --pass 1 $(VOPT_FAST)  -o $(TMPV1_ECO) $(OUT_MP4)\r
93         $(X264) $(VOPTION_ECO) --pass 2 $(VOPT_SLOW)  -o $(TMPV1_ECO) $(OUT_MP4)\r
94         $(MUXER) -i $(TMPV1_ECO)?fps=$(FPS) -o $(TMPV2_ECO)\r
95         $(REMUXER) -i $(TMPV2_ECO) -i $(TMPA1_ECO) -o $(OUT_MP4_ECO)\r
96         \r
97 $(TMPA1_ECO): $(wildcard sound/*.avs) $(wildcard sound/*.wav) $(wildcard sound/*.mp3) $(wildcard sound/*.aac) $(wildcard sound/*.m4a)\r
98         $(AVS2WAV) $(IN_AVS)  - |$(FDKAAC) $(AOPTION_ECO) -o $(TMPA1_ECO) -\r
99 \r
100 \r
101 .PHONY: release-bd\r
102 release-bd: version $(OUT_MP4_BD)\r
103 $(OUT_MP4_BD): $(TMPA1) $(TMPV1_BD) $(TMPV2_BD)\r
104         $(REMUXER) -i $(TMPV2_BD) -i $(TMPA1) -o $(OUT_MP4_BD)\r
105 \r
106 $(TMPV2_BD): $(TMPV1_BD)\r
107         $(MUXER) -i $(TMPV1_BD)?fps=$(FPS) -o $(TMPV2_BD)\r
108 \r
109 $(TMPV1_BD): $(wildcard *.avs) $(wildcard doga/*.avs) $(wildcard doga/_output/*.avi) $(VER_AVS)\r
110         $(X264) $(VOPTION_BD) $(VOPT_SLOW) -o $(TMPV1_BD) $(IN_AVS)\r
111         \r
112 \r
113 .PHONY: version\r
114 version:\r
115 # gitのリビジョン番号を取得する\r
116         echo 'global VERSION="$(shell git describe --abbrev=7 --dirty --always --tags)"' >  $(VER_AVS).tmp\r
117 # リビジョン番号が変化していたときのみ上書きする\r
118         test -e $(VER_AVS) || cp -f $(VER_AVS).tmp $(VER_AVS)\r
119         test "$$(md5sum $(VER_AVS).tmp | awk '{ print $$1 }')" != "$$(md5sum $(VER_AVS) | awk '{ print $$1 }')" && cp -f $(VER_AVS).tmp $(VER_AVS) || true\r
120         rm -f $(VER_AVS).tmp\r
121 \r