VHS-Material mit VirtualDub / StaxRip restaurieren (filtern per VDF / AviSynth)

  • :wall: Warum öffnest du ein AVI mit DirectShowSource statt mit AviSource?
    __

    Noch mal ausführlicher zu den Effekten:

    a1) Video ist progressiv, man sieht nirgends Interlacing-Streifen:

    AssumeTFF().Bob(): stop-vor-stop-vor
    AssumeBFF().Bob(): stop-vor-stop-vor

    a2) Video ist progressiv field-shifted, man sieht angebliche Interlacing-Streifen:

    AssumeTFF().Bob(): vor-zurück-vor-zurück*
    AssumeBFF().Bob(): vor-stop-vor-stop*

    * oder gegensätzlich


    b1) Video ist interlaced TFF gespeichert

    AssumeTFF().Bob(): vor-vor-vor-vor
    AssumeBFF().Bob(): vor-zurück-vor-zurück

    b2) Video ist interlaced BFF gespeichert

    AssumeTFF().Bob(): vor-zurück-vor-zurück
    AssumeBFF().Bob(): vor-vor-vor-vor


    c) Video wurde interlaced #FF mit Überblendung normgewandelt:

    Assume#FF().Bob(): vor-vor...vvorr-vvorr...

  • Noch mal ausführlicher zu den Effekten:

    Erstmal Danke für die Gesamtübersicht :)
    Die Deutsche bedeutung von BFF + TFF könnte man ja noch mit in die Liste aufnehmen ( Für mich ist so leichter es zu verstehen )

    TFF = Top Field First = Oberes Feld zuerst
    BFF = Bottom Field First = Unteres Feld zuerst


    Warum öffnest du ein AVI mit DirectShowSource statt mit AviSource?

    Habe mich verschrieben! ( DirectShowSource ist für MPEG2 / VOB / DVD )
    Ich war schon an einem Punkt angelangt, den ich jetzt erst mit euch besprechen wollte.

    Gestern Abend habe ich mir mal eine Spielfilm DVD vorgenommen um zu schauen was da mit "Interlaced" oder "Progressiv" und mit BFF + TFF los ist..
    Laut Mediainfo ist das DVD Material: Interlaced / oberes Feld zuerst --> http://img.xrmb2.net/images/353019.png


    Alle Automatiken sind nur Anhaltspnkte, die unter Umständen auch falsch sein können.



    Wenn z.B. MediaInfo sagt das Material ist: Interlaced, kann man sich auf MediaInfo nicht 100%ig verlassen.

    Danach habe ich mal folgendes AviSynth Script ausprobiert:

    Code
    # DVD Film ( VOB Dateien ) unter VirtualDub öffnen DirectShowSource("C:\DVD-FilmXY\1.vob")



    [Blockierte Grafik: http://img.xrmb2.net/images/508589.png

    Cool, nun konnte ich die VOB Datei aufeinmal mit VirtualDub öffnen :)
    VirtualDub kann eigentlich gar keine VOB Dateien verwalten!


    Du solltest hier klar erkennen können, dass VirtualDub eigentlich fast gar nichts macht, außer AviSynth mit dem Codec zu verbinden und die AVI-Datei zu schreiben. Und das ist auch gut so.



    Ich stelle mir das so vor:

    AviSynth decodiert immer!



    AviSynth läuft im Hintergrund und Decodiert die ganze Zeit.
    Von Geisterhand wird ein Spiegel benutzt um das Video in VirtualDub zu projezieren ( In etwa so wie ein Projektor das Bild an die Leinwand überträgt )
    Ist das so korrekt erklärt?


    Jetzt noch kurz die Bildreihenfolge getestet mit folgenden AviSynth script:

    Code
    DirectShowSource("C:\DVD-FilmXY\1.vob") 
    AssumeTFF().Bob()



    Das Bild läuft Vor-Vor-Vor-Vor! Also Interlaced TFF


    --------------------------------------------------------------------------------------------------------------------------------------------------------------
    So nun habe ich mal eine andere Spielfilm DVD ausprobiert und diesmal ging garnix mehr unter VirtualDub :(

    [Blockierte Grafik: http://img.xrmb2.net/images/850447.png

    Was ist das?
    Die Anzeige ist umgesprungen...
    Das Video wird nicht korrekt angezeigt, es Stockt und es lässt sich nicht richtig darstellen.
    Die DVD ist nicht kaputt, denn mit dem VLC Player läuft sie flüssig und korrekt.

    Die andere DVD konnte ich doch auch mit VirtualDub korrekt abspielen, dank AviSynth
    Nur diese läuft nicht :(
    Ich werde die Tage mal noch weitere DVDs testen und sie unter VirtualDub öffnen.
    Vielleicht gibt es einige DVDs die mit AviSynth + VirtualDub nicht so recht zusammen arbeiten wollen?!?

    2 Mal editiert, zuletzt von H264x (17. Januar 2013 um 20:36)

  • Danke, ich wollte gerade aus dem Fenster springen... dann fiel mir auf, dass ich hier gar kein wirkliches Fenster habe, nur Türen. ;)

    Die von DGMPGDec (DGIndex.exe, DGDecode.dll) bereitgestellte Funktion in AviSynth heißt übrigens MPEG2Source. Weil MPEG2 in VOB-Dateien enthalten ist. Und bevor du DVDs verarbeitest, solltest du erst mal "den Hauptfilm" extrahieren, bevor du VOBs in DGIndex.exe öffnest (mit dem Ripper im IFO-Modus oder Movie-Modus, oder mit PGCDemux, wenn schon die komplette DVD auf Platte liegt), denn DGIndex.exe kann nur eine PGC (Programm Chain, logische Video-Einheit) und ein Angle (Video-Winkel) verarbeiten.


    Was AviSynth und VirtualDub angeht: AviSynth ist ein "Frameserver". Der klinkt sich in Windows-Funktionen ein, die noch kompatibel zu Windows 3.x sind, und tut so, als würde er Bild für Bild aus einer AVI-Datei lesen, die nur unkomprimiertes Video (und Audio) enthält. Obwohl da gar keine AVI-Datei ist. VirtualDub fragt: "Ich hätte gern das erste {, zweite, ...} Bild." AviSynth rechnet aus, was dafür zu tun ist (Original-Video lesen, eventuell filtern) und antwortet: "Hier ist das erste {, zweite, ...} Bild." VirtualDub stellt es dann dem Betrachter dar, wenn er sich das anschaut, oder sendet es (im Modus "Fast Recompress" direkt, im Modus "Full Processing" nach Anwendung von VDF-Filtern) an den VfW-Codec, der es für eine neue (echte) AVI-Datei eventuell komprimiert.

  • bei MPEG-2 Material in Mpeg-Containern (mpeg/vob/ts/m2ts/...) -> DGIndex/DGDecode und nicht DirectShowSource verwenden.

    Vielen Dank, gut erklärt :)


    Und bevor du DVDs verarbeitest, solltest du erst mal "den Hauptfilm" extrahieren



    Das mache ich mit dem Programm: DVDShrink ( Ich find PGCDemux zu kompliziert im gegensatz zu DVDShrink )


    01.) DVDShrink starten

    [Blockierte Grafik: http://img.xrmb2.net/images/576571.png]


    02.) DVD öffnen

    [Blockierte Grafik: http://img.xrmb2.net/images/286139.png]


    03.) Kurz warten bis die DVD analysiert worden ist

    [Blockierte Grafik: http://img.xrmb2.net/images/828603.png]


    04.) Bei Hauptfilm - Keine Komprimierung auswählen

    [Blockierte Grafik: http://img.xrmb2.net/images/520139.png]


    05.) Backup erstellen

    [Blockierte Grafik: http://img.xrmb2.net/images/839590.png]


    06.) Kurz warten bis die DVD kodiert worden ist ( Der DVD Film wird jetzt auf die Festplatte geschrieben )

    [Blockierte Grafik: http://img.xrmb2.net/images/601164.png]


    07.) Mit Mediainfo die VOB Dateien kurz auslesen

    [Blockierte Grafik: http://img.xrmb2.net/images/494402.png

    Laut Mediainfo ist das DVD Material: Interlaced / oberes Feld zuerst = TFF
    Das überprüfen wir jetzt mal mit DGIndex..


    08.) DGIndex starten

    [Blockierte Grafik: http://img.xrmb2.net/images/356327.png]


    09.) DVD Verzeichnis auf der Festplatte öffnen

    [Blockierte Grafik: http://img.xrmb2.net/images/421660.png]


    10.) Alle VOB Dateien vom Hauptfilm auswählen

    [Blockierte Grafik: http://img.xrmb2.net/images/987163.png]


    11.) Mit den Pfeiltasten >> langsam durch das Video gehen

    [Blockierte Grafik: http://img.xrmb2.net/images/814139.png

    Krass es sind keine Interlacing-Streifen im Film zu sehen! ( Mediainfo hat sich total getäuscht )
    Das Material ist zu 100% Progressiv

    Jetzt Teste ich noch BFF und TFF bei Progressiv: ( Das Ergebnis ist ganz unten am Ende des Textes bei der Zeile: ## Der DVD Spielfilm macht folgende Effekte ## )



    bevor du VOBs in DGIndex.exe öffnest

    DeMuxxen mache ich mit StaxRip ( Komme ich am besten mit klar, da alles Automatisch abläuft )


    15.) StaxRip starten

    [Blockierte Grafik: http://img.xrmb2.net/images/616471.png]


    16.) DVD VOB Dateien öffnen

    [Blockierte Grafik: http://img.xrmb2.net/images/570751.png]


    17.) DVD VOB Dateien auswählen

    [Blockierte Grafik: http://img.xrmb2.net/images/657452.png]


    18.) Kurz warten bis die VOB Dateien demuxxt sind

    [Blockierte Grafik: http://img.xrmb2.net/images/538464.png

    Code
    "C:\StaxRip\Applications\DGMPGDec\DGIndex.exe" -i "V:\VIDEO_TS\VTS_01_1.VOB" "V:\VIDEO_TS\VTS_01_2.VOB" "V:\VIDEO_TS\VTS_01_3.VOB" "V:\VIDEO_TS\VTS_01_4.VOB" "V:\VIDEO_TS\VTS_01_5.VOB" "V:\VIDEO_TS\VTS_01_6.VOB" "V:\VIDEO_TS\VTS_01_7.VOB" -ia 2 -fo 0 -yr 1 -tn 1 -om 2 -drc 2 -dsd 0 -dsa 0 -o "V:\VIDEO_TS\VTS_01_1 temp files\VTS_01_1" -hide -exit


    19.) Ein neuer StaxRip Temp Ordner entsteht

    [Blockierte Grafik: http://img.xrmb2.net/images/374505.png]


    20.) Inhalt des StaxRip Temü Ordner´s

    [Blockierte Grafik: http://img.xrmb2.net/images/525659.png]

    Der Inhalt von den beiden *.avs Dateien: VTS_01_1_Source.avs + VTS_01_1.avs
    ist:

    Code
    LoadPlugin("C:\StaxRip\Applications\DGMPGDec\DGDecode.dll") MPEG2Source("V:\VIDEO_TS\VTS_01_1 temp files\VTS_01_1.d2v") Crop(0,0, -Width % 8,-Height % 8) ConvertToYV12()


    Jetzt könnte man ja eigentlich hingehen und mit VirtualDub weiter arbeiten?

    Code
    LoadPlugin("C:\StaxRip\Applications\DGMPGDec\DGDecode.dll") MPEG2Source("V:\VIDEO_TS\VTS_01_1 temp files\VTS_01_1.d2v") Crop(0,0, -Width % 8,-Height % 8) ConvertToYV12()Assume[B]BFF[/B]().Bob()

    oder

    Code
    LoadPlugin("C:\StaxRip\Applications\DGMPGDec\DGDecode.dll") 
    MPEG2Source("V:\VIDEO_TS\VTS_01_1 temp files\VTS_01_1.d2v") 
    Crop(0,0, -Width % 8,-Height % 8) 
    ConvertToYV12()
    Assume[B]TFF[/B]().Bob()


    Wenn ich jetzt dieses Script"" mit VirtualDub öffne, sehe ich den ganzen DVD Film / inkl. AssumeBFF().Bob() # oder AssumeTFF().Bob()

    ## Der DVD Spielfilm macht folgende Effekte: ##

    BFF= stop-vor-stop-vor
    TFF= stop-vor-stop-vor

    Das ist ja eigentlich Ideal für das direkte Encoden z.B. nach x264 im MKV container.


    Ist das alles so korrekt erklärt?
    oder gibt es noch irgendwelche Verbesserungsvorschläge?

    2 Mal editiert, zuletzt von H264x (18. Januar 2013 um 18:32)

  • Nicht vergessen zu croppen, falls das Material schwarz Ränder hat.



    Das kommt ganz ganz selten vor, wenn ein Video mal keine schwarzen Ränder hat.
    Croppen musste ich bei meinem Material immer...
    Zum Croppen benutze ich StaxRip :)
    Crop Borders AUTO / Automatisch schneidet mir StaxRip die überflüssigen schwarzen Ränder ab und sagt mir dann die Prozente und gibt mir grünes Licht zum weiter machen..

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Ist das denn so weit korrekt was ich oben geschrieben habe? ( zwar etwas umständlicher, da mit verschiedenen Programmen gearbeitet wird )

    1.) DVD auslesen mit DVDShrink
    2.) Interlaced / Progressiv testen über DGIndex
    3.) VOB Dateien deMuxxen mit StaxRip
    4.) BFF und TFF testen mit VirtualDub
    5.) Encoden mit StaxRip ins gewünschte Zielformat: z.B. x264 im MKV Container


    Ihr Experten macht das bestimmt so?

    1.) DVD auslesen mit PGCDemux
    2.) Interlaced / Progressiv testen über DGIndex
    3.) VOB Dateien deMuxxen mit PGCDemux
    4.) BFF und TFF testen mit VirtualDub
    5.) Encoden mit VirtualDub über ein AviSynth Script ins gewünschte Zielformat...

    Einmal editiert, zuletzt von H264x (19. Januar 2013 um 19:10)

  • Ist das denn so weit korrekt was ich oben geschrieben habe? ( zwar etwas umständlicher, da mit verschiedenen Programmen gearbeitet wird )
    ....
    Ihr Experten macht das bestimmt so?
    ...

    Hallo ?

    Hat jemand von euch zu meinen 2 Fragen noch eine Antwort parat..
    Wäre echt nett :) Danke

  • Zitat

    Hat jemand von euch zu meinen 2 Fragen noch eine Antwort parat..


    Klar, wie viele andere fühlt man sich bei 'Ihr Experten' nur nicht angesprochen,..

    Zitat

    Ist das denn so weit korrekt was ich oben geschrieben habe?


    sieht okay aus vermute ich (nutze DVDShrink nicht)

    Zitat

    Ihr Experten macht das bestimmt so?


    macht jeder etwas anders, persönlich nutze ich z.B. PGCDemux fast nie und Virtual Dub auch nur wenn ich mal gerade ein Avisynth Skript gegenchecken will,..

  • Klar, wie viele andere fühlt man sich bei 'Ihr Experten' nur nicht angesprochen,..

    Das sollte ein Kompliment sein :)
    Soweit ich weiß gibt es kein besseres Forum im Internet, wenn es um perfekte Videobearbeitung geht. ( Die Nr.1 ist das Gleitz Forum german Doom9 )

    sieht okay aus vermute ich (nutze DVDShrink nicht)

    Ok dann bleibe ich bei meiner Methode. ( auch wenn es ein wenig umständlicher ist, mit verschiedenen Programmen zu arbeiten )
    Falls doch irgend jemand einen Fehler oder Verbesserungsvorschläge für die Anleitung finden sollte, würde ich mich über eine kurze Rückantwort freuen :)
    ( http://forum.gleitz.info/showthread.php…ll=1#post433986 )



    Nööö... dann lernst du ja noch nicht mal Grundlagen. Zum Beispiel die, wie man Plugins lädt. Das hast du ja schon im Skript von TDeint gesehen:
    Nun ja, wie würde man wohl systematisch vorgehen? ... Vielleicht schaut man mal in den Quelltext des Funktionsskriptes (QTGMC-3.32.avsi), ob darin nicht doch was dokumentiert ist:


    Bin gerade dabei mein QTGMC Script weiter aufzubauen und habe schonmal folgendes geschafft :)

    Code
    # ========================= # QTGMC = Quick TempGaussMC # ========================= # # Benötigte Core plugins: # # MVTools2 (2.5.11.2 or above) # MaskTools v2 (recommend 2.0a45 or above. Must use the 2.5 version with YUY2) # NNEDI3 (recommend 0.9.2 or above) # RemoveGrain + Repair  Import("C:\AviSynth\QTGMC\QTGMC-3.33.avsi")  # Lade benötigte Core plugins von QTGMC:  LoadPlugin("C:\AviSynth\QTGMC\Core-Plugins\MVTools2.dll") LoadPlugin("C:\AviSynth\QTGMC\Core-Plugins\MT_MaskTools-25.dll") # Must use the 2.5 version with YUY2 LoadPlugin("C:\AviSynth\QTGMC\Core-Plugins\NNEdi3.dll") LoadPlugin("C:\AviSynth\QTGMC\Core-Plugins\RemoveGrainSSE2.dll") LoadPlugin("C:\AviSynth\QTGMC\Core-Plugins\RepairSSE2.dll")  # Mein Quell Video:  AVISource("C:\DWL - VHS Test Capture.avi")# Farbraum umwandeln (Quelle ist TFF)AssumeTFF()ConvertToYV12(interlaced=true)# QTGMC DeInterlace: QTGMC(Preset="Slow") SelectEven()

    Dieses Script habe ich in VirtualDub geladen und siehe da, es funktioniert soweit :)
    Kann ich dieses Script fürs reine DeInterlacen schon mal gebrauchen oder fehlt da noch was?

    Der nächste Schritt / Aufbau meines Scriptes soll folgender sein:

    2.) Rauschminderung

    Schritt für Schritt, sonst komm ich durcheinnander ;)
    Das ist erstmal zur Übung gedacht mit ein paar kurzen Test Videos...


    Ich habe mir mal dieses Script hier angeschaut:

    http://forum.gleitz.info/showthread.php…ischenspeichern

    Vieles davon verstehe ich nicht und nun ist die frage ob ich folgende Befehle für mein Script (siehe Oben) gebrauchen kann?

  • [quot]setmtmode(3,0) = Was bedeutet das?[/quote]

    Zitat

    SetMTmode(int mode, int threads)

    Place this at the first line in the avs file to enable temporal (that is more than one frame is processed at the same time) multithreading. Use it later in the script to change the mode for the filters below it.

    mode int (2, default 1-6)
    there are 6 modes, numbered from 1 to 6.

    • Mode 0 - there is no mode 0 to be set by user. Set to mode 5 or 6 instead.
    • Mode 1 is the fastest but only works with a few filters. - One filter instance per call in script, no guarding from Avisynth, only for filters that are designed for this mode, like distributor().
    • Mode 2 should work with most filters but uses more memory. - One filter instance per call in script, Avisynth guards requests for output. The mode to use with source filters. (Mode 5 will do for them too, but is overkill and should be avoided.)
    • Mode 3 should work with some of the filters that don't work with mode 2 but it is slower. - Each call in script produces N (number of threads) instances of filter. Use for the rest.
    • Mode 4 is a combination of mode 2 and 3 and should work with even more filters but is both slower and uses more memory.
    • Mode 5 is the slowest (slower than not using SetMTMode) but should work with all filters that don't require linear frameserving (that is the frames come in order: frame 0,1,2,...,last).
    • Mode 6 is a modified mode 5 that might be slightly faster.


    A more technical explanation is available here: MT_modes_explained

    threads int = 0
    number of threads to use. Set to 0 to set it to the number of processors available. It is not possible to change the number of threads other than in the first SetMTMode.


    Quelle: http://avisynth.org/mediawiki/MT_support_page

    Zitat

    SetMemoryMax(512) = ist das auf den Arbeitsspeicher bezogen? (512) = 512 MB Ram?


    Ja, aber es beschränkt nur den Arbeitsspeicher den Avisynth selber für seine Variablen nutzen darf. Wenn eines der verwendeten Plugins mehr nutzt wird das Ganze trotzdem crashen. :)

    Zitat

    Ich habe nur 1024 MB Ram in meinem PC verbaut.. ( Soll ich dann bei mir folgenden Wert nehmen )
    SetMemoryMax(1024)


    Auf gar keinen Fall! Du hast ja nicht 1024MB frei die Avisynth nutzen könnte. Von den 1024MB die Du verbaust hast geht ja noch alles ab was andere Programme und die Plugins selber verwenden. (nicht mal sicher ob 512MB nicht schon zu hoch ist, wenn Du QTGMC, eventuelle Rauschminderung und noch einen Encoder laufen lassen willst.)

    Cu Selur

  • Bin gerade dabei mein QTGMC Script weiter aufzubauen und habe schonmal folgendes geschafft :)

    :daumen: Gefällt mir, sieht sauber und aufgeräumt aus, Unterverzeichnisse zum separaten Verwalten der Plugins sind eine gute Sache.

    setmtmode(3,0) # Was bedeutet das?

    http://avisynth.org/mediawiki/MT#Syntax_2

    Verwende den Modus 3 (etwas kompatibler als der schnellste Modus 2, aber etwas langsamer) mit so vielen Threads, wie dein Prozessor Kerne meldet (0 = auto).

    Achtung: Der Aufruf von SetMTMode() mit dem zweiten Parameter sollte möglichst früh im Skript verwendet werden, weil dieser nur einmal verwendet werden darf. Man kann im Verlaufe des Skriptes den Modus umschalten, darf aber nicht mehr die Anzahl der Threads neu festlegen. Modus 5 ist oft vor einem Source-Plugin sinnvoll, danach sind die Modi 2 oder 3 häufig zu finden.

    Es kann sinnvoll sein, die Anzahl der Threads zu begrenzen, auch wenn man viele Rechenkerne hat (bei HyperThreading das doppelte der physischen Anzahl), denn mehr Threads brauchen mehr RAM, und zu viele Threads im falschen Modus können sich bei manchen Plugins auch überraschend quadrieren, wenn diese Plugins selber noch mal multithreaded arbeiten.

    SetMemoryMax(512) # ist das auf den Arbeitsspeicher bezogen? (512) = 512 MB Ram?
    Ich habe nur 1024 MB Ram in meinem PC verbaut.. ( Soll ich dann bei mir folgenden Wert nehmen )
    SetMemoryMax(1024)

    Ja, RAM-Verbrauch in MB.

    Nein, nicht den ganzen RAM reservieren! Windows selber braucht ja davon auch schon einiges. Im Allgemeinen wird nicht mehr als ein Viertel des verfügbaren Speichers für den Prozess empfohlen, für einen 32-bit-Prozess sind das (ohne PAE und LAA-Flag) maximal 2 GB insgesamt, also 512 MB als ein Viertel; du hast nur 1 GB, da wäre 512 MB schon die Hälfte davon.

    Mehr sollte man für AviSynth nur reservieren, wenn man genug Erfahrung damit hat, ob es dadurch instabil wird und abstürzt. Zu wenig kann aber die Geschwindigkeit drastisch reduzieren. Diese Anweisung sollte wirklich zu den allerersten im Skript gehören.

    http://avisynth.org/mediawiki/Non-clip_functions


    Und wozu dienen diese Plugins? ( diese habe ich noch nicht in meinem Script drin stehen )

    Unterschiedliche Rauschfilter und Filter zum abgestuften Anwenden nur auf bestimmte Bildbereiche.

  • Erstmal danke an Selur & LigH :)

    Ich kann leider kein Englisch ( nur ein wenig )

    Verwende den Modus 3 (etwas kompatibler als der schnellste Modus 2, aber etwas langsamer) mit so vielen Threads

    Brauch man den Modus 3 erst wenn man viele Filter aufeinmal verwenden möchte?
    Bis jetzt habe ich ja nur einen einzigen Filter am laufen ( QTGMC DeInterlace )


    wie dein Prozessor Kerne meldet (0 = auto)

    Ich habe einen Intel PC Sockel 775
    Die CPU ist ein DualCore hat 2x3000 MHz (FSB:800)

    Dann könnte ich ja folgende einstellungen machen: Okay? --> SetMTmode(3,2)



    Nein, nicht den ganzen RAM reservieren! Windows selber braucht ja davon auch schon einiges. Im Allgemeinen wird nicht mehr als ein Viertel des verfügbaren Speichers für den Prozess empfohlen

    Als Arbeitsspeicher habe ich 2x512 MB (FSB:400) die im DUAL Channel modus laufen ( 1024 MB Corsair Kit )
    Von meinen Gesamt 1024 MB RAM verbraucht Windows XP ca. xxx MB ( muss ich mal nach schauen )
    Hab sehr viele Sachen unter Windows Dienste deaktiviert ( Internet, Netzwerk, LAN, etc.. )
    Start > Einstellungen > Systemsteuerung > Verwaltung > Dienste
    Der PC soll ja nur zur Videobearbeitung dienen.


    (nicht mal sicher ob 512MB nicht schon zu hoch ist, wenn Du QTGMC, eventuelle Rauschminderung und noch einen Encoder laufen lassen willst.)

    Dieser Wert könnte recht Sicher sein:
    SetMemoryMax(256)

    Oder ich laß #SetMemoryMax() komplett weg, was meint Ihr?


    Hier mal mein Neuer Script Aufbau mit: SetMTMode() + SetMemoryMax()


    Hier gibt es ja noch die Additonal plugins für QTGMC:
    Ich versuch es mal ein wenig zu übersetzen!

  • Brauch man den Modus 3 erst wenn man viele Filter aufeinmal verwenden möchte?
    Bis jetzt habe ich ja nur einen einzigen Filter am laufen ( QTGMC DeInterlace )

    Es geht weniger um die Anzahl von Filtern, mehr um die "Thread-Sicherheit" des Codes; viele Plugin-Programmierer haben sich nie groß Gedanken darum gemacht, was schiefgehen könnte, wenn man ihre Filter mehrfach gleichzeitig ausführen lässt. Wenn man Variablen global statt lokal verwendet, kann es passieren, dass eine Kopie der Filterfunktion Daten liest, die eigentlich für die andere Kopie gedacht waren.

    Modus 2 ist der schnellste, verlässt sich aber darauf, dass die Filter threadsicher sind. Sind sie es nicht ... :zorn:

    QTGMC ist nicht "ein Filter", sondern eine Skriptfunktion, die mehrere Filter verwendet, auch aus Plugin-DLLs. Ist nur eine der Plugin-DLLs nicht threadsicher, ist das ganze Skript ein Risiko bei MT-Ausführung.


    Die CPU ist ein DualCore hat 2x3000 MHz (FSB:800)

    Dann könnte ich ja folgende einstellungen machen: Okay? --> SetMTmode(3,2)

    Ja, für dich ist ',2' OK. Aber andere mit mehr Kernen könnten mehr Threads einsetzen. Nur bei der '3,' weiß ich nicht, ob die schon vor AviSource() günstig ist, vor Quellfiltern empfehlen viele heute eher den Modus 5.

    Wenn dein Prozessor auch HyperThreading kann, würde der Task-Manager vielleicht auch 4 Cores anzeigen. Dann könntest du vielleicht auch mehr als nur 2 Threads ausprobieren.


    Oder ich laß #SetMemoryMax() komplett weg, was meint Ihr?

    Sag mal – :hm: – auch wenn du nur wenig englisch kannst ... aber du solltest wenigstens versuchen, die Dokumentation zu lesen.

    Bei aktuellen AviSynth-Versionen ist 32 MB die Standard-Größe. Reichlich wenig für HD-Video oder aufwändige Filterungen wie mit QTGMC. Erst recht bei "und".

    Früher waren es gar nur 5 MB.


    Die zeilenweise Skript-Analyse überlasse ich anderen... nur allgemein mein Vorschlag zu den Reihenfolgen:

    1) LoadPlugin...
    2) Import...
    3) SetMemoryMax...
    4) SetMTMode(5, #)
    5) ...Source...
    6) SetMTMode(2) für sichere Filter, SetMTMode(3) für Filter, bei denen offiziell bekannt ist, dass sie bei Mode 2 crashen

    3,4,1,2... geht auch, das Beispiel von Propaganda ist nicht falscher als meins.

    Ich bin aber nicht die Autorität, die man hier offiziell zitieren sollte. Ich schreibe häufig nur, was ich von noch schlaueren bzw. erfahreneren Leuten gelesen (und mir gemerkt) habe.


    Kleiner Tipp noch, auch wenn Ostern noch lange hin ist: RAM ist günstig wie selten. Mein Vater hat seinen neuen QuadCore gleich mal mit 16 GB ausstatten lassen, für die Zukunftssicherheit. Wird dein altes Mainboard wohl nicht schaffen... aber auch für ein 32-bit-Windows sollte man die 4 GB heute erreichen.

  • Es geht weniger um die Anzahl von Filtern, mehr um die "Thread-Sicherheit" des Codes; viele Plugin-Programmierer haben sich nie groß Gedanken darum gemacht, was schiefgehen könnte, wenn man ihre Filter mehrfach gleichzeitig ausführen lässt. Wenn man Variablen global statt lokal verwendet, kann es passieren, dass eine Kopie der Filterfunktion Daten liest, die eigentlich für die andere Kopie gedacht waren.

    Also ist es zwingend erforderlich SetMTmode(x,x) miteinzubauen!



    Modus 2 ist der schnellste, verlässt sich aber darauf, dass die Filter threadsicher sind. Sind sie es nicht ...

    Okay, wenn der PC abstürzt, weiß ich dann bescheid :)



    Wenn dein Prozessor auch HyperThreading kann, würde der Task-Manager vielleicht auch 4 Cores anzeigen. Dann könntest du vielleicht auch mehr als nur 2 Threads ausprobieren.

    Ich bleibe bei 2 Threads.
    Der Rechner läuft nebenbei TAG und Nacht bis das Video halt fertig ist :)
    Hab gestern für ein 90 Minütiges VHS Video mit meinem QTGMC script knapp 6 stunden gebraucht bis es fertig DeInterlaced war.



    Sag mal – – auch wenn du nur wenig englisch kannst ... aber du solltest wenigstens versuchen, die Dokumentation zu lesen.
    Bei aktuellen AviSynth-Versionen ist 32 MB die Standard-Größe. Reichlich wenig für HD-Video oder aufwändige Filterungen wie mit QTGMC. Erst recht bei "und".
    Früher waren es gar nur 5 MB.

    Du weißt ja wieviel Arbeitsspeicher ich habe...
    Soll ich SetMemoryMax(256) nehmen?



    6) SetMTMode(2) für sichere Filter, SetMTMode(3) für Filter, bei denen offiziell bekannt ist, dass sie bei Mode 2 crashen

    Gibt es irgendwo eine Liste wo ich schauen kann, welche Filter für welchen SetMTMode sind?



    Kleiner Tipp noch, auch wenn Ostern noch lange hin ist: RAM ist günstig wie selten. Mein Vater hat seinen neuen QuadCore gleich mal mit 16 GB ausstatten lassen, für die Zukunftssicherheit. Wird dein altes Mainboard wohl nicht schaffen... aber auch für ein 32-bit-Windows sollte man die 4 GB heute erreichen.

    Mein Mainboard schafft maximal 2x1024 RAM (DDR1 FSB:400) und dann ist feierabend ;)
    Als Arbeitsspeicher habe ich aktuell 2x512 MB (FSB:400) die im DUAL Channel modus laufen ( 1024 MB Corsair Kit )
    Wie weit komme ich denn damit?



    Die zeilenweise Skript-Analyse überlasse ich anderen... nur allgemein mein Vorschlag zu den Reihenfolgen:

    Hier mal mein Neuer Script Aufbau vom 22.01.2013.
    Wär nett wenn mir jemand sagen könnte, ob mein QTGMC script soweit Okay ist?

  • Du hast jetzt sowohl SetMTMode(3,2) als auch SetMTMode(5,2) drin. Und dann noch mal SetMTMode(2,2). Also doch nicht alles verstanden.

    Außerdem ist der Kern (Core) alles, was AviSynth ausgerechnet ohne ein einziges Plugin schon selber kann. Entweder Core oder Plugin.

    Ich hoffe, das ist so erst mal übersichtlich genug und verdeutlicht die logischen Abschnitte.

  • Bei aktuellen AviSynth-Versionen ist 32 MB die Standard-Größe. Reichlich wenig für HD-Video oder aufwändige Filterungen wie mit QTGMC. Erst recht bei "und".

    Früher waren es gar nur 5 MB.


    Nope. Aus avisynth.cpp (2.6 und 2.5.8):

    2 Mal editiert, zuletzt von Groucho2004 (23. Januar 2013 um 01:32)

  • [quote='H264x','AW: VHS-Material mit VirtualDub / StaxRip restaurieren (filtern per VDF / AviSynth) Arbeitsspeicher habe ich aktuell 2x512 MB (FSB:400) die im DUAL Channel modus laufen ( 1024 MB Corsair Kit )
    Wie weit komme ich denn damit?


    Mit dieser Konfiguration solltest Du etwas mit den Einstellungen experimentieren (SetMemoryMax(), Threads) und Geschwindigkeit und Speicherverbrauch testen. Das geht sehr gut mit AVSMeter weil dieses Programm nur das Script testet (ohne Encoder).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!