Megui Problem : "the colorspace of your clip is not in yv12"

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Megui Problem : "the colorspace of your clip is not in yv12"

    Anzeige
    Hallo,

    seit neustem tritt folgende Fehlermeldung in Megui auf, wenn ich ein Film encoden will:

    the colorspace of your clip is not in yv12

    Das Script sieht so aus :

    Spoiler anzeigen
    LoadVirtualdubPlugin("C:\Users\Jaro\Desktop\VirtualDubMod\plugins\logoaway.vdf", "logoaway")
    LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\dgindex\DGDecode.dll")
    DGDecode_mpeg2source("C:\Users\Jaro\Videos\2015-07-28_20-10-01_Super RTL_Sams in Gefahr.d2v", cpu=4, info=3)
    LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
    ColorMatrix(hints=true, threads=0)
    #deinterlace
    logoaway (2, 3407910, 4718612, 0, 0, 4, 0, 66051, 0, 7, "", "", "")
    crop(0, 10, 0, -12)
    faktor = 2
    Spline36Resize(720*faktor,390*faktor) # Spline36 (Neutral)
    #denoise


    Der ConverttoRGB32 ist drin, da sonst Megui eine Fehlermeldung wegen dem VirtualdubFilter gibt.

    Früher kam die Meldung auch nicht.
    Ist was an meinem Megui kaputtt?
    Kann ich die Meldung einfach ignorieren?

    Liebe Grüße
  • Ancrion schrieb:

    Der ConverttoRGB32 ist drin


    Wo? Ich seh ihn grad nicht im Skript.

    Und überhaupt... warum will man MPEG2 Material was ohnehin in YV12 vorliegt in RGB32 konvertieren? WTF xD
    Willst bestimmt ne DVB Quelle laden wie ich das anhand des Dateinamens vermute. Die haben meist YV12. Warum willste dir jetzt das Ganze versauen indem du den Farbraum hochinterpolierst?

    Da wird es doch noch was besseres geben: avisynth.nl/index.php/External_filters#Logo_Removal

    Ansonsten... wenn du es nun wirklich so machen willst und ich dich nicht überzeugen kann ein anderes Verfahren zu verwenden das auf YV12 basiert, dann musste halt wohl oder Übel die Farbraumkonvertierung in Kauf nehmen.
    Aber das hätte ich dann ganz zum Schluss gemacht

    Quellcode

    1. LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\dgindex\DGDecode.dll")
    2. LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
    3. LoadVirtualdubPlugin("C:\Users\Jaro\Desktop\VirtualDubMod\plugins\logoaway.vdf", "logoaway")
    4. faktor = 2
    5. DGDecode_mpeg2source("C:\Users\Jaro\Videos\2015-07-28_20-10-01_Super RTL_Sams in Gefahr.d2v", cpu=4, info=3).ColorMatrix(hints=true, threads=0).Crop(0, 10, 0, -12)
    6. ConvertToRGB32().Logoaway (2, 3407910, 4718612, 0, 0, 4, 0, 66051, 0, 7, "", "", "")
    7. Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor).ConvertToYV12()


    Ancrion schrieb:

    faktor = 2
    Spline36Resize(720*faktor,390*faktor)

    WTF? Wozu Faktorenskalierung, wenn du eh fixe Zahlenwerte eingibst? Gibt keinen Sinn xD

    Quellcode

    1. faktor = 2
    2. Spline36Resize(last.width*faktor,last.height*faktor)


    Wenn es Anamorphes Material ist musst du das Seitenverhältnis kennen. z.B. für 16:9:

    Quellcode

    1. faktor = 2
    2. Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor)


    So ist es korrekt.

    last ist der letzte Clip der den Ausgang zugewiesen wurde. Der kommt laut deinem Skript von der Funktion Crop.
    last ist somit also dein VideoClip. Dem VideoClip kann man Variabeln abfragen. Sowas wie Breite, Höhe, FPS, Frameanzahl, Farbraum etc... Sprich alle Informationen sind abrufbar oder erfragbar.

    Hier mal eine Seite dazu: avisynth.nl/index.php/Clip_properties

    mit width und height kannst du also die exakte Breite und Höhe des Videos abfragen die erkannt wurde.

    Bei Anamorphen Videomaterial muss das Video gezogen werden, da das Pixelseitenverhältnis dort nicht stimmt.

    Sprich die DAR (Display Aspect Ratio) beträgt: 720 × 576
    Und die SAR (Storage Aspect Ratio) beträgt: 16:9

    Dann ist die PAR (Pixel Aspect Ratio) exakt: DAR / SAR

    DAR = 16 / 9
    SAR = 720 / 576 = 5 / 4

    PAR = (16 / 9) / (5 / 4) = 64/45
    PAR = 64 / 45 = 1,4222‾

    Wenn PAR < 1, dann ist das Video Anamorph schmal in der Breite, sprich es hat mehr Höhe.
    Wenn PAR = 1, dann ist das Video nicht Anamorph.
    Wenn PAR > 1, dann ist das Video Anamorph länger in der Breite, so wie in der Beispielrechnung.

    Bei AVISynth haste halt die SAR Auflösung anhand der VideoClipinformation width und height schon vorgegeben. Brauchst also quasi nur noch den DAR angeben der fehlt, der dir aber an sich nicht unbekannt sein sollte. Immerhin musste ja wissen was du aufgenommen hast ^^ Und die gibste halt einfach Zusätzlich an.

    Gibt zwei Wege Anamorphes Material zur Wunschseitenverhältnis zu verhelfen.

    1 Weg: Höhe limitieren und Breite behalten.
    Als Beispiel:
    Breite = 720

    Breite = Breite
    Höhe x = Breite * 9 / 16 (Bei Anamorphen Material)

    Ergebnis: 720 x 405 (16:9) (Muss anhand von YV12 auf eine Durch 2 Teilbare Auflösung gebracht werden) -> 720 x 406


    2 Weg: Breite limitieren und Höhe behalten.
    Als Beispiel:
    Höhe = 576

    Breite x = Höhe * 16 / 9 (Bei Anamorphen Material)
    Höhe = Höhe

    Ergebnis: 1024 x 576 (16:9)
  • Vielen Dank für die Antwort.

    Hatte das RGB32 schon raus getan :

    Spoiler anzeigen
    LoadVirtualdubPlugin("C:\Users\Jaro\Desktop\VirtualDubMod\plugins\logoaway.vdf", "logoaway")
    LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\dgindex\DGDecode.dll")
    DGDecode_mpeg2source("C:\Users\Jaro\Videos\2015-07-28_20-10-01_Super RTL_Sams in Gefahr.d2v", cpu=4, info=3)
    LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
    ColorMatrix(hints=true, threads=0)
    #deinterlace
    ConverttoRGB32()
    logoaway (2, 3407910, 4718612, 0, 0, 4, 0, 66051, 0, 7, "", "", "")
    crop(0, 10, 0, -12)
    faktor = 2
    Spline36Resize(720*faktor,390*faktor) # Spline36 (Neutral)
    #denoise



    ich brauche das ConverttoRGB32() wegen dem logoaway Plugin. Anders kommt bei Megui eine Fehlermeldung

    Der Film hat:

    Breite : 720 Pixel
    Höhe : 576 Pixel
    Bildseitenverhältnis : 16:9

    Wie binde ich das dann in das Script ein ?
    Kannst mir da bitte ein Beispiel schreiben mit dem Script das im Spoiler ist :)

    Spline36Resize(last.720 * faktor,(last.576 * 9 / 16) * faktor)

    oder ist das so richtig?

    Kann ja am Ende vom Script noch schreiben: ConverttoYV12()

    Dann kommt auch keine Fehlermeldung wegen dem Logoaway.
  • So wie ich es im Quellcodefenster im letzten Beitrag geschrieben habe, musste das übernehmen. Musste nur mal dann dein Logoway noch mal entsprechend anpassen.

    Ancrion schrieb:

    Spline36Resize(last.720 * faktor,(last.576 * 9 / 16) * faktor)


    Genau so schreiben wie ich es geschrieben habe, weil width und height Clipeigenschaften sind die du dem Video automatisch entnehmen lassen kannst. Ist einfach dynamischer.
    Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor)

    Es ist eine Anamorphe Auflösung, daher gibst du das Verhältnis von PAR zwischen DAR und SAR bei der Skalierung mit an. Und die kannste der Formel entnehmen. Habe dir das im letzten Beitrag ja auch vorgerechnet. ^^


    Ancrion schrieb:

    Kann ja am Ende vom Script noch schreiben: ConverttoYV12()


    Siehe mein Quellcodefenster im letzten Beitrag. Genau das ist der Fall. Bei einer Skalierung wo ein höherer Farbraum dem Clip erzwungen wurde vorher, sollte die Skalierung selbst mit dem höheren Farbraum gemacht werden, bevor man ihn wieder in sein Ursprungsfarbraum konvertiert. Das ist Qualitativ logischer.

    Aber wie gesagt... mein Rat: Nimm dir ein anderen Logo Remover der YV12 unterstützt. Ist einfach optimaler auch.
  • Ja ich pass doch die Auflösung an. Und dann tu ich ein logo remover in das script und ecodier das neue script dann wieder
    Kann den Logoremover doch erst auf das fertige Video machen und das muss ja dann nochmal encodiert werden


    wo genau muss ich das Verhältnis von PAR zwischen DAR und SAR angeben?
    Oder ist das in
    Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor)
    schon angegeben?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Ancrion ()

  • Ancrion schrieb:

    Ja ich pass doch die Auflösung an. Und dann tu ich ein logo remover in das script und ecodier das neue script dann wieder
    Kann den Logoremover doch erst auf das fertige Video machen und das muss ja dann nochmal encodiert werden


    Hääää? xD NEIN. xD Muss es nicht. Du hast doch noch das Original. Was willst du immer das fertig Encodierte Video noch mal encodieren? Das ergibt doch überhaupt 0 Sinn. xD

    Dann wird doch das Bild und somit auch die Qualität immer schlechter und schlechter mit dem was du vorhast.

    Du brauchst doch nur das Quell Video so durch das Skript jagen wie du es bereits schon getan hast. Du musst nur den logo remover anderes anpassen da ich den Crop Filter vor den logo remover gesetzt habe. Weil der brauch nicht RGB zu croppen über sämtliche Frames, weil das Zeit kostet. Da ist es schneller wenn er das YV12 croppen tut.

    Ich habe halt nur die Cropfunktionund den logo Remover getauscht. Mehr nicht. Da aber die Cropfunktion das Bild beschneidet, musste halt mal den logo remover bezüglich x und y Position mal abändern. Mehr habe ich nicht gesagt.

    Warum du nun dein fertiges encodiertes Video noch mal encodieren willst, weiß Gott nur allein xD Das ist auf jedenfall Schwachsinn was du machen willst xD

    Ancrion schrieb:

    wo genau muss ich das Verhältnis von PAR zwischen DAR und SAR angeben?
    Oder ist das in
    Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor)

    schon angegeben?


    :S Das Ding lässte einfach so jetzt.

    Sagaras schrieb:

    Breite = 720

    Breite = Breite
    Höhe x = Breite * 9 / 16 (Bei Anamorphen Material)

    Ergebnis: 720 x 405 (16:9) (Muss anhand von YV12 auf eine Durch 2 Teilbare Auflösung gebracht werden) -> 720 x 406


    ist das gleiche wie:

    last.width = last.width
    heightx = last.width * 9 / 16

    --> Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor)

    SAR = width / height
    DAR = 16:9
    PAR ergibt sich dann durch den Resizer.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sagaras ()

  • Also wäre das mein fertiges Skript:
    LoadVirtualdubPlugin("C:\Users\Jaro\Desktop\VirtualDubMod\plugins\logoaway.vdf", "logoaway")
    LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\dgindex\DGDecode.dll")
    DGDecode_mpeg2source("C:\Users\Jaro\Videos\2015-07-28_20-10-01_Super RTL_Sams in Gefahr.d2v", cpu=4, info=3)
    LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
    ColorMatrix(hints=true, threads=0)
    #deinterlace
    crop(0, 10, 0, -12)
    ConverttoRGB32()
    logoaway (2, 3407910, 4718612, 0, 0, 4, 0, 66051, 0, 7, "", "", "")
    faktor = 2
    Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor)
    #denoise

    converttoYV12()


    Finde leider kein anderes Logoremover.

    Wie krieg ich das gecropte Video denn in VirtualDubMod, dass ich da Logoaway anpassen kann ? Kann ja nicht ohne Vorschau die X und Y werte anpassen.
    Deswegen meinte ich das ich das gecropte Video encode, tu den Logoaway Filter in dem Ausgabevideo anweden, kopiere den Code raus und füge ihn in das Script, in dem der Crop drin ist, ein.
    Ist also nur 1 mal encodieren, aber das Script 2 mal bearbeiten. Ich brauche hald ein Ausgabevideo mehr, dass ich dann in VirtualDubmod tun kann .

    Oder kann ich die X-und Y Werte auch anpassen, ohne das Gecropte Video in VirtualDubMod zu tun? Gibts da ne Vorschau oder so?
  • Ancrion schrieb:

    Finde leider kein anderes Logoremover.

    Ancrion schrieb:

    logoaway (2, 3407910, 4718612, 0, 0, 4, 0, 66051, 0, 7, "", "", "")


    Ist doch ein Logo Remover. :S

    Ancrion schrieb:

    Wie krieg ich das gecropte Video denn in VirtualDubMod, dass ich da Logoaway anpassen kann ? Kann ja nicht ohne Vorschau die X und Y werte anpassen.
    Deswegen meinte ich das ich das gecropte Video encode, tu den Logoaway Filter in dem Ausgabevideo anweden, kopiere den Code raus und füge ihn in das Script, in dem der Crop drin ist, ein.
    Ist also nur 1 mal encodieren, aber das Script 2 mal bearbeiten. Ich brauche hald ein Ausgabevideo mehr, dass ich dann in VirtualDubmod tun kann .


    Nein, brauchst du nicht.

    Wenn du das über VDub anpassen willst, machste folgendes:

    Dein Skript sieht dann so aus:

    Quellcode

    1. LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\dgindex\DGDecode.dll")
    2. LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
    3. faktor = 2
    4. DGDecode_mpeg2source("C:\Users\Jaro\Videos\2015-07-28_20-10-01_Super RTL_Sams in Gefahr.d2v", cpu=4, info=3)
    5. ColorMatrix(hints=true, threads=0).crop(0, 10, 0, -12)
    6. Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor)


    Sprich ohne den Logo Remover.
    Das Skript kann Virtual Dub öffnen, sofern du AVISynth auf deinen Rechner installiert hast.

    In VirtualDub wird dir dann das Skript als normals Video angezeigt.

    Wenn du im Plugin Ordner von VDub das Plugin vom Logo Remover "logoaway" reinkopierst, kannst du über VDub den Filter nutzen. Dieser wird dort eine GUI Oberfläche besitzen dann.

    Brauchst ja den Logo Remover nicht im Skript anwenden, wenn du ihn in VDub anwenden willst.

    In VDub kannste dann via Frameserver das Video wieder in AVISynth laden und das Video entsprechend MeGUI wieder geben.

    Somit haste folgendes Schema:

    Quell Video -> AVISynth -> VDUB (logoaway) - VDub Frameserver -> AVISynth -> MeGUI -> fertiges Video

    Kein encodiertes Zwischenvideo. Alles in eins durch. Und nur ein Encode.

    Kannst dir das mit Vdub auch sparen, da du ja in dein momentan jetzigen Skript den Logo Remover drin hast.

    Quellcode

    1. LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\dgindex\DGDecode.dll")
    2. LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
    3. LoadVirtualdubPlugin("C:\Users\Jaro\Desktop\VirtualDubMod\plugins\logoaway.vdf", "logoaway")
    4. faktor = 2
    5. DGDecode_mpeg2source("C:\Users\Jaro\Videos\2015-07-28_20-10-01_Super RTL_Sams in Gefahr.d2v", cpu=4, info=3)
    6. ColorMatrix(hints=true, threads=0).crop(0, 10, 0, -12).ConverttoRGB32()
    7. logoaway (2, 3407910, 4718612, 0, 0, 4, 0, 66051, 0, 7, "", "", "")
    8. Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor)
    9. converttoYV12()
    Alles anzeigen


    Wenn du AVSPmod hättest, hätteste für AVISynth eine direkte Vorschau gehabt und hättest darüber auch dein Logo Remover "logoaway" entsprechend einstellen können.

    Wäre um einiges schneller später beim Encode.

    Weil dann hätteste halt dieses Schema:
    Quell Video -> AVISynth -> MeGUI -> fertiges Video

    Was auch nur ein Encode wäre.


    Du siehst... nirgends muss ich 2 mal encodieren. Alles nur einmal.
  • Danke - AVSPmod hab ich sogar :=)

    LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\dgindex\DGDecode.dll")
    LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
    LoadVirtualdubPlugin("C:\Users\Jaro\Desktop\VirtualDubMod\plugins\logoaway.vdf", "logoaway")

    faktor = 2

    DGDecode_mpeg2source("C:\Users\Jaro\Videos\2015-07-28_20-10-01_Super RTL_Sams in Gefahr.d2v", cpu=4, info=3)
    ColorMatrix(hints=true, threads=0).crop(0, 10, 0, -12).ConverttoRGB32()
    logoaway (2, 3407910, 4718612, 0, 0, 4, 0, 66051, 0, 7, "", "", "")
    Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor)
    converttoYV12()


    Wegen dem Crop muss ich doch Logoaway nochmal anpassen . Das geht doch am Besten in virtualdub ?

    weil da
    logoaway (2, 3407910, 4718612, 0, 0, 4, 0, 66051, 0, 7, "", "", "")
    sind irgendwelche Zahlen an, bei denen ich nicht weiß, was sie bedeuten und wie ich sie so bearbeite, dass es das Logo genau überdeckt. In VirtualDub kann ich ein Kästchen anzeigen lassen, das zeigt, was alles überdeckt wird.
    Oder versteh ich das grad falsch und man kann Logoaway doch einfach in AVSPmod anpassen ohne VirtualDub?

    Wenn ich das erste Skirpt von dir

    Quellcode

    1. LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\dgindex\DGDecode.dll")
    2. LoadPlugin("C:\Users\Jaro\Desktop\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
    3. faktor = 2
    4. DGDecode_mpeg2source("C:\Users\Jaro\Videos\2015-07-28_20-10-01_Super RTL_Sams in Gefahr.d2v", cpu=4, info=3)
    5. ColorMatrix(hints=true, threads=0).crop(0, 10, 0, -12)
    6. Spline36Resize(last.width * faktor,(last.width * 9 / 16) * faktor)


    in Virtual Dub öffnen will, kommt diese Meldung in VirtualDubMod:



    ich denke, mir fehlt ein Codec, wieso es für den Logoaway auch RGB32 vorraussetzt, oder?


    Was genau ist der VirtualDub Frameserver? Wo finde ich den, was muss ich da machen?

    Ist es das:



    Daraus kommt eine vdr Datei. Was mache ich dann mit der? In den Fileindexer von Megui ?

    Ich brauch doch das nicht nochmal in avs zu tun, wenn ich logoaway drauf hab.
    Ich kann auf "Save Processing Settings" gehen, dann habe ich diese Zeile
    logoaway (2, 3407910, 4718612, 0, 0, 4, 0, 66051, 0, 7, "", "", "")
    und die füg ich in mein vorhandendes Skript ein, dann brauch ich ja kein neues Skipt von VirtualDub.

    __________________________________________________________________________________________________________


    ich hatte die falsche VirtualDub Version :D

    Habe jetzt aber trotzdem DivX installiert. Ist das Ok oder verwuschtelt das nur den PC? Kann das Skript auch ohne DivX öffnen jetzt - ist besser ich lass DivX weg oder - hab mir noch MagicYUV geholt das soll ja ganz gut sein :)

    Kann jetzt also Logoaway in VirtualDub anwenden und den Code rauskopieren, den ich dann in das vorhandene Skript einfüge.

    Du hast ja in dem Schema gesagt, dass ich was mit dem Frameserver machen
    muss und dass wieder mit Avisynth in Meguio,
    aber ich hab ja schon ein
    Skript, in das ich dann einfach den Logoaway Code reintun kann.

    Versteh ich das so richtig?


    EDIT:

    In VirtualDub geht das Logoaway nicht so, wie in VirtualDubMod.

    Da passen die Koordinaten hinten und vorne nicht, wenn ich de Zeile (
    2, 6815784, 9371678, 0, 0, 4, 0, 66051, 0, 7, "", "", "" ) in das Skript kopiere.




    In VirtualDub hat das noch gepasst..
    Öffne ich das Script aus dem Bild wieder in VirtualDub ist der Logoremover auch so verschoben.

    Also ich lade das Skript ohne Logoaway in Virtualdub - tu Logoaway passend drauf - kopiere den Code in das Script und plötlzich passt es nicht mehr

    Dieser Beitrag wurde bereits 16 mal editiert, zuletzt von Ancrion ()