SHOW:
|
|
- or go back to the newest paste.
1 | @ECHO OFF & ECHO NGcode version BETA 0 | |
2 | IF [%1]==[] ECHO drag+drop .avs & PAUSE & GOTO :EOF | |
3 | set AR_num=4 | |
4 | set AR_den=3 | |
5 | set sar=--sar 7:6 | |
6 | set x264_flags=--crf 20 --keyint 600 --preset veryslow --no-fast-pskip --merange 64 --rc-lookahead 250 --bframes 16 | |
7 | :: fast flags when debugging, comment out line for submissions | |
8 | :: set x264_flags=--preset ultrafast | |
9 | ||
10 | set NGcode=%~dp0 | |
11 | set PATH=C:\Users\vehi\Desktop\lib;%PATH% | |
12 | set ng_lib="%NGcode%\NGcode.avs" | |
13 | ||
14 | set avs="%~1" | |
15 | call :clean_filename %avs% fn | |
16 | ||
17 | ::%NGcode% is where the bat file is | |
18 | ::%CD% is where the .avs is | |
19 | ::set working_dir=C:\temp\%fn% | |
20 | set working_dir=%NGcode%\tmp\%fn% | |
21 | set finish_dir=%CD% | |
22 | :: set finish_dir=%CD%\%fn%_done | |
23 | ||
24 | set mp45="%finish_dir%\%fn%_512kb.mp4" | |
25 | set mp4p="%finish_dir%\%fn%.mp4" | |
26 | set mp4x="%finish_dir%\%fn%_10bit444.mp4" | |
27 | set mkvy="%finish_dir%\%fn%_YT.mkv" | |
28 | ||
29 | if not exist "%working_dir%\" mkdir "%working_dir%" | |
30 | if not exist "%finish_dir%\" mkdir "%finish_dir%" | |
31 | cd "%working_dir%" | |
32 | ||
33 | call :make_your_time | |
34 | call :make_audio | |
35 | call :make_512 | |
36 | call :make_primary | |
37 | call :make_10bit | |
38 | call :make_YT | |
39 | ||
40 | echo. | |
41 | echo ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] | |
42 | echo ] Remember to delete the temp files [ | |
43 | echo [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ | |
44 | echo. | |
45 | ||
46 | pause | |
47 | goto:eof | |
48 | ||
49 | :make_your_time | |
50 | if exist times.txt if exist dupinfo.txt goto:eof | |
51 | ( | |
52 | echo Import^(%ng_lib%^) | |
53 | echo TestSource^(%avs%^) | |
54 | echo ExactDedup | |
55 | ) > times.avs | |
56 | avs2pipemod -benchmark times.avs | |
57 | goto:eof | |
58 | ||
59 | :make_audio | |
60 | if exist a.mp4 if exist a_track1.nhml goto:eof | |
61 | ( | |
62 | echo Import^(%ng_lib%^) | |
63 | echo AviSource^(%avs%^) | |
64 | echo AudioTrimSample^(4672^) | |
65 | ) > aac.avs | |
66 | avs2pipemod -extwav aac.avs | neroAacEnc -q 0.25 -ignorelength -if - -of a.mp4 | |
67 | MP4Box a.mp4 -nhml 1 | |
68 | goto:eof | |
69 | ||
70 | :make_512 | |
71 | if exist %mp45% goto:eof | |
72 | ( | |
73 | echo Import^(%ng_lib%^) | |
74 | echo AviSource^(%avs%^) | |
75 | echo Resize512^(%AR_num%, %AR_den%^) | |
76 | echo RGBtoYV12 | |
77 | ) > 5.avs | |
78 | set flags=%x264_flags% 5.avs -o 5.mp4 --input-range pc --range pc | |
79 | x264_8 %flags% --slow-firstpass --pass 1 2>&1 | mtee x264_1pass.log | |
80 | FOR /F "tokens=7 delims=. " %%G IN ('TYPE x264_1pass.log ^| FIND "encoded"') DO ( | |
81 | IF %%G GTR 520 ( | |
82 | x264_8 %flags% --bitrate 512 --pass 2 --nr 1000 | |
83 | ) | |
84 | ) | |
85 | MP4Box -add 5.mp4 -add a.mp4 -hint -new %mp45% | |
86 | goto:eof | |
87 | ||
88 | :make_primary | |
89 | if exist %mp4p% goto:eof | |
90 | ( | |
91 | echo Import^(%ng_lib%^) | |
92 | echo AviSource^(%avs%^) | |
93 | echo ExactDedup^(firstpass=false^) | |
94 | echo RGBtoYV12 | |
95 | ) > p.avs | |
96 | x264_8 %x264_flags% p.avs -o p.264 --tcfile-in times.txt %sar% --input-range pc --range pc | |
97 | MP4Box -add p.264 -new p.mp4 | |
98 | MP4Box p.mp4 -nhml 1 | |
99 | NHMLFixup2 -t times.txt p_track1.nhml a_track1.nhml | |
100 | MP4Box -add p_track1.nhml -add a_track1.nhml -new %mp4p% | |
101 | goto:eof | |
102 | ||
103 | :make_10bit | |
104 | if exist %mp4x% goto:eof | |
105 | ( | |
106 | echo Import^(%ng_lib%^) | |
107 | echo AviSource^(%avs%^) | |
108 | echo ExactDedup^(firstpass=false^) | |
109 | ) > x.avs | |
110 | x264_10 %x264_flags% x.avs -o x.264 --tcfile-in times.txt %sar% --output-csp i444 --range pc | |
111 | MP4Box -add x.264 -new x.mp4 | |
112 | MP4Box x.mp4 -nhml 1 | |
113 | NHMLFixup2 -t times.txt x_track1.nhml a_track1.nhml | |
114 | MP4Box -add x_track1.nhml -add a_track1.nhml -new %mp4x% | |
115 | goto:eof | |
116 | ||
117 | :make_YT | |
118 | if exist %mkvy% goto:eof | |
119 | avs2pipemod -extwav %avs% > a.wav | |
120 | ( | |
121 | echo Import^(%ng_lib%^) | |
122 | echo AviSource^(%avs%^) | |
123 | echo TASBlend | |
124 | echo PointResize^(8 * width, 8 * height^) | |
125 | ) > y.avs | |
126 | x264_8 y.avs -o y.mkv --qp 0 --keyint infinite --output-csp i420 --range tv --colormatrix bt470bg | |
127 | mkvmerge -o %mkvy% y.mkv a.wav | |
128 | goto:eof | |
129 | ||
130 | :clean_filename | |
131 | :: %1 - input filename | |
132 | :: %2 - return varible name | |
133 | :: !% ^& these chars could break the batch | |
134 | :: \/:*?"<>| these could to, but they shouldn't appear in valid file names | |
135 | SETLOCAL EnableDelayedExpansion | |
136 | :clean_filename_loop | |
137 | SET "filename=%~n1" | |
138 | SET "filename=G!filename:&=!G" | |
139 | SET filename=%filename:!=% | |
140 | SET filename=!filename: =_! | |
141 | - | SET "filename=!filename:%%=!" |
141 | + | SET filename=!filename:%%=! |
142 | SET filename=!filename:^^=! | |
143 | SET filename=!filename:~1,-1! | |
144 | ENDLOCAL & SET %~2=%filename% | |
145 | GOTO:EOF |