View difference between Paste ID: 4MxXyjNQ and CFL1b1nK
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