Vob-Dateien in einen umkomprimierten Film umwandeln?

  • Hallo,

    ich beschäftige mich erst seit kurzem mit Videobearbeitung und möchte mehrere Aufnahmen auf dem PC Encoden. Da sich mein DVD Rekorder nicht direkt an den PC anschließen lässt, bleibt nur die Möglichkeit die Filme vom auf DVD zu brennen und dann am PC aufzuspielen. Allerdings müssen die Vob-Dateien ja in AVI umgewandelt werden, damit man sie z.B. mit VirtaulDub bearbeiten kann. Dafür habe ich hier im Forum schon mal zwei Programme entdeckt: Gordian Knot und DVD2AVI. Allerdings muss bei beiden ein Codec ausgewählt werden, um die Vob-Dateien umzuwandeln. Aber damit würden diese doch schon encodiert und damit komprimiert werden oder verstehe ich da etwas falsch? Ich möchte nämlich bestmögliche Qualität haben und dafür würde ich gerne das umkomprimierte Material benutzen.

    Danke schonmal im Vorraus

  • :welcome:

    Lies mal, was ein Frameserver so tut, z.B. AviSynth: Alles, was du mit dem Video anstellen willst, kannst du damit per Skriptsprache erledigen, die Bearbeitung wird rein im Hauptspeicher durchgeführt, während der Encoder darauf wartet, dass ihm das fertig überarbeitete Video angeboten wird, und schon wird ein neues MPEG2-Video encodiert, ohne dass man sich die Festplatte mit 'zig Gigabytes vollstopfen müsste.

  • "Ich möchte nämlich bestmögliche Qualität haben und dafür würde ich gerne das umkomprimierte Material benutzen."

    1. Avisynth installieren
    2. vobs auf 1:1 Platte kopieren
    3. DGIndex runterladen und entpacken DGDecode.dll ins Avisynth plugin Verzeichnis kopieren
    4. vobs in DGIndex öffnen, neues Project erstellen
    (hierbei sollte nun eine .d2v Datei erstellt werden und der Audiostream extrahiert werden; ich gehe davon aus; ich gehe davon aus, dass der Audiostream nicht bearbeitet werden soll, falls doch bräuchte man später noch Nic's Audiofilter in Avisynth)
    5. TextDatei mit folgendem Text erstellen:
    Mpeg2Source("Pfad zur .d2v Datei")
    und mit der Endung .avs Speichern
    6. .avs Datei in Virtual Dub öffnen
    -> Virtual Dub kann hierdurch auf den Videostream .vobs zugreifen ohne das ein zustätzlicher Kompressionsschritt von Nöten ist.

  • Vielen Dank für die Anleitung, soweit hat alles reibungslos geklappt und die VOB-Dateien ließen sich in VirtualDub öffnen. Nur was die Audio-Datei betrifft gibt es ein Problem. 54MB sind mir etwas zu groß, sollte dann doch etwas komprimiert werden. Unter Nic's Audiotool konnte ich nichts genaues finden, bin aber dann auf dieser Seite gelandet: http://nic.dnsalias.com/nixaudiostuff.html Meinst du diesen Filter? Nur welches Audio-Format wäre am besten geeignet? Ich will beide Tonkanäle, also rechts und links beibehalten. Bevor ich die Datei aber bearbeiten kann stehe ich vor einem anderen Problem. Bei dem Video handelt es sich um einen Anime, der nun Interlace-Effekte hat. Ich habe hier (http://www.animedigital.de/ntscpal.htm) eine Anleitung gefunden, um das Problem zu beheben, allerdings wird dabei das Video ja etwas beschleunigt. Da man am DVD Rekorder nur grob schneiden kann, sind am Anfang und am Ende der Folge noch ein paar Sekunden, die ich wegschneiden möchte. Nur wie lässt sich nachher noch feststellen, wie viel dann am Anfang und am Ende von der Audiodatei weggeschnitten werden muss, damit der Ton zum Bild synchron bleibt?

  • "Ich möchte nämlich bestmögliche Qualität haben und dafür würde ich gerne das umkomprimierte Material benutzen."


    Die VOB-Dateien mit DGIndex zu dekomprimieren und in unkomprimierter Form an VirtualDub zu schicken, macht die Qualität auch nicht besser! VOB-Dateien sind bereits reduziert, da MPEG-2 an sich verlustbehaftet ist. Du kannst also bestenfalls dafür sorgen, dass in deinen Zwischenschritten keine weiteren (unnötigen) Verluste auftreten. Dann kannst du aber genau so gut die VOB-Dateien direkt in VirtualDub öffnen, ganz ohne den Umweg über DGIndex/Avisynth. Für dieses Zweck gibt es extra ein MPEG-2 Plugin für VirtualDub. Avisynth lohnt sich nur, wenn du zusätzlich Avisynth Filter einsetzen willst. Und schließlich musst du bedenekn, dass beim Enkodieren zwangsläufig noch einmal verluste auftreten. Es sei denn, du konservierst dein Ergebnis in einem "verlustfreien" Format wie HuffYUV oder FFV1...

    Übrigens ist auch das Programm "Avidemux" durchaus einen Blick wert :)
    http://forum.doom9.org/showthread.php?t=126164

  • tach auch !

    Der Grundansatz ist aber schon nur schwach sinnig.


    MPG in VOB ist schon heftig komprimiert und ein Endformat.
    Das wird auch nicht mher besser, wenn man es unkomprimiert speichert.
    Was weg ist ist weg.
    Bearbeiten läßt sich MPG schon , nur eben mit EInschränkungen.
    Und mehrfaches Umwandeln kostet wieder Qualität.

    Vielleicht solltest Du überlegen , ob einfaches Schneiden und vielleicht noch ein paar Übergänge mit Smart Rendering und das sonstige Belassen in MPG und Abspeichern als Video-DVD nicht völlig reciht.

    Wie gesagt : Jede Wandlung kostet Qualy und man kann aus Sch*** kein Gold machen. ;)

    Gruss BergH

  • Selur:

    Mein Script sieht bis jetzt so aus:

    LoadPlugin("D:\Programme\AviSynth 2.5\plugins\TDeint.dll")
    LoadPlugin("D:\Programme\AviSynth 2.5\plugins\NicAudio.dll")
    NicAC3Source("D:\Temp\VTS_01_1 T01 2_0ch 384Kbps DELAY 80ms.ac3")

    Mpeg2Source("D:\Temp\VTS_01_1.d2v")
    LeakkernelDeint(order=1,sharp=true)
    # Dieser Filter erkennt die Bewegung und deinterlaced entsprechend die Videoquelle
    # TomsMoComp(1,10,1)
    crop(12,2,-10,-4)
    Lanczos4Resize(720,576)

    Eventuell muss ich noch was anderes fürs Deeinterlacen probieren, da der jetztige Filter etwas ruckelig ist.


    bergh:
    Ok, stimmt schon, die Datei ist bereits komprimiert, aber im Verhältnis dazu was man noch machen kann ist sie mit über 1 GB viel zu groß, als das ich sie so belassen will. Ist ja so ähnlich wie mit Bildern, ein Bitmap ist auch riesig, aber wenn man es als JPG in guter Qualität abspeichert sieht es trotzdem gut aus, ist aber viel kleiner.

  • Versuch mal:

    Code
    LoadPlugin("D:\Programme\AviSynth 2.5\plugins\TDeint.dll")
    LoadPlugin("D:\Programme\AviSynth 2.5\plugins\NicAudio.dll")
    Video = Mpeg2Source("D:\Temp\VTS_01_1.d2v")
    Audio = NicAC3Source("D:\Temp\VTS_01_1 T01 2_0ch 384Kbps DELAY 80ms.ac3")
    Audio = DelayAudio(Audio,0.080)
    Video = Video.TDeint()
    Video = Video.crop(12,2,-10,-4)
    Video = Video.Lanczos4Resize(720,576) # hoffe Du weißt was Du da tust,..
    return AudioDub(Video,Audio)

    Cu Selur

  • Zitat

    Video = Video.Lanczos4Resize(720,576) # hoffe Du weißt was Du da tust,..

    Das Video wieder in seine ursprüngliche Auflösung bringen, oder ist daran was falsch? Durch crop wird ja etwas vom Video weggeschnitten. Daher die nachfolgende Korrektur.
    Mit dem veränderten Befehl fürs Deeinterlacen ruckelt das Video leider immer noch etwas, aber jetzt wird der Ton probemlos erkannt^^

  • Zitat

    Das Video wieder in seine ursprüngliche Auflösung bringen,


    Warum? Sicher das das Material nicht anamorph ist? (Brother John hat da einiges Cleveres auf seiner Homepage zu stehen.)

    Wegen dem Deinterlacer:
    Persönlich würde ich mal Yadif versuchen.

  • Das Video wieder in seine ursprüngliche Auflösung bringen, oder ist daran was falsch?


    Dir ist klar, dass du dadurch das Bild verzerrst? Deine Formulierung klingt eher nicht danach. Sollte an der Stelle vielleicht eigtl. Addborders() anstatt ein Resizer stehen.

    Brother John
    ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
    DVD nach MPEG-4 klappt nicht? Verzweifelt? Auf zum Encodingwissen!

  • Also, zu dem Encodingwissen von der Website, wie ich das verstanden habe sollte also 640x480 genutzt werden? Das mit dem verzerren kann ja eigentlich auch nicht so ganz stimmen, da die normale PAL Auflösung doch 720x576 Pixel beträgt. Die Idee mit dem Addborders versteh ich jetzt gar nicht, man will doch die schwarzen Balken wegbekommen (dafür benutze ich ja crop) und nicht extra hinzufügen?

    Der Yadif Deinterlacer ist eigentlich genauso wie TDeint, Das Bild hat danach zwar keine Streifen mehr, ruckelt aber bei gesamten Bildbewegungen. Ich verzweifel bald mit dem Deinterlacen, gibt es da keinen Filter der das ohne ruckeln schafft?

  • Also wäre es jetzt doch am besten gar nicht zu resizen? Also nur crop und dabei belassen?

    Mit Bobbing meinst du die Parameter von Yadif oder? Da gibt es mode = 1 und Mode = 3. Ich habe einfach mal beide ausprobiert, allerdings konnte ich keinen wirklichen Unterschied feststellen. Beide sind ziemlich gut, das Ruckeln ist kaum noch zu bemerken. Nur welche der beiden Möglichkeiten wäre besser? Und ist das die beste Möglichkeit zum Deinterlacen? Falls ja könnte ich damit gut leben, da das Ruckeln mit diesem Filter wie gesagt so gut wie gar nicht mehr zu bemerken ist. Falls es aber eine noch bessere Möglichkeit gibt, würde ich diese natürlich gerne ausprobieren :)

  • Bobbing ist eine Art des Deinterlacens. Wenn es nach bobbing ruckelt, würde ich vermuten, dass es auch schon vorher geruckelt hat. Beim Bobbing wird jedes HalbBild zu einem Vollbild interpoliert,... Eine grobe Übersicht zum Thema Deinterlacen liefert: http://www.100fps.com/

    Yadif mit mode=1 ist ein bobber, der recht flink ist, qualitativ hochwertigere bobber sind i.d.R. eingies langsamer, vielleicht ganz interessant:
    http://forum.gleitz.info/showthread.php?t=35567

    Cu Selur

  • Ich habe jetzt nochmal eine ganze Weile herumprobiert, da ich eigentlich doch einen normalen Encode haben möchte. Das wären dann aber 25 Frames, nur bei bobbing werden es ja 50 Frames und das ist ja dann auch nicht so das Wahre. Frisst unheimlich CPU-Leistung bei der Wiedergabe und die Datei wird übermäßig groß. Ich hatte dann mit FieldDeinterlace(blend=true) auf den ersten Blick ein perfektes Ergebnis, 25 Frames und kein ruckeln, allerdings sind mir beim genaueren hinsehen dann unschöne Geisterbilder aufgefallen. Dann hab ich im Forum gelesen, dass man Anime wohl nicht so einfach deinterlacen kann, da erst eine Normwandlung stattfinden müsste. Dann hab ich mir r_pack für mrestore besorgt. Leider ist das ziemlich kompliziert und auch durch die kurze Anleitung wird die Bedienung nicht ganz klar. mit der normalen Version bei der nur mrestore() angegeben wird, bleibt das Video interlaced und es ruckelt. Die zweite Möglichkeit deinterlaced das Video, aber es ruckelt wie bei allen anderen Deinterlacern, die ich bisher probiert habe. Hier das Script:

    Mpeg2Source("D:\Temp\VTS_01_1.d2v")
    import("mrestore.avs")
    import("Cdeblend.avs")
    ord = last.getparity() ? 1 : 0
    leakkernelbob(ord,4,true,true)
    mrestore(dclip=last.crop(8,8,-16,-8))

    Die dritte Möglichkeit konnte ich nicht testen, da sie beim Aufruf in VirtualDub zu einem Fehler führt: There is no function named reduceflicker.

    Dann habe ich versucht etwas in der mrestore.avs umzustellen. Das führt aber auch nur zu Fehlern. Ich hatte dort in der ersten Zeile function mrestore(clip clp, int "numr", int "denm", int "mode", float "bf", bool "chroma", int "dup", int "cache", float "rx", float "ry", int "mthr", clip "dclip") die Funktionen angepasst wie in der Anleitung beschrieben, allerdings befinden sich in der Datei die Bezeichnungen wie numr oder denm noch an anderen Stellen. Deshalb hatte ich versucht auch dort etwas umzustellen, aber das hat ebenfalls nichts gebracht. Auch nicht ganz klar ist mir die Funktion von Cdeblend. In der Anleitung steht dabei die Datei auch per import hinzuzufügen. Da dort auch fast diesselbe Einstellung verwendet wie bei mrestore.avs, habe ich die Datei nur per import hinzugefügt, da ich vermute, dass die Einstellung für beide Scripte dient. Doppelte Deinterlace-Filter wären ja auch sinnlos. Wie die Scripts FixBlendIVTC.avs und Interlacing2Reader.avs gebracht werden steht überhaupt nichts. Oder kann es sein, dass sie nur für spezielle Extrafunktionen gebraucht werden, die normalerweise nicht benötigt werden? Hört sich jetzt alles etwas verwirrend an, aber ich habe versucht so genau wie möglich zu beschreiben, wie weit ich bisher mit mrestore gekommen bin. Wo liegt nun der Fehler und wie lässt er sich beheben?

  • Die dritte Möglichkeit konnte ich nicht testen, da sie beim Aufruf in VirtualDub zu einem Fehler führt: There is no function named reduceflicker.

    Dann hast du sicher ein Plugin nicht geladen oder ein Skript nicht importiert, das diese Funktion dann bereitgestellt hätte.

Jetzt mitmachen!

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