@jteschner und allen anderen die mit fx-udate arbeiten können:
Wie würdest du folgenden Funktion beurteile? Sinnvoll, überflüssig, zu komplex, nur manuell, oder "best guess"?
Hier die Situation:
Jedes Video ist in einem bestimmten Farbraum produziert. In deinem o.g Beispiel, siehst du das an dem Teil 
yuv420p(tv, bt709, progressive)
Dabei ist "bt709" der entsprechende Farbraum, der für HD-Content (alles ab 1280x720) angwendet wird. Eigentlich müsste ffmpeg anzeigen "bt709,bt709,bt709", da der Farbraum immer durch 3 "Komponenten" bestimmt wird: colorspace (oder auch matrix genannt), color primaries ("Eckwerte für rot, grün, blau) und color_transfer (wie werden die RGB-Pixel in Signal für den TV umgewandelt)
Bei SD-Kontent ist es etwas komplexer (historisch bedingt). Eine PAL-DVD wird standardmäßig einkleinwenig anders mit Farbraum-Angaben versehen als eine NTSC-DVD. Konkret "smpte170m, bt709, bt470bg"
Noch unglücklicher ist es, wenn man eine DVD rippt (mit bspw MakeMKV). Viele DVD haben diese Farbraumdaten gar nicht gespeichert und MakeMKV übernimmst sie auch gar nicht. Ergebnis: nach einem Rip kann man nur raten (meist anhand der Bildfrequenz)
Noch schriller wird es, wenn man selbst mit bspw einer Capture-Card (wie EyeTV) TV-Signale aufnimmt. Da kann dann auch mal ein Spielfilm, obwohl deutsche Produktion und 25 fps, also PAL, mit NTSC-Farbraum versehen sein....) Alles schräg
Das "Problem" ist nun folgendes:
Ein Player (Apple-TV, FireTV, Nvidia Shield etc) kann nun zwei Wege gehen
a) er übernimmt die Angaben im Video und konvertiert selbst den Farbraum korrekt um und gibt ihn dann erst aus.
b) er unterstellt bt709, da das ja der Standard ist, und reicht die Pixel einfach durch, was immer passiert, wenn keine Angaben da sind.
Bei a) passt alles. Bei b) werden die Farben verfälscht.
Zwischen SD und HD ist diese Verfälschung aber sehr subtil und man merkt das nur, wenn man direkt vergleicht und weiß worauf man achten soll. Rot und Hauttöne wirken etwas weniger intensiv, etwas "blasser", grün kann auch etwas mehr hervortreten (macht die Haut etwas "krank")
Ein Vergleich geht nicht mit IINA, VLC oder anderen Playern, die auf mpc oder ffmpeg basieren. Die kriegen alle das Farbraummanagement nicht korrekt hin. Nur der Quicktime-Player schafft das.
Man ist also auf der sicheren Seite, wenn fx-upscale die Farbraumkonvertierung immer vornimmt. Rein software-mäßig kriege ich das hin und es klappt auch perfekt.
Tja, dazu muss aber fx-upscale bekannt sein, was das Original besitzt. Da wie oben beschrieben, das nicht immer eindeutig erkennbar ist, bin ich mir nicht im Klaren, wie ich es implementieren soll, wenn das Original keine Daten dazu hat.
a) automatisch nach "best guess": Nach fps zwischen PAL und NTSC unterscheiden, sollte meist klappen, aber halt nicht immer. Besonders bei so Freaks wie mir, die den PAL-Speedup wieder rückgängig machen, um das Original-Format zu erhalten.
Das würde bedeuten, dass die User glauben, fx-upscale macht es korrekt, was aber eben nicht immer so ist. Finde ich nicht so toll. Dafür kann es aber auch von "Nicht-Freaks" angewandt werden
b) Möglichkeit "PAL" oder "NTSC" als Parameter vorzugeben. Das würde dann sicher bei vielen Usern, mehr Fragen aufwerfen, als das es nützt. Auch nicht so toll. Aber wer sich auskennt, kriegt immer korrekte Farbkonvertierung (auch wenn man "Fehler" eh ohne direkten Vergleich im Grunde nicht sieht)
c) Im README den User darauf hinweisen, dass das Original richtig getagged sein muss (dann geht es nämlich definitiv immer korrekt und automatisch). Mit ffmpeg kann man das nachträglich auch machen. Aber da bin ich mir auch wiederum sicher, dass es kaum jemand weiß wie. Und zudem müsste dann immer vor dem upscalen erst mit ffmpeg gearbeitet werden (wäre aber lossless)
d) ???
Also: was würdest du tun, was würdest du für gut empfinden? Hast du alternative Ideen?
Die gleichen Fragen gehen natürlich auch an alle Mitleser hier (in der Hoffnung, dass noch jemand anderes sich einwenig mit diesen Dingen auskennt und auch Wert darauf legt)