@UndiscoveredLP
Die Frage ist jetzt was der Fehler genau ist? Woran scheitert es denn?
Weil das Skript sieht ok aus, sofern du die Pfade zu den Dateien richtig angegeben hast für das Plugin, als auch für das Video.
Bedenke halt das ColorMatrix ein YV12 oder YUY2 Input haben möchte.
Wenn du YV24 hast, wäre die Nutzung von ManualColorMatrix Plugin vllt. eine bessere Option.
Auf jedenfall sind Farbmatrix Werte nur für einen YUV Farbraum bestimmt und nicht für einen RGB Farbraum. RGB besitzt keine Farbmatrix.
Den letzten Fehler den du mir in der Konversation gepostet hast war wie folgt:
--[Error] [05.08.2016 02:16:14] Error parsing media file D:\Downloads\Xur.avs
---[NoImage] ColorMatrix: input to filter must be YV12 or YUY2!
---[NoImage] (D:\Downloads\Xur.avs, line 3)
Das Skript dazu haste ja etwas weiter oben gepostet:
LoadPlugin("C:\xxx\xxx\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
AVISource("D:\x\xxx.avi", audio=true).AssumeFPS(60000, 1001)
ColorMatrix(mode="Rec.601->Rec.709")
Spline36Resize(2048,1152)
Und jetzt vergleich mal. Zeile 3 und 4 in der Fehlermeldung von MeGUI weißt dich darauf hin was los ist und in welcher Zeile es ist im Skript.
In Zeile 3 im Skript steht der ColorMatrix Filter. Der kann aber nur ein YV12 oder YUY2 Signal verarbeiten. Das heißt das in Zeile 2 wo du dein Video laden tust, es bereits in einem ganz anderem Farbraum vorliegt. RGB24/RGB32 oder YV24 vllt. Und schon haut das nicht hin.
Du musst dem DebugMode oder Advanced Frameserver sagen das er in YUY2 oder YV12 ausgeben soll, damit das Ganze funktioniert im Skript.
An deiner Stelle hätte ich aber vllt. noch mal einen anderen Weg eingeschlagen wo du im Endeffekt mehr raus bekommst.
Hätte da 3 Varianten anzubieten.
Variante 1:
LoadPlugin("C:\xxx\xxx\MeGUI\tools\avisynth_plugin\ManualColorMatrix.dll")
AVISource("D:\x\xxx.avi", audio=true).AssumeFPS(60000, 1001)
Spline36Resize(2048,1152)
ManualColorMatrix(2, 0.182586, 0.614231, 0.062007, -0.098397, -0.331015, 0.429412, 0.429412, -0.390037, -0.039375, 16, 128, 128)
ManualColorMatrix müssteste dir dann erst noch downloaden dann.
Aber dieser Weg ist um Längen besser, denn nun haste die Möglichkeit deine Videos in RGB vom Frameserver auszusenden, dann wird mit dem RGB Material skaliert, was weitaus effizienter ist als ein YUV Farbraum zu skalieren und erst dann in Zeile 4 wird auf YV12 mit BT.709 geändert.
Das heißt das du somit mehr Möglichkeiten hast.
Beachte das wenn du bereits in BT.709 aufnimmst, das Skript dir die Farben verfälscht, da es für eine RGB -> BT.709 Konversation gedacht ist.
Variante 2:
LoadPlugin("C:\xxx\xxx\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
AVISource("D:\x\xxx.avi", audio=true).AssumeFPS(60000, 1001)
Spline36Resize(2048,1152)
ConvertToYV12() # <- Standard BT.601 conversion without parameters
ColorMatrix(mode="Rec.601->Rec.709")
Sieht deinem jetzigen nicht unähnlich aus, nur das die Reihenfolge optimiert ist. Immer erst Skalieren und dann den Farbraum ändern.
Der Rest dürfte Klar sein denk ich.
Beachte hier das die Farbmatrix bei der Aufnahme schon BT.601 sein muss, damit überhaupt auf BT.709 geändert werden kann. Ansonsten werden Farben verfälscht.
Obwohl sie schon dank des TimeLine Programmes verfälscht werden könnten.
Variante 3:
Währe natürlich die Beste mitunter. Hier wäre aber der Verzicht auf das Timeline Programm erforderlich.
Denn du hast folgende Ausgangs Situation mit deinem Timeline Programm:
Aufnahme sei jetzt mal mit YV12 in BT.709
Dann würde dein Timeline Programm es auf RGB umkonvertieren, da RGB einfacher zu Handhaben ist, genauer ist und vor allem viele Effekte somit anwendbar sind, da sie auf RGB geeicht wurden.
Das heißt das die Information der Farbmatrix erlischt. Wenn du es jetzt wieder nach AVISynth schicken tust werden die Farben schon daher verfälscht, weil AVISynth, als auch der DebugMode Frameserver in BT.601 ausgibt (sofern YUV Übertragung ausgewählt worden ist), da es ja vorher eine RGB RAW Quelle ist im Timeline Programm.
Ich weiß das ist recht verzwickt mit den Dingern und eigentlich kann man da nicht mal was ändern.
Aber wenn du ohne ein Timeline Programm direkt das Video in AVISynth laden würdest, würdest du sowas halt vermeiden.
Dann müssteste dir nur die Mediainfo von deinem Video zu Rate ziehen und passt das Skript explizit darauf an.
Das Problem was du und wir hier momentan haben ist:
A) wir haben noch keine Mediainfo deiner jetzigen Aufnahmen gesehen
B) Wir wissen nicht was du im DebugMode Frameserver einstellst als Farbraum, denn darauf muss dann auch das Skript angepasst werden.
C) Sofern das die einzige Fehlermeldung war, wäre halt nur noch A und B zu klären. Wenn nicht, solltest du uns eine komplette Log von MeGUI posten wo sich auch der Eintrag des Fehlers befindet. Ansonsten raten wir hier rum und wissen nicht was los ist.