Beiträge von Xairo

    Hi,

    ich habe ein Verständnisproblem wie ich die Flags wie colormatrix, transfer und colorprim bei x264 richtig setze. Klar, es gibt schon einige Erklärungen wie vui.txt und http://mod16.org/hurfdurf/?p=116. Jedoch wird es etwas unklar, wenn ich das ganze mit ColorMatrix() einsetzen soll.

    Nehmen wir an ich habe ein Video bei dem ich mit einem Programm rauslesen kann, dass alle drei Flags (colormatrix, transfer und colorprim) auf ITU-R BT.709 (Rec.709) gesetzt sind.

    Sagen wir noch das Video liegt in der Auflösung 1080p vor. Wenn ich es jetzt auf 720p skaliere und dann mit x264 encodiere, dann muss ich alle drei Flags einfach auf ITU-R BT.709 (bt709) setzen und der Player müsste anhand der Flags oder anhand der Auflösung das Video richtig wiedergeben.

    Aber nehme ich kleinere Auflösungen, dann kann ich immer noch so vorgehen, jedoch würden manche Player wegen der kleineren Auflösung einfach die Flags ignorieren und das Video als Rec.601 abspielen.

    Deswegen kann man ja hingehen und mit ColorMatrix(mode="Rec.709->Rec.601") den Farbraum (hoffe das ist der richtige Begriff dafür) umwandeln. So, jetzt kommt aber das Problem mit den Flags. Laut der Hilfe von ColorMatrix() kann ich ja jetzt ITU-R BT.470-2 oder SMPTE 170M verwenden, da es "exactly the same as ITU-R BT.601" ist.

    In der "T-REC-H.264-201003-I!!PDF-E.pdf" wird aber nochmal zwischen "ITU-R Rec. BT.601-6 525" und "ITU-R Rec. BT.601-6 625" unterschieden. Colour primaries und Transfer characteristics stimmen nicht überein, aber Matrix coefficients. Und das ist ja das wichtige. Welches der Beiden (ITU-R BT.470-2 oder SMPTE 170M) man jetzt genau wählt ist jetzt die erste Frage. Wobei ich meine gelesen zu haben, dass der Unterschied da zwischen PAL und NTSC liegt.

    Außerdem wäre da jetzt noch colorprim und transfer. Da hätte ich jetzt abhängig davon, wie ColorMatrix() arbeitet mehrere Möglichkeiten.

    • colorprim und transfer auf ITU-R BT.470-2 (bt470bg) setzen.
    • colorprim und transfer auf dem Ursprünglichem Wert ITU-R BT.709 (bt709) lassen.
    • colorprim und transfer gar nicht setzen.

    Im Link oben http://mod16.org/hurfdurf/?p=116 wird ja erwähnt, das ich das Wissen über colorprim und transfer wohl nicht haben kann. Aber in dem Fall hatte ich sie ja aus dem Quellvideo auslesen können. Nun will ich halt wissen, welche der drei Möglichkeiten man wählen sollte.

    Falls ColorMatrix() colorprim und transfer nicht beeinflusst, dann wäre es ja logisch die zwei Flags auf ITU-R BT.709 (bt709) zu belassen. So wie der Ersteller des Videos es vorgesehen hat.

    Danke
    Xairo