VHS-C Bänder digitalisieren

  • Ja, beim Capturen selbst keine Filter anwenden.

    Da du den PICVideo MJPEG Ver. 3 nutzt, lies auch das mal durch:
    http://forum.gleitz.info/showthread.php?t=18735

    Folge: du solltest in AviSource die Option pixel_type="YUY2" angeben:
    Avisource("X:\xxxxxx.avi", Pixel_Type="YUY2")

    Dass auch wirklich in YUY2 gecapturt wird musst du im Capture-Programm angeben. Ich verwende dazu VirtualVCR u. anbei findest du ein PDF mit meinen VirtualVCR-Settings. Weiters habe ich dir auch einen Screenshot meiner MJPEG Einstellungen angehängt, ich nutze aber noch die V2 des PICVideo MJPEG.


    Nun zu deinem anderen Problem:
    Wenn du das Avisynth-Script (also die *.AVS Datei) mittels File / Open video file... öffnest, dann siehst du bereits das Ergebnis der gesamten Avisynth-Befehlskette in VDubMod. Du brauchst den Befehl "Run Script..." nicht!

    Wenn du dann in der AVS-Datei eine Änderung vornimmst u. die Datei abspeicherst, dann brauchst du in VDubMod lediglich F5 zu drücken u. die Datei wird neu (inkl. der soeben gemachten Änderung) geladen und es wird dann auch gleich wieder zum selben Frame gesprungen. Du siehst also die Auswirkung der Änderung sofort.

    Lass mal die Finger von Run Script.. (habe ich bis soeben noch gar nicht gekannt ;))


    Zu VDubMod & RGB: wenn du VDub-interne Filter nutzt, dann musst du in VDub den "Full Processing Mode" aktivieren u. dann wandelt VDub intern selbständig auf RGB (auch wenn das AVS-Script YUY2 liefert). Das sollte man jedoch vermeiden, dann RGB langsamer ist u. jede Farbraumkonvertierung Qualitätseinbussen bringt.

    Da du aber ohnehin AviSynth nutzen willst u. daher alles darüber filterst, brauchst du ja auch keine VDub-Filter nutzen u. kannst daher in YUY2 bleiben, bzw. max. innerhalb des AVS-Scripts mal auf YV12 wandeln falls du einen Avisynth-Filter einsetzt welcher nur YV12 kann.

    Da solltest auf jeden Fall in VDub "Fast Recompress" aktivieren, denn dann wandelt VDub nicht intern auf RGB sondern belässt den Farbraum unverändert so wie vom AVS-Script geliefert u. leitet dies dann direkt an den Encoder durch.

  • Zitat

    AviSource("e:\April_97_-_April_00000.00.avi", Pixel_Type="YUY2")
    Trim(1, 285009)
    Telecide(order=1,guide=2,post=0)

    habe das script nun geöffnet.

    habe nebenbei nochmal vdub aufgemacht und das video dort direkt geöffnet, damit ich die änderung sehe.

    http://cableguy.no-ip.com/Files/Vergleich.bmp <-- verlustfreies bmp-format, dafür 2MB! (:

    ist da nun ein unterschied? oder ist das sowieso noch nix wegen dem falschen farbformat?

    mit VirtualVCR capturen probiere ich heute abend - von arbeit aus kann ich den videorecorder nicht einschalten :D

    danke einstweilen!

    >>>Cyber

    P.S.: ich glaube inzwischen könnte ein mod das thema spalten - hab nicht gedacht dass es so viel anders geht wie ichs probiert habe (:

  • Zitat von Cyber

    ist da nun ein unterschied?

    Nö - kein Unterschied, oder siehst du welchen? Die Kämme sind ja immer noch vorhanden..

    Zitat

    oder ist das sowieso noch nix wegen dem falschen farbformat?

    Dadurch, dass du in AviSource den Parameter pixel_type="YUY2" angibst wird das Video in AviSynth als YUY2 geöffnet. Und damit kann Telecide auch umgehen, ansonsten würdest du eine Fehlermeldung erhalten.

    Aber wie gesagt sollst du versuchen gleich in YUY2 zu capturen.

    Da die Kämme noch immer vorhanden sind, solltest du jetzt Telecide(order=1,guide=2,post=0) ändern auf Telecide(order=0,guide=2,post=0) und erneut gucken ob die Kämme weg sind. Wenn sie weg sind, dann hast du bereits ein progressives Video u. du kannst drauflos filtern (Entrauschen, Resizen, ...).

    Falls jedoch beide Telecide-Varianten nichts bringen, dann ist die wichtigste Frage, was dein Ziel werden soll: MPEG4 (DivX, XviD, ...) od. MPEG2 (SVCD od. DVD).

    Bei MPEG4 od. SVCD würde ich deinterlacen, damit du ein progressives Bild (ohne Kämme erhältst). Wenn Telecide nicht reichte, dann versuche an dessen Stelle einen echten Deinterlacer wie TDeint() od. TomsMoComp(-1,5,0). Dieser muss dann die Kämme zum Verschwinden bringen u. du kannst dann drauflos filtern (Entrauschen, Resizen usw.).

    Bei DVD sollte (falls Telecide kein progressives Bild ohne Kämme erzeugte) nicht deinterlaced werden, sondern das Ziel interlaced bleiben. Ich empfehle dann die Vorgehensweise entsprechend dem PDF "Filtern von interlaced Video.PDF" in meiner Signatur. Entweder den darin "herkömmlichen Weg" mit Zerlegung in even u. odd Field, getrennter Filterung u. Wiederzusammensetzung od. den IMO besseren, aber Zeitaufwendigeren Weg über einen Smartbobber (mvBob, TDeintBob od. TMCBob) und anschl. Reinterlacing.

  • warum kann ich in YUY2 nicht capturen?
    auch bei VirtualVCR habe ich YUY2 nicht zur Auswahl! ):

    auch mit Telecide(order=0,guide=2,post=0) sind bei dem video die kämme nicht weg...

    TomsMoComp(-1,5,0) scahfft es, die kämme wegzumachen, TDeint() mag mein avisynth nicht.

    das ganze soll nach wie vor eine DVD werden.

    werde mich morgen bzw. am montag mal mit dem zeitaufwendigeren weg über einen smartbobber beschäftigen.

    über nacht lasse ich VirtualVCR nochmal capturen, leider nur UYVY ...

    gute nacht! (:

    >>>cyber

  • Moin,


    Zitat

    warum kann ich in YUY2 nicht capturen?
    auch bei VirtualVCR habe ich YUY2 nicht zur Auswahl! ):



    Was hast Du denn zur Auswahl? UYVY z.B.?

    Gruß Karl

  • Zitat von scharfis_brain

    TDeint ist ein Smartbobber

    Na ja, kommt auf die Parameter drauf an ;):
    TDeint() = Deinterlacer ohne Änderung der Framerate
    TDeint(mode=1) =SmartBoober (sozusagen Deinterlacer mit Verdpopplung der Framerate)

  • Zitat von Cyber

    TDeint() mag mein avisynth nicht.

    Was heisst das??? Kommt irgendeine Fehlermeldung? Bitte Probleme immer so genau als nur irgendwie möglich beschreiben, sonst kann das irgendwas bedeuten und kein Mensch weiss dann wie er dir helfen soll...

    Hast du die TDeint.dll irgendwo auf deiner Festplatte liegen u. ladedst diese auch in deinem Script, z.B.:
    LoadPlugin("D:\Programme\AviSynth\plugins25\TDeint.dll")

  • Zitat von Der Karl

    Was hast Du denn zur Auswahl? UYVY z.B.?

    ja, genau, und NUR das!

    Zitat von grua

    Hast du die TDeint.dll irgendwo auf deiner Festplatte liegen u. ladedst diese auch in deinem Script, z.B.:
    LoadPlugin("D:\Programme\AviSynth\plugins25\TDeint.dll")

    genau das war der fehler, hatte die nicht im plugins-ordner von avisynth. ist aber nur gemacht, funktioniert sogar :rolleyes:

    hab nun wieder ein paar vergleiche gemacht.
    http://cableguy.no-ip.com/Files/Vergleich2.bmp <-- achtung, knapp 3 MB!

    das erste fenster ist das originalvideo
    das zweite fenster ist mit "TDeint()"

    das 3. fenster ist mit "TDeint(mode=1)"

    das 4. fenster ist mit "TDeintBob()", wobei die funktion TDeintBob aus grua's PDF kopiert wurde.
    was es bei TDeintBob mit der tff auf dem hut hat verstehe ich nicht ganz ...

    ich habe vor, punkt 3.2 (Video soll interlaced bleiben) aus dem PDF anzuwenden.
    soll ich das Crop(6,12,-4,-16) übernehmen? ich denke das muss ich anpassen, da ich ja noch 720x576 und nicht 704x576 habe, allerdings letzteres brauche, oder?

    den 5zeiligen kommandoblock unter crop: kann ich den auch so verwenden?
    muss ich eventuell "ColorYUV(levels="PC->TV")" änern, da ich ja UYVY habe?
    soll ich generell im script angeben, das video in einem anderen farbformat zu laden? im moment habe ich " AviSource("e:\April_97_-_April_00_VirtualVCR.avi", Pixel_Type="YUY2") "

    spielt punkt 4 (Filtern mit Depan) für mich eine rolle? in 3.2 ist nirgendwo "temporalerRauschfilter()" angewendet! oder habe ich das was falsch verstanden?

    vielen dank! ((:

    >>>Cyber

  • Zitat

    wobei die funktion TDeintBob aus grua's PDF kopiert wurde. was es bei TDeintBob mit der tff auf dem hut hat verstehe ich nicht ganz ...

    Vor dem Aufruf von TDeint sollte stets die Fieldorder mittels AssumeTFF() bzw. AssumeBFF() richtig gesetzt werden! Ob dein Video TFF od. BFF ist kannst du ganz einfach feststellen - wie, das findest du ebenfalls in meiner Signatur.

    TDeint(mode=1) ist das selbe wie TDeintBob():
    Wenn du genau schaust macht TDeintBob je nach Parameter "tff" nichts anderes als AssumexFF().TDeint(mode=1):

    • TDeintBob() ist das selbe wie TDeinbtBob(tff=true) und das wiederum ist nichts anderes als AssumeTFF().TDeint(mode=1)
    • TDeintBob(tff=false) ist hingegen nichts anderes als AssumeBFF().TDeint(mode=1)

    Da es sich bei dir um ein analog Capture handelt nehme ich an, dass das Video TFF ist (aber sicherheitshalber prüfen!)

    Zitat

    soll ich das Crop(6,12,-4,-16) übernehmen? ich denke das muss ich anpassen

    Das sollte nur ein Beispiel sein an welcher Stelle im Script gecroppt werden kann. Du musst das natürlich (!) auf dein Video anpassen, sprich sämtliche unsauberen Ränder an allen 4 Kanten (oben, unten, li + re) wegschneiden, damit du nur noch sauberes Bild hast. Wenn du dann gleich auf 704 x 576 croppst, dann kannst du das lassen. Falls du mehr wegcroppen musst, dann fügst du eben am Ende des Scripts die fehlenden Pixel wieder hinzu, damit du auf 720x576 od. 704x576 kommst.

    Zitat

    da ich ja noch 720x576 und nicht 704x576 habe, allerdings letzteres brauche, oder?

    Ist egal - beides ist DVD-konform. 720 ist nichts anderes als 704 mit beiderseits jeweils 8 Pixel schwarzer Rand. Beides wird am DVD-Standaloneplayer ident dargestellt. Nur Softwareplayer wie z.B. PowerDVD tun sich mit 704 leichter (geben 720 falsch entzerrt wieder).

    Zitat

    muss ich eventuell "ColorYUV(levels="PC->TV")" änern, da ich ja UYVY habe?

    Falls deine Quelle den Farbbereich 0..255 hat, solltest du den Befehl anwenden. Falls bereist auf 16..235 gestaucht, dann kannst du ihn weglassen.

    Zitat

    soll ich generell im script angeben, das video in einem anderen farbformat zu laden? im moment habe ich " AviSource("e:\April_97_-_April_00_VirtualVCR.avi", Pixel_Type="YUY2") "

    Interlaced Video immer möglichst in YUY2 laden.

    Zitat

    spielt punkt 4 (Filtern mit Depan) für mich eine rolle? in 3.2 ist nirgendwo "temporalerRauschfilter()" angewendet! oder habe ich das was falsch verstanden?

    Bei VHS-Captures empfiehlt sich immer zu filtern. temporalerRauschfilter() steht dafür nur als Platzhalter für irgendeinen temporalen Rauschfilter wie z.B. LRemoveDust, FluxSmoothST, Cnr2, RemoveDirt usw. usf. Tip: such mal nach LRemoveDust.

    Ob du den Rauschfilter dann noch zusätzlich in Depan einbettest oder nicht musst du selbst entscheiden (Depan machts langsamer, dafür wird effektiver Entrauscht).

    Zitat

    Die Kämme werden durch TDeint zwar entfernt, sieht aber nach irgendwelchen anderen Störungen aus, welche da immer noch vorhanden sind. Vielleicht kann dazu ja noch wer anderes was sagen ?

  • mein aktuelles script.

    habe das video in YV12 laden müssen, weil bei mir (trotz SSE-prozessor) die sse-tools immer gestreikt haben (LimitChange kann er nicht finden - habe removegrain_25_dll_20050213.zip und masktools_25_dll_20050103.zip im plugins-verzeichnis).

    ich denke dass ich ein TFF-video habe, es ruckelt bei beiden (BFF und TFF), allerdings bei BFF wesentlich stärker.

    alles so in ordnung?

    danke!

    >>>Cyber

  • Stell doch mal ein paar wenige Frames mit Bewegung des Original AVI zur Verfügung. Ich guck dann mal obs wirklich TFF ist ;)

    Ich würde das Video aber nicht in YV12 laden, sondern in YUY2 weil interlaced. Erst nach dem Deinterlacen (nach TDeint) in YV12 wandeln.
    Auch UnDot würde ich lassen, der vereinfacht den nachfolgenden Filtern das Leben.

    Das Script wird dann zu:

    Code
    AviSource("....avi",pixel_type="YUY2")Trim(....)TDeintBob()Crop(...)UnDot()ConvertToYV12()LRemoveDust(...)ColorYUV("PC->TV")FadeOut(...)ReinterlaceBob()


    Frage: sind die Ränder des Videos nach crop(8,0,-8,0) tats. schon sauber? Bei VHS-Captures befinden sich z.B. am unteren Rand immer ca. 10 bis 12 unsaubere Zeilen, welche man unbedingt wegcroppen sollte. Auch sinds oben und seitlich meist ein paar wenige. Es sollten da wirklich keine schwarzen od. ausgefransten Ränder mehr übrig sein, denn das frisst ggf. nur Bitrate welche besser fürs eigentliche Bild übrig bleiben sollte...
    Wenn du mehr wegcroppst kannst du das ja am Ende durch AddBorders wieder durch saubere schware Ränder anfügen um wieder auf 704x576 zu kommen. Z.B.:

    Code
    crop(10,2,-8,-12) # von 720x576 bleiben 702x562
    Nun die gesamte Filterei...
    addborders(2,8,0,6) # macht wieder 704x576 draus


    Bei Crop u. AddBorders immer nur gerade Zahlen verwenden!

  • Zitat von Cyber

    ja, genau, und NUR das!



    UYVY ist doch völlig o.K.! Das entspricht YUY2, wird nur intern in anderer Reihenfolge gespeichert.
    Meine alte Asus konnte auch nur UYVY und ich hatte nie irgendwelche Probleme damit. Qulitativ ist das absolut identisch.

    Gruß Karl

  • Zitat von Der Karl

    UYVY ist doch völlig o.K.! Das entspricht YUY2, wird nur intern in anderer Reihenfolge gespeichert.
    Meine alte Asus konnte auch nur UYVY und ich hatte nie irgendwelche Probleme damit. Qulitativ ist das absolut identisch.

    Damit wäre auch das geklärt - danke Der Karl!

  • Zitat von grua

    Damit wäre auch das geklärt - danke Der Karl!



    Das heißt Danke Dir Karl ,
    oder doch
    Danke Dir Der Karl? ;)

    Ich danke User : Der Karl enebnfalls für das was ich vo ihm gelernt habe. :cool:

    Gruss BergH

  • Zitat von grua

    Stell doch mal ein paar wenige Frames mit Bewegung des Original AVI zur Verfügung.

    ist gemacht ;)

    Zitat von grua

    Ich würde das Video aber nicht in YV12 laden, sondern in YUY2 weil interlaced.

    ich habe da keine wahl weil ich LRemoveDust nur durch die oben geschriebene funktion zu laufen bekomme.
    wenn ich

    Code
    function LRemoveDust(clip input, int _mode, int "limit")
    {
    limit=default(limit,4)
    repmode = 2
    clensed = Clense(input)
    rep=Repair(clensed, input, mode=repmode)
    rg = RemoveGrain(rep, mode=_mode)
    rd=TemporalRepair(rg, rep)
    return LimitChange(rd, input, limit, limitU=255)
    }

    diese funktion für LRemoveDust verwende findet avisynth LimitChange nicht ...

    Zitat von grua

    Frage: sind die Ränder des Videos nach crop(8,0,-8,0) tats. schon sauber? Bei VHS-Captures befinden sich z.B. am unteren Rand immer ca. 10 bis 12 unsaubere Zeilen, welche man unbedingt wegcroppen sollte. Auch sinds oben und seitlich meist ein paar wenige. Es sollten da wirklich keine schwarzen od. ausgefransten Ränder mehr übrig sein, denn das frisst ggf. nur Bitrate welche besser fürs eigentliche Bild übrig bleiben sollte...

    wie du vielleicht am sample siehst hab ich unten schon einen unsauberen rand.
    bin bis jetzt davon ausgegangen dass das daran liegt, dass ich das video nicht mit dem videorecorder, mit dem es aufgenommen wurde, abspiele.
    hab ausserdem gedacht, dass wenn man das am TV nicht sieht (beim abspielen des videos) müsste es doch auch nach dem brennen auf DVD und abspielen am fernseher nicht zu sehen sein? ...

    Zitat von grua


    Wenn du mehr wegcroppst kannst du das ja am Ende durch AddBorders wieder durch saubere schware Ränder anfügen um wieder auf 704x576 zu kommen.

    gut, jetzt habe ich verstanden was diese funktion für einen sinn hat ((:

    Zitat von Der Karl

    UYVY ist doch völlig o.K.! Das entspricht YUY2, wird nur intern in anderer Reihenfolge gespeichert.
    Meine alte Asus konnte auch nur UYVY und ich hatte nie irgendwelche Probleme damit. Qulitativ ist das absolut identisch.

    danke!

    >>>cyber

  • Zitat von Cyber

    ist gemacht

    Kann ich erst morgen in der Arbeit runterladen, da zu Hause begrenzter Traffic...

    Zitat von Cyber

    ich habe da keine wahl weil ich LRemoveDust nur durch die oben geschriebene funktion zu laufen bekomme. wenn ich .... diese funktion für LRemoveDust verwende findet avisynth LimitChange nicht.

    Du kannst ja (so wie ich übrigens auch) die LRD-Variante mit yv12lutxy verwenden, dann brauchst du kein LimitChange. Du musst nur vor dem Aufruf von LRD das Video in YV12 umwandeln. Was davor geschieht ist LRD egal.

    D.h. in der Reihenfolge

    • AviSource("....",pixel_type="YUY2")
    • Trimmen
    • jetzt Deinterlacen z.B. via TDeintBob
    • croppen usw.
    • erst jetzt nach dem deinterlacen in YV12 wandeln via ConvertToYV12()
    • erst nach der Wandlung in YV12 darfst du nun LRD(4,..) aufrufen, jedoch mit yv12lutxy statt LimitChange. LRD wird nun automatisch mit einem YV12-Video gefüttert, da du ja zuvor mit ConvertToYV12() von YUY2 in YV12 umgewandelt hast.

    Gibt's nicht, dass das nicht geht - mach ich immer so ;)

    Zitat

    wie du vielleicht am sample siehst hab ich unten schon einen unsauberen rand.

    wie oben erwähnt kann ich mir das erst frühestens morgen ansehen

    Zitat

    hab ausserdem gedacht, dass wenn man das am TV nicht sieht (beim abspielen des videos) müsste es doch auch nach dem brennen auf DVD und abspielen am fernseher nicht zu sehen sein? ...

    Ja, wird vmtl. im Overscanbereich des TVs liegen und daher nicht sichtbar sein. ABER: unsaubere Ränder stellen für den Encoder Bewegung dar und bewegte Bereiche fressen Bitrate. Dann bleibt weniger Bitrate für das echte Video in der Bildmitte übrig und die Qualität leidet. Wenn man hingegen sämtliche unsauberen Ränder komplett (lieber etwas zuviel als zuwenig) wegcroppt u. anschl. durch addborders wieder durch saubere schware Ränder ersetzt, dann tut sich der Encoder mit diesen sauberen Ränden leichter und es bleibt mehr Bitrate für dort übrig wo man sie auch braucht: fürs eigentliche Video.

  • Zitat von bergh

    Das heißt Danke Dir Karl ,
    oder doch
    Danke Dir Der Karl?

    Zu dir würde ich sagen: "Danke bergh" was als Kurzform für "Danke Dir bergh" zulässig ist. Nun tauscht du den Usernamen bergh gegen den Usernamen "Der Karl" und übrig bleibt "Danke Der Karl". Hab da schon gestern vor dem Tippen stundenlang drüber nachgedacht und bin dann zu dieser Erkenntnis gelangt ;) :lol:

  • habe jetzt mittels crop und addborder alles geschnitten und angefügt.

    auch in die richtige reihenfolge hab ich das script gebracht, jetzt funktionierts LRD auch!

    >>>Cyber

    //Edit: habe mir gerade den ton des videoausschnittes angehört: der ist durchs zuschneiden so geworden, original ist der schon anständig (:

Jetzt mitmachen!

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