Odtwarzacz PotPlayer, jego tłumaczenie oraz pakiet ustawień i filtrów DirectShow, czyli FanPack...
Dodatek do konfiguracji madVR...
Algorytm profilowania ustawień madVR jest bardzo elastyczny, ale wymaga także trochę skryptów do uzyskania jak najlepszego efektu.
Język skryptowy jest całkiem łatwy. Zasadniczo skryptowanie ma być ciągiem instrukcji "if", "else if" i "else". Każda instrukcja "if" (lub "else if")
zawiera jedno lub więcej porównanie wartości i wybiera jeden profil, który ma być aktywowany. Każde porównanie wartości musi być umieszczone w nawiasie.
Używając operacji logicznych "and" lub "or" można sprawdzić wiele wartości, aby utworzyć bardziej złożone decyzje.
Spójrzmy na przykład.
Poniższy skrypt wybiera jeden z 4 profili, w zależności od wymiarów źródłowych i częstotliwości wyświetlania klatek po usunięciu
przeplotu.
Myślę, że sam skrypt dość dużo wyjaśni:
if (srcWidth <= 1050) and (srcHeight <= 768) and (deintFps < 31) | "SD 24fps" | |
else if (srcWidth <= 1050) and (srcHeight <= 768) | "SD 60fps" | |
else if (deintFps < 31) | "HD 24fps" | |
else | "HD 60fps" |
Obsługiwane słowa kluczowe i operatory:
if/else statements: | "if", "else if", "elseif", "elsif", "else" | |
logical operators: | "and", "or", "&&", "||" | |
equal check: | "==", "=" | |
unequal check: | "!=", "<>", "#" | |
bigger/smaller check: | "<", ">", "<=", ">=" | |
boolean "not" operator: | "not", "!" |
Obsługiwane wartości liczbowe:
srcWidth, srcHeight | src width/height (przycinanie zgodnie z ustawieniami) | |
croppedSrcWidth, croppedSrcHeight | cropped src width/height | |
uncroppedSrcWidth, uncroppedSrcHeight | uncropped src width/height | |
AR, uncroppedAR, encodedAR | cropped AR (aspect ratio), uncropped AR, encoded AR | |
targetWidth, targetHeight | width/height after scaling (przycinanie zgodnie z ustawieniami) | |
croppedTargetWidth, croppedTargetHeight | width/height after scaling cropped source | |
uncroppedTargetWidth, uncroppedTargetHeight | width/height after scaling uncropped source | |
scalingFactor.x/y | overall scaling factor | |
fps, deintFps, bitDepth | source frame rate, framerate after deinterlacing, bitdepth | |
displayMode.x/y, refreshRate | display mode information | |
runtime | movie runtime (w minutach) |
Obsługiwane wartości logiczne:
4:2:0, 4:2:2, 4:4:4, RGB | jaki format pikseli ma źródło? | |
HDR | wideo jest HDR? | |
srcInterlaced | źródło jest z przeplotem? | |
filmMode | film mode (IVTC) jest aktywny? | |
MPEG2, VC-1, h264 | jaki jest kodek źródłowy? | |
fseMode, overlay, windowed | tryb renderowania | |
AMD, nVidia, Intel | kto jest producentem GPU? | |
smoothMotion | czy smooth motion FRC jest aktywny? | |
variableAR | te wideo ma zmienne AR? | |
hdr | czy to wideo HDR? |
Obsługiwane wartości ciągów:
mediaPlayer | nazwa pliku exe media playera | |
filePath, fileName, fileExt | np. "c:\movie.mkv", "movie.mkv", "mkv", obsługiwane symbole wieloznaczne | |
display | nazwa aktywnego urządzenia wyświetlającego |
Jeszcze jeden przykład, aby pokazać, jak korzystać z wartości liczbowych, logicznych i ciągów:
if ((not 4:2:0) or (AR = 16:9)) and (fileName = "*horribleSubs*.mkv") "Dziwny profil" else "Normalny profil" |