Aufbau einer Batchdatei

Eine gute Batch-Datei für Einsteiger („skip=1“ mit Warteschlange erforderlich!):

Im Zweifelsfall immer die „Default“-Auswahl treffen.

@echo off
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::Batch-Skript v2.1 Geschrieben von eXmendiC::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::https://exmendic.wordpress.com/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::Diese Werte abaendern fuer die Manuellen Eintraege:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set avs="avs\avs4x26x.exe"
set bit=--input-depth 10
set binary="binary\x264_r2705_64_CtMod-10bit-all.exe"
set lvl=--input-depth 10
set script=avsScript_anime.avs
set output=anime.mkv
set key=y
set profil=1
REM set zones=--zones "2759,4912,b=0.85,deblock=3:-2/30690,32842,b=0.90,deblock=1:1"
REM set hipp=--input-res 1280x720 --profile high444 --input-csp i444 --output-csp i444 --chroma-qp-offset -4
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::Fuer das normale encoden, welches in der Warteschlange funktioniert::::::::::::::::::::::::::::::::::::::::::
:::Jedes Projekt braucht dann eine eigene Batch-Datei::::::::::::::::::::::::::::::::::::::::::
set skip=0
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:AGAIN

if "%skip%" EQU "1" (
goto ENCODE
)

cls

set /p mode=Encode ueber Abfrage-Skript (Empfohlen fuer Anfaenger) [y; Default] , Manuelle Eintraege [x] , Beenden [z]? - 
if "%mode%" EQU "x" (
goto ENCODE
) else (
if "%mode%" EQU "z" (
echo Auf Wiedersehen!
timeout /t 10
goto :eol
) else (
goto START
)
)

:START
set /p avs1=avs4x26x [y; Default] oder avs4x264mod [x]? - 
if "%avs1%" EQU "x" (
set avs="avs\avs4x264mod.exe"
) else (
set avs="avs\avs4x26x.exe"
)
 

set /p bit1=Input-Bittiefe? 8-Bit [1; Default] 10-Bit [2] 16-Bit [3] - 
if "%bit1%" EQU "3" (
set bit=--input-depth 16
) else (
if "%bit1%" EQU "2" (
set bit=--input-depth 10
) else (
set bit=--input-depth 8
)
)
 
 
set /p binary1=tmod [y; Default] oder kmod [x]? - 
if "%binary1%" EQU "x" (
goto KMOD
) else (
goto TMOD
)

:KMOD
set /p binary2=10bit [y; Default] oder 8bit [x] encoden? - 
if "%binary2%" EQU "x" (
set binary="binary\x264.2744kMod.x86_64.exe"
set lvl=--level 4.2
goto DO
) else (
set binary="binary\x264.2744kMod.10bit.x86_64.exe"
goto DO
)

:TMOD
set /p binary3=Normal [y; Default] oder Broadwell (Intel CPU 5. Generation oder neuer) [x]? - 
if "%binary3%" EQU "x" (
goto HASWELL
) else (
goto STANDARD
)
 
:HASWELL
set /p binary4=10bit [y; Default] oder 8bit [x] encoden? - 
if "%binary4%" EQU "x" (
set binary="binary\x264_r2744_64_CtMod-8bit-all_broadwell.exe"
set lvl=--level 4.2
goto DO
) else (
set binary="binary\x264_r2744_64_CtMod-10bit-all_broadwell.exe"
goto HIP
)
 
:STANDARD
set /p binary5=10bit [y; Default] oder 8bit [x] encoden? - 
if "%binary5%" EQU "x" (
set binary="binary\x264_r2744_64_CtMod-8bit-all.exe"
set lvl=--level 4.2
goto DO
) else (
set binary="binary\x264_r2744_64_CtMod-10bit-all.exe"
goto HIP
)
 
:HIP
set /p hipp1=Hi444PP Settings? [y] [x; Default] 
if "%hipp1%" EQU "y" (
set hipp=--input-res 1280x720 --profile high444 --input-csp i444 --output-csp i444 --chroma-qp-offset -4
) else (

)

:DO
set /p zones1=Zones nutzen? [y] [x; Default] - 
if "%zones1%" EQU "y" (
set /p zones=Beispiel: --zones "2759,4912,b=0.85,deblock=3:-2/30690,32842,b=0.90,deblock=1:1" - 
) else (

)

set /p script=Skriptname? [Beispiel: Test.avs] - 
set /p output=Output-Name? [Beispiel: Test.mkv oder Test.mp4 oder Test.h264] - 
set /p key=Keyframes generieren? [y; Default] [x] - 
set /p profil=x264 eX' Custom Presets? WEB-Source [1; Default] HDTV-Source [2] BD-Source (720p) [3] BD-Source (1080p) [4] DVD-Source [5] wRaw [6] Lossless [7] - 

:ENCODE
cls
echo Avisynth Binary: %avs%
echo x264 Binary: %binary%
echo Skriptname: Skripte\%script%
echo Output-Name: Output\%output%

if "%hipp1%" EQU "y" (
echo Hi444PP: Ja.
) else (
echo Hi444PP: Nein.
)

if "%zones1%" EQU "y" (
echo Zones: Ja. [%zones%] 
) else (
echo Zones: Nein.
)

echo.
if "%profil%" EQU "7" (
echo Nutze Preset #7 - Lossless
echo Beginne Encode
%avs% --x264-binary %binary% %bit% --preset ultrafast --colormatrix bt709 --qp 0 "Skripte\%script%" --output "Output\%output%"
timeout /t 30
) else (
if "%profil%" EQU "6" (
echo Nutze Preset #6 - wRaw
echo Beginne Encode
%avs% --x264-binary %binary% %bit% --colormatrix bt709 --crf 20 --partitions all "Skripte\%script%" --output "Output\%output%"
timeout /t 30
) else (
if "%profil%" EQU "5" (
echo Nutze Preset #5 - DVD
echo Beginne Encode
%avs% --x264-binary %binary% %lvl% %bit% --ref 16 --deblock 0:-1 --me umh --subme 10 --fade-compensate 0.5 --psy-rd 0.60:0.05 --merange 32 --trellis 2 --no-dct-decimate --bframes 16 --b-adapt 2 --direct auto --slow-firstpass --no-fast-pskip --keyint 250 --min-keyint 25 --rc-lookahead 48 --crf 16 --qcomp 0.60 --aq-mode 3 --aq-strength 0.60 %zones% --partitions all "Skripte\%script%" --output "Output\%output%"
timeout /t 30
) else (
if "%profil%" EQU "4" (
echo Nutze Preset #4 - BD 1080p
echo Beginne Encode
%avs% --x264-binary %binary% --colormatrix bt709 %lvl% %bit% --ref 16 --deblock -1:-2 --me umh --subme 11 --fade-compensate 0.8 --psy-rd 0.85:0.05 --merange 32 --trellis 2 --no-dct-decimate --bframes 16 --b-adapt 2 --direct auto --slow-firstpass --no-fast-pskip --keyint 250 --min-keyint 25 --rc-lookahead 48 --crf 15 --qcomp 0.75 --aq-mode 3 --aq-strength 0.70 %zones% --partitions all "Skripte\%script%" --output "Output\%output%"
timeout /t 30
) else (
if "%profil%" EQU "3" (
echo Nutze Preset #3 - BD 720p
echo Beginne Encode
%avs% --x264-binary %binary% --colormatrix bt709 %hipp% %lvl% %bit% --ref 16 --deblock -2:-2 --me umh --subme 11 --fade-compensate 0.8 --psy-rd 0.85:0.05 --merange 32 --trellis 2 --no-dct-decimate --bframes 16 --b-adapt 2 --direct auto --slow-firstpass --no-fast-pskip --keyint 250 --min-keyint 25 --rc-lookahead 48 --crf 13 --qcomp 0.75 --aq-mode 3 --aq-strength 0.70 %zones% --partitions all "Skripte\%script%" --output "Output\%output%"
timeout /t 30
) else (
if "%profil%" EQU "2" (
echo Nutze Preset #2 - HDTV
echo Beginne Encode
%avs% --x264-binary %binary% --colormatrix bt709 %hipp% %lvl% %bit% --ref 16 --deblock 0:-1 --me umh --subme 10 --fade-compensate 0.7 --psy-rd 0.70:0.05 --merange 32 --trellis 2 --no-dct-decimate --bframes 16 --b-adapt 2 --direct auto --slow-firstpass --no-fast-pskip --keyint 250 --min-keyint 25 --rc-lookahead 48 --crf 17 --qcomp 0.65 --aq-mode 3 --aq-strength 0.75 %zones% --partitions all "Skripte\%script%" --output "Output\%output%"
timeout /t 30
) else (
echo Nutze Preset #1 - WEB
echo Beginne Encode
%avs% --x264-binary %binary% --colormatrix bt709 %hipp% %lvl% %bit% --ref 16 --deblock -1:-1 --me umh --subme 10 --fade-compensate 0.7 --psy-rd 0.75:0.10 --merange 32 --trellis 2 --no-dct-decimate --bframes 16 --b-adapt 2 --direct auto --slow-firstpass --no-fast-pskip --keyint 250 --min-keyint 25 --rc-lookahead 48 --crf 16 --qcomp 0.70 --aq-mode 3 --aq-strength 0.80 %zones% --partitions all "Skripte\%script%" --output "Output\%output%"
timeout /t 30
)
)
)
)
)
)
if "%key%" EQU "x" (

) else (
echo FFvideosource^("Output\%output%"^) > "%output%_keyframes.avs"
echo SCXvid^("%output%_keyframes.log"^) >> "%output%_keyframes.avs"
AVSMeter "%output%_keyframes.avs"
del "%output%_keyframes.avs"
del ""Output\%output%".ffindex"
timeout /t 30
)

if "%skip%" EQU "1" (
goto :eol
) else (
goto AGAIN
)

Wichtig:

Ordner wie z.B. „Output“ oder „Skripte“ müssen existieren (auch wenn sie leer sind), ansonsten kommt es zu Fehlern!
Achtet auch bitte darauf, dass alle Dateien in den angebenden Ordnern sind (z.B. „avs4x264x.exe“ in „binary“).

Es wird dringend empfohlen diese Batchdatei in Kombination mit dem neusten Encode-Pack zu nutzen (ist Standardmäßig auch in der neusten Version enthalten).
Ansonsten müssen ggf. Abänderungen eurer Seite erfolgen.

 

Eine kleine und kompakte Version:

#Encode.bat
@echo off
REM -Diese Werte bitte abaendern-
set avs="avs\avs4x26x.exe"
set binary="binary\x264_r2705_64_CtMod-10bit-all_haswell.exe"
set script="Skripte\avsScript_anime.avs"
set name=anime
set output="C:\Users\Misaki\Desktop\%name%.mkv"
REM set zones=--zones "2759,4912,b=0.85,deblock=3:-2/30690,32842,b=0.90,deblock=1:1"
REM set hipp=--input-res 1280x720 --profile high444 --input-csp i444 --output-csp i444 --chroma-qp-offset -4
REM
echo Avisynth Binary: %avs%
echo x264 Binary: %binary%
echo Avisynth Skript: %script%
echo Output Verzeichnis: %output%
echo.
echo Beginne Encode...
%avs% --x264-binary %binary% --colormatrix bt709 %hipp% --input-depth 10 --ref 16 --deblock -1:-1 --me umh --subme 11 --fade-compensate 0.7 --psy-rd 0.70:0.10 --merange 32 --trellis 2 --no-dct-decimate --bframes 16 --b-adapt 2 --direct auto --slow-firstpass --no-fast-pskip --keyint 250 --min-keyint 25 --rc-lookahead 48 --crf 14 --qcomp 0.7 --aq-mode 3 --aq-strength 0.8 %zones% --partitions all %script% --output %output%

Optionaler Teil, wenn man automatisch Keyframes möchte:

echo FFvideosource(%output%) > "%name%_keyframes.avs"
echo SCXvid("%name%_keyframes.log") >> "%name%_keyframes.avs"
AVSMeter "%name%_keyframes.avs"
del "%name%_keyframes.avs"
del "%output%.ffindex"

Eine „Warteschlange“ einfügen (mittels weiterem Skript):

#Warteschlange.bat
@echo off
REM Einzeln bitte die Batch-dateien + Pfad eintragen:
echo Warteschlange wird abgearbeitet ...
echo.

CD "C:\Users\Misaki\Desktop\Encode-Pack"
call "C:\Users\Misaki\Desktop\Encode-Pack\Encode1.bat"

CD "C:\Users\Misaki\Desktop\Encode-Pack"
call "C:\Users\Misaki\Desktop\Encode-Pack\Encode2.bat"

CD "C:\Users\Misaki\Desktop\Encode-Pack"
call "C:\Users\Misaki\Desktop\Encode-Pack\Encode3.bat"

timeout /t 60

Anmerkung:

Meine Batchdatei ist speziell für Anime ausgelegt.
REM entfernen, wenn diese Zeile genutzt werden soll.
„set zones“ aktivieren, wenn man mit –zones arbeitet.
„set hipp“ aktivieren, wenn man Hi444PP encodet.
–input-depth 10 abändern, je nachdem welcher Input beim filtern geliefert wird (8,10,16)

Optimale Werte für Anime:

--colormatrix bt709 = *
 --input-depth 10 = Farbtiefe die an x264 vom Skript übergeben wird. 8,10 oder 16.
 --ref 16 = Werte von 12-16
 --deblock -1:-1 = 1. Wert von 0 bis -2; 2. Wert von -1 bis -2
 --me umh = umh oder tesa
 --subme 10 = Wert von 10 oder 11
 --fade-compensate 0.7 = Werte von 0.5-0.8
 --psy-rd 0.70:0.10 = 1. Wert von 0.60 bis 0.90; 2. Wert von 0.00 bis 0.15
 --merange 32 = Werte von 24-96
 --trellis 2 = *
 --no-dct-decimate = *
 --bframes 16 = Werte von 10-16
 --b-adapt 2 = *
 --direct auto = *
 --slow-firstpass = *
 --no-fast-pskip = *
 --keyint 250 = *
 --min-keyint 25 = *
 --rc-lookahead 48 = Werte von 40-80
 --crf 14 = Werte von 12 bis 18
 --qcomp 0.7 = Werte von 0.6-0.9
 --aq-mode 3 = *
 --aq-strength 0.8 = Werte von 0.6 bis 1.2

* = Bleibt immer so
Fettgeschrieben = Sind vom Anime und der Source abhängig. Werte immer anpassen.

Beachte: Höher bedeutet nicht gleich besser. Bei manchen ist sogar die niedrigere Zahl besser (z.B. crf) oder eher eine ausgewogene Mischung, da hier eine Art Zusammenarbeit stattfindet (z.B. psy-rd & aq-strength)

Infos über die Bedeutung der Parameter findest du HIER und HIER.

Advertisements