Beiträge von grua

    Zitat von kostolany

    Es ist mir nicht möglich, ein für TV und PC richtig darstellbares Video zu erzeugen. Entweder wird es im TV (bei letterboxed 720 x 576) korrekt dargestellt oder im PC (bei 704 x 576).

    Womit machst du die Wiedergabe am TV? Via PC und TV-Out od. Hardware-SAP? Die 704x576 sollten nicht nur am PC, sondern auch am TV richtig aussehen?

    [Edit:] Hab übersehen - hat ja IllCP schon geantwortet... :)

    Zitat von LigH

    Normalerweise sollte ein Software-DVD-Player wie PowerDVD oder WinDVD das Bild vor der Darstellung vergrößern, also die 720 auf entweder 768 oder 1024 Pixel auseinanderziehen.

    Falsch! Der Soft-DVD-Player sollte 702 Pixel auf 768 auseinanderziehen. 720 sollten also auf 768 * 720 / 702 = 788 auseinandergezogen werden. Und genau das machen die meisten Soft-Player wie z.B. PowerDVD falsch - die ziehen die 720 nämlich nicht auf 788, sondern nur auf 768 und dann gibts Eierköpfe.

    Daher authore ich meine DVDs stets in 704x576. Denn die werden von PowerDVD ebenfalls auf 768 entzerrt u. das passt dann (704 annähernd 702).

    Zitat von scharfis_brain

    Wenns auf DVD soll, KEINEN Deinterlacer anwenden.

    Tweak(hue=0,sat=1.5,bright=3,cont=0.9)
    ColorYUV(levels="PC->TV")
    UnDot()

    können allesamt direkt ohne deinterlacing angewandt werden.

    UnDot ohne Deinterlacing? Tatsächlich spatiale Filter auf interlaced Frames loslassen??? :so-nicht:

    Zitat von illCP

    Allerdings ist das "leider" ein Bobber... und 50 fps x264 ist nicht so super...;)<!-- / message --><!-- sig -->

    Nö - nicht leider, sonderm Gottseindank! So hast du die volle Bewegungsinfo zum Filtern und kannst es danach mit SelectEven() od. SelectOdd() wieder auf 25fps progressive bringen od. mit Converttoyuy2().SeparateFields().SelectEvery(4,0,3).Weave() auf 25fps interlaced (letzeres falls es DVD werden sollte).

    Zitat von Fr_An

    Nach dem Analogcapture liegt in der Regel ein AVI vor. Dieses kann man mit VirtualDub(Mod) öffnen. Anschließend werden die herauszuschneidenden Stücke markiert und entfernt. Das Ergebnis kann dann entweder per Direktkopie gespeichert oder Frameserver weiterverarbeitet werden.

    Ja Fr_An, das ist ja klar - aber (das hatte ich im Eingangspost nicht erwähnt) geht es ja auch um Übergänge wie Überblendungen, Titel-FadeIO, ... Das in VDub zu machen kann man IMO vergessen u. mit AviSynth ist sowas sehr sehr unkomfortabel wenn man das mit den grafischen Oberflächen von ausgereiften Schnittprogrammen vergleicht.

    Mit PICVideo Lossless JPEG klappt das in Pinnacle Studio auch alles einwandfrei. Huffy stürzt immer noch ab - aber egal - Hauptsache es gibt einen kompatiblen lossless codec.

    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:

    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 Mr. Brown

    und manche ganz verrückte qualitätsfanatiker bauen sich die wildesten konstruktionen mit mehreren deinterlacern!

    Das wenn unser Scharfi mal liest :ani_lol: :eek:

    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!

    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

    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 ?

    Zitat von incredible

    ?
    So wie du es magst. Und ... wie gut deine Augen sind ;)

    Na ja, die guten alten Eltern sagten ja immer "zu nahe am Fernseher sitzen ist ungesund für die Augen..:". Und im Bauratgeber den ich hier vor mir liegen habe steht eben die Faustregel mit "mind. 5fache Bildschirmdiagonale" drin - aus welchem Grund auch immer...

    Bei meinem derzeitigen 70cm Röhren-TV hab ich dzt. Augenabstand 3m. Geht gerade noch - noch näher möchte ich nicht sitzen. Wäre eben interessant wie ihr das empfindet mit 82cm Röhren-TVs.