Das beruhigt mich dank dir
sind die Falten weg inzwischen?
Sie sind in Begriff, Heimkinoverein zu verlassen, um auf die folgende Adresse weitergeleitet zu werden:
Bitte beachten Sie, dass wir für den Inhalt der Zielseite nicht verantwortlich sind und unsere Datenschutzbestimmungen dort keine Anwendung finden.
Das beruhigt mich dank dir
sind die Falten weg inzwischen?
Wenn's nicht so'n völliger Schuss in's Blaue wäre, wegen dem zwingend nötigen Sync zwischen In und Out, würde ich mir ja mal eine Decklink Capture Karte besorgen und gucken, ob das ganze Processing auch mit einem Eingangs-Stream klappen würde. Für so eine kiste würde es sich dann auch direkt lohnen, ein embedded Linux aufzusetzen, denn da braucht es dann kein Kodi mehr. Da fällt mir auf: Das embedded System, das ich hier fertig liegen habe, wäre dafür praktisch fertig. Das ist 100 MB groß, bootet auf beliebigen PCs und es startet ein X-Server und dann ein MPV drauf. Mehr braucht es auch gar nicht. Also falls jemand so eine karte rumliegen hat, gerne mal Bescheid geben.
Das geht auch mit einer Capturekarte. Ich habe hier testweise Elgato am laufen:
In Windows z.B. via batch file:
start C:\mpv\mpv.exe "av://dshow:audio=Game Capture 4K60 Pro MK.2 Audio:video=Game Capture 4K60 Pro MK.2" --config-dir="C:\Users\User\AppData\Roaming\mpv\capturecard" --profile=low-latency --untimed
Ich habe dafür einen extra Ordner mit config/scripten/shadern gemacht zum Testen - ist aber nicht nötig
Ich habe nur ein kleines Problem: Es ruckelt bis ich kurz mit der Maus vor/zurück scrolle ... noch nicht herausgefunden woran das liegt. Das reicht aber einmal direkt nach dem Start und dann läuft es flüssig.
schwarzes Klebeband könnte eine Alternative sein. Damit hast du keine Sauerei
N’Abend zusammen, ich hab mal eine Frage an die jenigen die bereits eine Leinwand von xy Screen haben! Ich habe gerade meine Leinwand aufgebaut und an manchen Stellen am Rand wirft das Tuch leichte Wellen! Ist das normal ?? Legt sich das noch ? Es ist ein SoundMax 4K
das war bei mir nach 2 Tagen weg und auch an Tag 1 nur mit Raumbeleuchtung sichtbar - im Film nicht mehr.
Mit viel basslastige Musik/Film geht es vlt noch etwas schneller bis die Wellen sich legen
mein HTPC läuft auf 23,976Hz und das erspaart mir das Umschalten, Es gibt aber ein paar wenige Quellen mit 50Hz oder 60Hz, für die ich das evtl noch mache.
Wie läuft das mit MPV eigentlich mit den verschiedenen Auflösungen? HD und UHD. Schaltet er dann die GPU genauso um wie es madVR macht?
Standardmäßig Nein. Auch madvr macht das standardmäßig nicht, sondern nur wenn du das in madvr einstellst.
Bei mpv ist es möglich, aber nur über externe Scripte.
Es ist völlig dir überlassen, wie du das machen möchtest.
Ich möchte zum Beispiel alles was HD ist auf UHD hochskalieren mit mpv shadern. D.h. Ich habe immer UHD eingestellt und möchte keinen Wechsel der Auflösung haben.
Es ist allerdings evtl sinvoll dies für Bildwiederholungsraten zu tun (werde ich demnächst bei mir hinzufügen)
Dann hast Du die nachgereichte Info, dass isch die hellen Ecken zusammen mit dem Bild verschieben lassen, nicht gelesen?
habe ich wohl nicht oder übersehen
Edit: Ich habe den post nun gefunden. Das ändert nicht viel an meiner Aussage.
Logischerweise ändern sich die hellen Bereiche mit Zoom und Shift, da es auch nur im Bildbereich auftritt (Schwarz ist sehr wenig Licht, aber dennoch etwas Licht).
Der Winkel des Lichts ändert sich bei seinen zwei Aufstellungsvarianten kaum. Alle Tests waren von unten mittig oder seitlich mit unterschiedlichem Zoom.
Das soll nicht heißen, dass es den Effekt nicht gibt, aber ich nehme des Test erst mit einer richtigen Leinwand ernst
Ich verstehe dort einfach nicht wie man mit einem Bild auf einer "normalen" Wand, solche Dinge beurteilen will, wie "helle Ecken".
Das hängt voll und ganz von der Wandbeschaffenheit etc ab, sowie Einfall-/Ausfallwinkel des Lichts.
Wenn man genau hinschaut sind dort nicht die Ecken heller sondern die Mitte und unten. Falls der Beamer unten steht und die Wand ähnliche Effekte wie eine Kontrastleinwand hat, dann wäre das zum Beispiel eine mögliche Ursache.
Die Art des Tests macht das Ergebniss (zumindest für mich) schlicht ungültig.
Dazu kommt noch, selbst wenn dies tatsächlich der Falls ist, sollte das Laserdimming diesen Effekt wieder aufheben und es ist evtl relativ egal.
Hast du versucht bei der hwdec option in -copy anzuhängen? Z.B. "hwdec=auto-copy" oder "hwdec=vaapi-copy"
Auch die Ansicht von James Cameron, "Avatar" in 16:9 (open matte) auf Blu-ray zu veröffentlichen, obwohl er im Kino in Cinemascope lief, halte ich für einen Fehler. Es gibt ja sogar Versuche von Fans, den Film wieder auf 2,4:1 zu beschneiden mit akribischer Wahl des Bildausschnittes usw.
als 2.4:1 Leinwand Besitzer möchte ich die Filme auch ind em Format.
Die 16:9 / TV Besitzer freuen sich hingegen über IMAX, weil sie endlich die Balken los sind.
Das kann man nie wirlich jedem Recht machen
Ich persönlich schneide bei Formatwechseln eher nicht ab und passe lieber den 16:9 Teil in die Leinwand ein.
Für Lumagenbesitzer wäre es wohl am besten, wenn es mehere Möglichkeiten gibt. Dann kann jeder das für sich selbst entscheiden.
Was ich aber nicht so richtig verstehe. Jim sagt ja, dass man den Formatwechselfilm komplett im scope Modus schauen sollte, wenn man eine scope Leinwand hat. Also meint er, dass oben und unten ggf. abgeschnitten werden sollte?
So habe ich es auch verstanden. IMAX ist dafür da das Bild größer/höher zu machen, was aber bei einer Scope Leinwand nicht geht.
Statt die IMAX Parts in die Leinwand einzupassen, sollte man sie auf Scope beschneiden, da dies näher an der Intention der Macher liegt.
Zudem sind diese IMAX Filme (mit wechselnden Formaten) - laut Ihm - so gemacht, dass man sie beschneiden kann und so solle man dies beim Lumagen auch einstellen.
SVP hatte ich gestern mal kurz ausprobiert. Es lief aber, wie erwartet, nur bei Blu-ray flüssig mit meiner 1050 TI. Tone Mapping funktionierte aber problemlos bei UHDs.
Das funktioniert zwar gut mit SVP zusammen aber braucht auch ordentlich power. Du kannst aber zwischen CPU and GPU auswählen. Z.B. mpv auf der GPU und SVP auf der CPU.
Ob es aber zufriedenstellend ist - keine Ahnung. Ich hab mit nem Ryzen 9 schon extreme Auslastungen gehabt, aber auch mit hohen Einstellungen.
Ja, dieselbe Idee hatte ich auch. Man kann mit LUA auch unter Windows Programme starten. Ich vermute auch, dass man PowerShell irgendwie aufrufen kann, welches dann wiederum ein Script ausführt. Damit könnte man dann fast alles machen.
So wie es aussieht gibt es bei lua os.execute(), womit man bash/sh/powershell etc aufrufen kann
Dann ist es ja nicht vollautomatisch.
Ich halte Abstand von Autoerkennungen, da das bei Filmen mit verschiedenen Formaten nicht 100%ig funktioniert. Ich analysiere die Filme vorher lieber einmal manuell und setze das Seitenverhältnis dann fest. So kann man z.B. auch "Tenet" komplett in 2,2:1 schauen oder ähnliches.
Shift+C ist nur für 16:9 - weil ich das nicht automatisch will für 16:9. Alle anderen bisher eingetragenen Formate funktionieren automatisch.
Ja bei der Erkennung habe ich auch schon Fehler gesehen beim Testen. Über Dateinamen geht es natürlich auch.
Bei guter Autoerkennung gehen auch Formatwechsel - zumindest hat das mit Madvr bei Aquaman gut funktioniert. Ich teste das mal mit meiner Bastelei.
@((( atom ))) Hast du dir die Lastverteilung bei dir mal angeschaut. Bei mir braucht das Dithering mit error-diffusion am meisten (70%). Rein visuell macht der Unterschied im Dithering zwischen error-diffusion und fruit vermutlich weniger aus, als zwischen mit und ohne die externen Shader.
Das Dithering benötigt bei mir auch um die 70%
Gestern habe ich mich ein wenig mit der Automatisierung beschäftigt. Ich habe ja eine komplett automatische Maskierung auf Basis von Metadaten am Film. Die Maskierung wird angesteuert und der Zoom im Player wird gesetzt. Ich war gestern so weit, dass ich per LUA-Script in MPV den Zoom abhängig von einem Tag im Dateinamen des Films (z.B. "ar=2.4") setzen konnte. Das funktioniert problemlos. Dann müsste ich nur noch per UDP eine Nachricht an meine Maskierungssteuerung senden. Auch das ist irgendwie machbar. Leider bringt der eingebaute LUA-Interpreter sowas nicht mit. Man müsste wohl LUA installieren, auf JavaScript umsteigen oder ein kleines Programm aufrufen, das die UDP-Pakete versendet. Dasselbe gilt für das Parsen von XML. Das hatte ich mir einfacher vorgestellt. Ist aber alles irgendwie machbar.
Ich benutze eine Custom Auflösung mit 3840x1600 (2.4:1). Mit dem https://github.com/mpv-player/…er/TOOLS/lua/autocrop.lua script passt sich jeder Film automatissch in die Leinwand ein.
Das Script habe ich inzwischen modifiziert und habe zusätzlich optionalen Stretch/Zoom für unterschiedliche Formate hinzugefügt um das Bild auf 2.4:1 anzupassen.
Dazu benutzt man dann die Shift+C Taste um den Zoom anzupassen und es funktioniert komplett ohne Dateinamenänderungen etc. Bei allen formaten > 1.9:1 habe ich das momentan automatisch aktiviert.
Zusätzlich habe ich noch die Oberfläche angepasst und habe den Fullscreenbutton unten rechts mit einer "Toggle Zoom" Funktion ersetzt, womit ich die Funktion ein-/auschalten kann
Edit: meine momentanten Version von autocrop mit stretch/zoom/crop:
Vlt kann damit jemand was anfangen
--[[
This script uses the lavfi cropdetect filter to automatically
insert a crop filter with appropriate parameters for the
currently playing video.
It will automatically crop the video, when playback starts.
Also It registers the key-binding "C" (shift+c). You can manually
crop the video by pressing the "C" (shift+c) key.
If the "C" key is pressed again, the crop filter is removed
restoring playback to its original state.
The workflow is as follows: First, it inserts the filter
vf=lavfi=cropdetect. After <detect_seconds> (default is 1)
seconds, it then inserts the filter vf=crop=w:h:x:y, where
w,h,x,y are determined from the vf-metadata gathered by
cropdetect. The cropdetect filter is removed immediately after
the crop filter is inserted as it is no longer needed.
Since the crop parameters are determined from the 1 second of
video between inserting the cropdetect and crop filters, the "C"
key should be pressed at a position in the video where the crop
region is unambiguous (i.e., not a black frame, black background
title card, or dark scene).
The default options can be overridden by adding
script-opts-append=autocrop-<parameter>=<value> into mpv.conf
List of available parameters (For default values, see <options>):
auto: bool - Whether to automatically apply crop at the start of
playback. If you don't want to crop automatically, set it to
false or add "script-opts-append=autocrop-auto=no" into
mpv.conf.
auto_delay: seconds - Delay before starting crop in auto mode.
You can try to increase this value to avoid dark scene or
fade in at beginning. Automatic cropping will not occur if
the value is larger than the remaining playback time.
detect_limit: number[0-255] - Black threshold for cropdetect.
Smaller values will generally result in less cropping.
See limit of https://ffmpeg.org/ffmpeg-filters.html#cropdetect
detect_round: number[2^n] - The value which the width/height
should be divisible by. Smaller values have better detection
accuracy. If you have problems with other filters,
you can try to set it to 4 or 16.
See round of https://ffmpeg.org/ffmpeg-filters.html#cropdetect
detect_min_ratio: number[0.0-1.0] - The ratio of the minimum clip
size to the original. If the picture is over cropped or under
cropped, try adjusting this value.
detect_seconds: seconds - How long to gather cropdetect data.
Increasing this may be desirable to allow cropdetect more
time to collect data.
suppress_osd: bool - Whether the OSD shouldn't be used when filters
are applied and removed.
--]]
require "mp.msg"
require 'mp.options'
local options = {
auto = true,
auto_delay = 4,
detect_limit = "10/255",
detect_round = 2,
detect_min_ratio = 0.5,
detect_seconds = 3,
suppress_osd = false,
}
read_options(options)
local from_start = 1
local label_prefix = mp.get_script_name()
local labels = {
crop = string.format("%s-crop", label_prefix),
cropdetect = string.format("%s-cropdetect", label_prefix)
}
timers = {
auto_delay = nil,
detect_crop = nil
}
local command_prefix = options.suppress_osd and 'no-osd' or ''
function is_filter_present(label)
local filters = mp.get_property_native("vf")
for index, filter in pairs(filters) do
if filter["label"] == label then
return true
end
end
return false
end
function is_zoom_present()
if mp.get_property("video-scale-x") ~= "1.000000" then
return true
end
return false
end
function is_enough_time(seconds)
-- Plus 1 second for deviation.
local time_needed = seconds + 1
local playtime_remaining = mp.get_property_native("playtime-remaining")
return playtime_remaining and time_needed < playtime_remaining
end
function is_cropable()
for _, track in pairs(mp.get_property_native('track-list')) do
if track.type == 'video' and track.selected then
return not track.albumart
end
end
return false
end
function remove_filter(label)
if is_filter_present(label) then
mp.command(string.format('%s vf remove @%s', command_prefix, label))
return true
end
return false
end
function toggle_zoom()
if is_zoom_present() then
mp.command(string.format("%s set video-scale-x 1", command_prefix ))
mp.command(string.format("%s set video-scale-y 1", command_prefix ))
mp.command(string.format("%s set video-align-y 0.5",command_prefix ))
return true
end
return false
end
function cleanup()
-- Remove all existing filters.
for key, value in pairs(labels) do
remove_filter(value)
end
-- Kill all timers.
for index, timer in pairs(timers) do
if timer then
timer:kill()
timer = nil
end
end
end
function detect_crop()
-- If it's not cropable, exit.
if not is_cropable() then
mp.msg.warn("autocrop only works for videos.")
return
end
-- Verify if there is enough time to detect crop.
local time_needed = options.detect_seconds
if not is_enough_time(time_needed) then
mp.msg.warn("Not enough time to detect crop.")
return
end
-- Insert the cropdetect filter.
local limit = options.detect_limit
local round = options.detect_round
mp.command(
string.format(
'%s vf pre @%s:cropdetect=limit=%s:round=%d:reset=0',
command_prefix, labels.cropdetect, limit, round
)
)
-- Wait to gather data.
timers.detect_crop = mp.add_timeout(time_needed, detect_end)
end
function detect_end()
-- Get the metadata and remove the cropdetect filter.
local cropdetect_metadata =
mp.get_property_native(
string.format("vf-metadata/%s",
labels.cropdetect
)
)
remove_filter(labels.cropdetect)
-- Remove the timer of detect crop.
if timers.detect_crop then
timers.detect_crop:kill()
timers.detect_crop = nil
end
local meta = {}
-- Verify the existence of metadata.
if cropdetect_metadata then
meta = {
w = cropdetect_metadata["lavfi.cropdetect.w"],
h = cropdetect_metadata["lavfi.cropdetect.h"],
x = cropdetect_metadata["lavfi.cropdetect.x"],
y = cropdetect_metadata["lavfi.cropdetect.y"],
}
else
mp.msg.error("No crop data.")
mp.msg.info("Was the cropdetect filter successfully inserted?")
mp.msg.info("Does your version of ffmpeg/libav support AVFrame metadata?")
return
end
-- Verify that the metadata meets the requirements and convert it.
if meta.w and meta.h and meta.x and meta.y then
local width = mp.get_property_native("width")
local height = mp.get_property_native("height")
meta = {
w = tonumber(meta.w),
h = tonumber(meta.h),
x = tonumber(meta.x),
y = tonumber(meta.y),
min_w = width * options.detect_min_ratio,
min_h = height * options.detect_min_ratio,
max_w = width,
max_h = height
}
else
mp.msg.error("Got empty crop data.")
mp.msg.info("You might need to increase detect_seconds.")
return
end
apply_crop(meta)
end
function sleep (a)
local sec = tonumber(os.clock() + a);
while (os.clock() < sec) do
end
end
function apply_crop(meta)
-- Verify if it is necessary to crop.
local is_effective = meta.x > 0 or meta.y > 0
or meta.w < meta.max_w or meta.h < meta.max_h
-- Verify it is not over cropped.
local is_excessive = meta.w < meta.min_w and meta.h < meta.min_h
if is_excessive then
mp.msg.info("The area to be cropped is too large.")
mp.msg.info("You might need to decrease detect_min_ratio.")
return
end
-- Remove existing crop.
remove_filter(labels.crop)
-- Apply crop.
mp.command(
string.format("%s vf pre @%s:lavfi-crop=w=%s:h=%s:x=%s:y=%s",
command_prefix, labels.crop, meta.w, meta.h, meta.x, meta.y
)
)
local ratio = meta.w / meta.h
--mp.osd_message(ratio, 1)
if from_start == 0 then
-- add ratios that should not always zoom at start here
-- 16:9
if ratio >= 1.77 and ratio <= 1.78 then
mp.command(string.format("%s set video-scale-x 1.35", command_prefix ))
mp.command(string.format("%s set video-scale-y 1.25", command_prefix ))
mp.command(string.format("%s set video-align-y 0.515",command_prefix ))
mp.osd_message("16:9 detected",1)
end
end
-- ratio that should always zoom at start after this one
-- 1.9:1
if ratio >= 1.8999 and ratio <= 1.900001 then
mp.command(string.format("%s set video-scale-x 1.263", command_prefix ))
mp.command(string.format("%s set video-scale-y 1.12", command_prefix ))
mp.command(string.format("%s set video-align-y 0.51",command_prefix ))
mp.osd_message("1.9:1 detected",1)
end
-- 2:1
if ratio >= 1.9999 and ratio <= 2.000001 then
mp.command(string.format("%s set video-scale-x 1.2", command_prefix ))
mp.command(string.format("%s set video-scale-y 1.15", command_prefix ))
mp.command(string.format("%s set video-align-y 0.505",command_prefix ))
mp.osd_message("2:1 detected",1)
end
-- 2.2:1
if ratio >= 2.19999 and ratio <= 2.200001 then
mp.command(string.format("%s set video-scale-x 1.092", command_prefix ))
mp.command(string.format("%s set video-scale-y 1.105", command_prefix ))
mp.command(string.format("%s set video-align-y 0.5",command_prefix ))
mp.osd_message("2.2:1 detected",1)
end
-- 2.3:1 and higher
if ratio >= 2.3 then
mp.command(string.format("%s set video-scale-x %s", command_prefix, 2.4/ratio ))
mp.command(string.format("%s set video-scale-y %s", command_prefix, 2.4/ratio ))
mp.command(string.format("%s set video-align-y 0.5", command_prefix ))
--mp.osd_message("zoom small bars away",1)
end
end
function on_start()
-- Clean up at the beginning.
cleanup()
-- If auto is not true, exit.
if not options.auto then
return
end
-- If it is the beginning, wait for detect_crop
-- after auto_delay seconds, otherwise immediately.
local playback_time = mp.get_property_native("playback-time")
local is_delay_needed = playback_time
and options.auto_delay > playback_time
if is_delay_needed then
-- Verify if there is enough time for autocrop.
local time_needed = options.auto_delay + options.detect_seconds
if not is_enough_time(time_needed) then
mp.msg.warn("Not enough time for autocrop.")
return
end
timers.auto_delay = mp.add_timeout(time_needed,
function()
detect_crop()
-- Remove the timer of auto delay.
timers.auto_delay:kill()
timers.auto_delay = nil
end
)
else
detect_crop()
end
end
function on_toggle()
from_start = 0
-- If it is during auto_delay, kill the timer.
if timers.auto_delay then
timers.auto_delay:kill()
timers.auto_delay = nil
end
-- Cropped => Remove it.
if toggle_zoom() then
return
end
-- Detecting => Leave it.
if timers.detect_crop then
mp.msg.warn("Already cropdetecting!")
return
end
-- Neither => Do delectcrop.
detect_crop()
end
mp.add_key_binding("C", "toggle_crop", on_toggle)
mp.register_event("end-file", cleanup)
mp.register_event("file-loaded", on_start)
Alles anzeigen
Für die Modifizerung des Buttons habe ich die "osc.lua" aus git in den script orderner gepackt und in der config das original osc ausgeschaltet (osc=no)
Danach im osc.lua Script die Zeilen geändert:
-- removed old lines
--ne.eventresponder["mbtn_left_up"] =
--function () mp.commandv("cycle", "fullscreen") end
-- add new lines
ne.eventresponder["mbtn_left_up"] =
function () mp.command("keypress C") end
Für Fullscreen toggle benutze ich eh Doppelklick
Zur Vollständigkeit hier noch meine momentane Config:
#############################
# General #
#############################
profile=gpu-hq
input-ipc-server=mpvpipe
ao=wasapi
audio-exclusive=yes
audio-spdif=ac3,eac3,dts-hd,truehd,dts
#############################
# Subs and languages #
#############################
subs-with-matching-audio=no
sub-scale=1.25
slang=en,eng,de,ger
sub-forced-only=yes
alang=en,eng,fr,de
sid=no
#############################
# Window settings #
#############################
autofit=50% # for no fullscreen
geometry=100%:100% # for no fullscreen
ontop
snap-window
minmousemove=500
video-sync=display-resample
hr-seek-framedrop=no
no-resume-playback
border=no
osc=no
##############################
# script settings #
##############################
script-opts-append=autocrop-suppress_osd=yes
##############################
# Video Stuff #
##############################
video-output-levels=full
target-prim=dci-p3
hwdec=auto-copy
hdr-compute-peak=yes
target-trc=gamma2.2
tone-mapping=reinhard
tone-mapping-param=0.1
tone-mapping-max-boost=2.0
tone-mapping-desaturate=0.75
tone-mapping-desaturate-exponent=1.5
no-gamut-clipping
hdr-peak-decay-rate=50
dither-depth=auto
dither=error-diffusion
deband=yes
deband-iterations=4
deband-threshold=48
deband-grain=48
deband-range=16
scale=ewa_lanczossharp
cscale=ewa_lanczossharp
dscale=mitchell
correct-downscaling=yes
linear-downscaling=yes
sigmoid-upscaling=yes
scale-antiring=0.6 # luma upscale deringing
dscale-antiring=0.6 # luma downscale deringing
cscale-antiring=0.5 # chroma upscale deringing
glsl-shaders-clr
glsl-shaders="C:\Users\User\AppData\Roaming\mpv\Shaders\FSRCNNX_x2_8-0-4-1.glsl"
glsl-shaders-append="C:\Users\User\AppData\Roaming\mpv\Shaders\KrigBilateral.glsl"
glsl-shaders-append="C:\Users\User\AppData\Roaming\mpv\Shaders\adaptive-sharpen.glsl"
#log-file=log.txt
[HDR]
profile-desc=HDR options
profile-cond=width > 1920
target-peak=110
fs=yes
[SDR]
profile-desc=SDR options
profile-cond=width < 1921
#brightness=2
#gamma=1
fs=yes
Alles anzeigen
Kann denn einer der hier vertretenen Coding-Cracks schon eine Aussage treffen, ob bzw. wie FluidMotion/BlueSky oder noch spannender, SVP eingebunden werden können?
Dafür würde ich mir eventuell sogar das fürchterliche Handling von MVP antun. Dann könnte ich nämlich möglicherweise mit meiner bestehenden Hardware 4k60 ausgeben, um die lästigen Probleme des JVC bei eingeschalteter FI zu umgehen.
Andererseits ginge das ja mit massiv eingeschränkten MadVR Parametern auch jetzt schon - also müsste MVP dann mindestens besser performen als MadVR in Minimalkonfiguration (ohne Nachschärfen, ohne NGU Chroma Upscaling, ohne Debanding oder sonst noch ein paar Annehmlichkeiten). Das müsste wahrscheinlich sogar möglich sein.
Wünschenswert wäre allerdings, eine vergleichbare Qualität zu meinen recht hohen MadVR Einstellungen zu kriegen. Dann hätte ich tatsächlich einen Mehrwert, da ich mir dann den Kauf einer hoffnungslos überteuerten 3080 TI sparen könnte...
mpv wird von SVP "nativ" unterstützt. D.h. die haben mpv in ihrem Tool integriert.
Du musst aber "input-ipc-server=mpvpipe" in der mpv config hinzufügen
Sorry für den dritten Post in Folge, aber ich habe etwas wichtiges vergessen zu schreiben: Der Parameter "target-peak" wird auch auf SDR angewandt. Die Erklärung hierzu seitens des Entwicklers ist, dass viele Leute heutzutage SDR auf 500 Nits TVs gucken und also auch für SDR eine Gewichtung wichtig ist. Kann ich zwar nachvollziehen, macht mir aber Probleme, da ich SDR und HDR in verschieden hellen Modi gucke. Es gibt wohl aber in der playercorefactory.xml die Möglichkeit, den zu startenden Player nach Regeln auszuwählen Eine der möglichen Bedingungen ist die Auflösung. Da kann man sich dann also zwei Scripte als Wrapper schreiben, die MPV mit jeweils anderen Parametern für alles >1080p starten. Evtl. kann man auch einfach ein anderes Config-File übergeben, das wäre am hübschesten.
Ja das sollte gehen über die Regeln von Kodi und cmdline parameter von mpv.
1. ein allgemeines Configurationsfile für mpv erstellen
2. In der playercorefactory.xml mehrere Einträge für mpv hinzufügen
3. unter <args> ein entsprechended zusätzliches Config file laden mit --include=<configuration-file> in denen dann die individuellen Optionen sind
4. unter <rules> die entsprechenden Player auswählen
Hier ein ungetestetes und theoretisches Beispiel für Windows:
<playercorefactory>
<players>
<player name="MPV-4K" type="ExternalPlayer" audio="false" video="true">
<filename>C:\Program Files\MPV\mpv.exe</filename>
<args>"{1}" --include=4k.cnf </args>
<hidexbmc>true</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
<player name="MPV-Other" type="ExternalPlayer" audio="false" video="true">
<filename>C:\Program Files\MPV\mpv.exe</filename>
<args>"{1}" --include=other.cnf </args>
<hidexbmc>true</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
</players>
<rules action="prepend">
<rule filetypes="mkv" filename=".*720p.*" player="MPV-Other"/>
<rule filetypes="mkv" filename=".*1080p.*" player="MPV-Other"/>
<rule filetypes="mkv" filename=".*2160p.*" player="MPV-4K"/>
</rules>
</playercorefactory>
Alles anzeigen
according to Kris D. The Panels in the N Series run at 120Hz for 60Hz content and 96Hz für 24Hz content.
This has both probably be doubled in the NZ Series. Panels can do max 240Hz in the NZ8 and NZ9 (up from 120Hz), which has been said on the JVC seminars and is visible on one of the slides
kann man die Bilder jetzt sehen?
Bei mir wurde sie angezeigt und habe den Post Vom Editor hierher kopiert aus dem anderen Thread - hat scheinbar nur für mich geklappt.
Zum Thema Balken:
panscan=1 beschneidet leider das Bild bei mir, wenn der Inhalt 16:9 ist auf der 2.4:1 Leinwand
stattdessen funktioniert dies:
https://github.com/mpv-player/…er/TOOLS/lua/autocrop.lua
Dieses Script in ~/.config/.mpv/scripts/ (Linux/macOS) speichern oder %AppData%\mpv\scripts\ (Windows).
Im Config file dann "hwdec=auto-copy" benutzen