• Hallo,

    bitte steinigt mich nicht, wenn die Frage hier schon beantwortet wurde, aber ich hab nix gefunden:

    Habe ein Matroska File, Avi-Mux GUI zeigt mir als Inhalt für den Videostream "VMPEG4/ISO/AVC" an.

    Wie kann ich das Video (Audio spielt erstmal keine Rolle) möglichst einfach zu XviD encoden?

    Habe den XviD-Codec sowie FFDSHOW installiert.

  • "VMPEG4/ISO/AVC" ist ein mit x264 oder mit einem anderen MPEG-4 AVC Encoder erstellter Stream, d.h. ob "VMPEG4/ISO/AVC" oder x264 ist egal.
    Grob sollte dein Vorgehen so laufen:
    1. mit mkvextract den Videostream extrahieren
    2. mit DGAVCDec den Videostream indexieren (erzeugt eine .dga Datei)
    3. mit Avisynth und AVCSource die .dga Datei öffnen
    4. das Avisynthskript dem Encoder deiner Wahl als Quelle geben und den Videostream umwandeln

    Alternativ könnte man auch solche Tools wie avi2dvd, mediacoder oder SUPER versuchen.

    Cu Selur

  • "VMPEG4/ISO/AVC" ist ein mit x264 oder mit einem anderen MPEG-4 AVC Encoder erstellter Stream, d.h. ob "VMPEG4/ISO/AVC" oder x264 ist egal.

    Ok, hab ich soweit verstanden, danke für die Info.

    1. mit mkvextract den Videostream extrahieren

    Ok, sollte kein Problem sein

    2. mit DGAVCDec den Videostream indexieren (erzeugt eine .dga Datei)

    Sollte ich auch hinbekommen.

    3. mit Avisynth und AVCSource die .dga Datei öffnen

    Hierbei bräuchte ich etwas Hilfe. Wie ist die genaue Vorgehensweise?

    4. das Avisynthskript dem Encoder deiner Wahl als Quelle geben und den Videostream umwandeln

    Hier bräuchte ich auch (wenns geht) eine Schritt für Schritt Anleitung, danke.

  • 1. Avisynth installieren.
    2. DGAVCDecode.dll die mit DGAVCDec kommt ins Avisynth plugins verzeichnis kopieren
    3. Textdatei mit .avs Endung erstellen und da folgendes reinschreiben:
    AVCSource("Pfad zur .dga Datei")
    also z.B. AVCSource("x:\test.dga")
    4. .avs Datei in Virtual Dub öffnen, Video auf Fast Recompress stellen und unter Video->Compression einstellen mit welchen Xvid Einstellungen das File umgewandelt werden soll.
    5. Files -> Save as Avi

    Alternativ zu 4.+ kann man auch andere Tools nehmen die AvisynthSkripte (= .avs Dateien) als Quelle akzeptieren um den Videostream um zu wandeln.

    Cu Selur

    Ps.: Falls nicht klar ist was die ganzen Xvid Einstellungen bedeuten hilft eventuell ein Blick ins 'Wissenswertes rund um Xvid'.

  • 2. DGAVCDecode.dll die mit DGAVCDec kommt ins Avisynth plugins verzeichnis kopieren

    Ok danke, das war eins der Dinge, die mir gefehlt haben.

    Alternativ zu 4.+ kann man auch andere Tools nehmen die AvisynthSkripte (= .avs Dateien) als Quelle akzeptieren um den Videostream um zu wandeln.

    Habe es jetzt soweit, dass ich das AviSynt-Script in meGUI ohne Fehlermeldung öffnen kann und das Video zu sehen bekomme. Hier gibt es jetzt für "XviD" mehrere Profile. Welches ist zu empfehlen (möchte die höchstmögliche Qualität erzielen, das Encoding kann ruhig ne Weile dauern)? Hab jetzt mal "XviD '>90% comp. check'(HQ)" eingestellt. Ist dies zu empfehlen?

    Dann fehlt mir noch die Möglichkeit irgendwo einzustellen, wie groß das erzeugte Video werden soll.

    Habe das AviSynth Skript auch mal in VirtualDub bzw. VirtualDubMod geladen, kann es dort auch abspielen, nur wenn ich es in XviD encoden will (egal ob ich "Fast Recompress" oder "Full Processing Mode" einstelle, "Compression" ist natürlich XviD mit verschiedenen Einstellungen) erhalte ich folgende Fehlermeldung:

    Error! Statsfile not found! --> OK

    VirtualDub Error: Cannot start video compression: The operation is not supported. (error code -1) --> OK

  • Die Xvid Profile in MeGui würde ich persönlich alle nicht empfehlen. :)

    Zitat

    Dann fehlt mir noch die Möglichkeit irgendwo einzustellen, wie groß das erzeugte Video werden soll.


    Das liegt daran, dass Du ein 1pas Encoding Profil gewählt hast.
    Denke Du solltest mal ins MeGui Essentials gucken, da hab ich mal einiges zu MeGui und der Xvid Konfiguration zusammengestellt. (Hab zur Unterstützung mal ein Xvid Profil angehängt was als Basis für Automated 2pass Encoding sinnig ist. Qpel&GMC sollte man eventuell auch noch aktivieren, guck Dir diesbezüglich mal die Beschreibung im MeGui Essentails an.)

    Zitat

    Error! Statsfile not found! --> OK


    Was darauf hinweist, dass Dir nicht klar ist was es mit 2pass Encoding auf sich hat. Du willst einen 2ten Encoding-Durchlauf vor dem ersten Encoding Durchlauf durchführen. ;)

    Cu Selur

  • Das liegt daran, dass Du ein 1pas Encoding Profil gewählt hast.

    Nö, hatte 2-Pass gewählt, aber habs mittlerweile gefunden.


    Denke Du solltest mal ins MeGui Essentials gucken, da hab ich mal einiges zu MeGui und der Xvid Konfiguration zusammengestellt.

    Wo finde ich das?



    Was darauf hinweist, dass Dir nicht klar ist was es mit 2pass Encoding auf sich hat. Du willst einen 2ten Encoding-Durchlauf vor dem ersten Encoding Durchlauf durchführen. ;)

    Aha!

  • Selur, vielen vielen Dank. Dank Dir habe ich es jetzt hinbekommen (hoffe ich zumindest). Ich rekapituliere nochmal (vielleicht kannst mir noch sagen, wo ich noch was besser machen kann):

    Folgendes habe ich gemacht:

    1. Ausgangsfile ist ein H264-Video (V_MPEG4/ISO/AVC) im Matroska-Container (*.mkv)

    2. Video mittels MKVextract(GUI) (MKVtoolnix) extrahiert --> Ergebnis ist ein reines Videofile mit der Endung *.h264

    3. Video mittels DGAVCDec (DGAVCIndex) indexiert (File --> Save Project: hoffe das ist richtig). Ergebnis ist ein *.dga-File

    4. AviSynth installiert und die "DGAVCDecode.dll" (von DGAVCDec) ins Plugins-Verzeichnis von AviSynth kopiert.

    5. Eine Textdatei mit folgendem Inhalt erstellt:

    AVCSource("Pfad zur .dga Datei") also z.B. AVCSource("c:\x.dga")

    und dieses mit der Endung .avs abgespeichert.

    6. meGUI installiert und die Dateien aus Deinem "Xvid - MeGui - 2pass.zip" ins Installationsverzeichnis von meGUI kopiert

    7. Das AviSynt-Skript (*.avs) mit meGUI öffnen, unter "Codec" "XviD" auswähen und das File Format auf "AVI" stellen (ist halt mein Favorit ;)). Unter "Video profile" "Xvid" (Das von Dir erstellte Profil) auswählen. "Tools --> Bitrate Calculator" auswählen und unter "File Size" die gewünschte Größe angeben. Mit "Apply" bestätigen und im Hauptfenster von meGUI ("Input") neben "Video profile" auf "Config" klicken zur Kontrolle, ob die Bitrate übernommen wurde. Die Nachfrage, ob die Änderungen im Profil gespeichert werden sollen, verneinen und das ganze mit "Enqueue" dem Queue zufügen. Auf den Reiter "Queue" wechseln und mit "Start" den Encoding-Prozess starten (Vorher, sofern noch nicht geschehen, einen Worker definieren ("Workers --> Create new Worker").

    Hoffe, das funzt jetzt so. Wie gesagt, falls etwas falsch ist bzw. etwas besser/einfacher gemacht werden kann, wäre ich dabkbar für eine Info, ansonsten vielen, vielen Dank nochmal für die schnelle Hilfe.

  • zu Punkt 2->3, da musste eventuell die Endung per Hand von h264 auf 264 Ändern damit DGAVCDec die Datei annimmt.

    zu 6.: MeGui starten, File->Import Profiles und die zip Datei auswählen damit das Profil importiert wird. :)

    zu 7.:
    .avs Datei öffnen, das von mir erstellte Profil auswählen, 'Auto Encode' drücken Zielgröße angeben und Container festlegen -> enqueue. Dann halt Worker erstellen wenn noch keine existieren und Queueabarbeitung starten.

    Cu Selur

    Ps.: Wie gesagt schmöcker mal MeGui Essentials, da sollte eigentlich alles brauchbar erklärt sein, auch wenn die Graphische Oberfläche leichte Änderungen erfahren hat.

  • zu Punkt 2->3, da musste eventuell die Endung per Hand von h264 auf 264 Ändern damit DGAVCDec die Datei annimmt.

    Nicht nötig, geht auch so...


    zu 6.: MeGui starten, File->Import Profiles und die zip Datei auswählen damit das Profil importiert wird. :)

    Meine Methode müsste doch auch funktionieren oder nicht? Zumindest kann ich als Video profile "Xvid" auswählen.

    zu 7.:
    .avs Datei öffnen, das von mir erstellte Profil auswählen, 'Auto Encode' drücken Zielgröße angeben und Container festlegen -> enqueue. Dann halt Worker erstellen wenn noch keine existieren und Queueabarbeitung starten.

    Ist mein Weg nicht etwas besser oder nur mehr Arbeit und ändert am Ergebniss nix?

    Ps.: Wie gesagt schmöcker mal MeGui Essentials, da sollte eigentlich alles brauchbar erklärt sein, auch wenn die Graphische Oberfläche leichte Änderungen erfahren hat.

    Jo, würd ich ja gern nur leider musst mir noch sagen, wo ich das finde ;).

  • Zitat

    Meine Methode müsste doch auch funktionieren oder nicht? Zumindest kann ich als Video profile "Xvid" auswählen.


    Ja, machte früher nur Probleme wenn man mehrere Profile auf diese Art importieren will, weshalb ich dazu raten würde die zum Importieren vorgesehenen Funktionen zu nutzen.

    Zitat

    Ist mein Weg nicht etwas besser oder nur mehr Arbeit und ändert am Ergebniss nix?


    Ergebnis sollte gleich sein.

    Zitat

    Jo, würd ich ja gern nur leider musst mir noch sagen, wo ich das finde


    Boardsuche oder Google sollten eigentlich beide Downloadlinks anzeigen, damit Du nicht suchen musst:
    http://www.flaskmpeg.info/board/thread.php?threadid=6092

    Cu Selur

  • Boardsuche oder Google sollten eigentlich beide Downloadlinks anzeigen, damit Du nicht suchen musst:
    http://www.flaskmpeg.info/board/thread.php?threadid=6092

    Thx.

    Sorry, aber zwei Fragen hätt ich noch: Wenn ich es nach meiner Methode (und ich denke mal bei "Auto Encode" müsste es das gleiche sein) mache, wird das Video länger als das Original (denke er encodet mit NTSC 23,976 FPS obwohl die Source PAL mit 25 FPS ist (o.k. das kann man nachträglich noch fixen, oder vorher einstellen), komisch ist nur, dass das Source-Video unter VirtualDub o.ä. auch mit 23,976 Frames angezeigt wird (die Xvid-Version ist nach dem Encoden aber ca. 2 min. länger???).

    Das zweite Problem:
    Die Xvid-Auflösung ist nach dem Encoden riesig (960 x 720), kann ich das irgendwie ändern (also vorher eine geringere Auflösung wählen)?

    EDIT:
    Ich habe den AviSynth-Befehl "BilinearResize" bzw. "BicubicResize" gefunden. Ich trage das mal in das Avisynth Skript ein und schaue, ob es funktioniert.

  • Also MeGui encoded immer nur mit der Framerate die es vorfindet, außerdem wenn Virtual Dub auch sagt, da steckt 23,976fps NTSC drinne, dann ist die Wahrscheinlichkeit, dass Du mit PAL und 25fps falsch liegst schon recht hoch. ;)

    Die Länge des Files sollte sich nicht ändern,...

    Anstatt Bilinear oder Bicubic würd eich Gauss empfehlen.

    Cu Selur

  • Anstatt Bilinear oder Bicubic würd eich Gauss empfehlen.

    Ist "GaussResize(*Wert1*,*Wert2*, p=*Wert*)" korrekt und was bedeutet das "p" und welchen Wert soll ich hier eintragen?

    EDIT:
    o.k. habe gefunden, dass "p" die Schärfe angibt, versuche mal den höchstmöglichen Wert von 100 und schaue wie das Ergebnis wird...

    Ach ja, das Video ist PAL wird aber mit 23,976 FPS in VirtualDub angezeigt. Warum auch immer...? Wenn ich manuell 25 FPS eingebe stimmt die Länge.

  • p=50 oder p=75 würde ich nehmen.

    Zitat

    Ach ja, das Video ist PAL wird aber mit 23,976 FPS in VirtualDub angezeigt. Warum auch immer...? Wenn ich manuell 25 FPS eingebe stimmt die Länge.


    Dann stimmt irgendwas mit deinem Material oder der Verarbeitungskette nicht. Eine unpassende PAL<->NTSC Wandlung führt i.d.R. zu Synchronitätsproblemen.

    Cu Selur

Jetzt mitmachen!

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