x264vfw für Videoschnittprogramme


  • Inhaltsverzeichnis
    1. Was ist x264vfw?
    2. Wann soll ich x264vfw benutzen?
    3. Texttutorial
    4. Hinweise/FAQ
    5. Zusatzinfos
    6. Schlusswort
    7. Changelo
    g

    1. Was ist x264vfw?

    x264vfw ist ein Encoder, also ein Programm welches Videos in ein bestimmtes Format umschreibt und es in diesem Fall auch komprimiert.
    Anders als die schon mitgelieferten Encoder in Videoschnittprogrammen, ist x264 der bisher effizienteste verlustbehaftet komprimierende Encoder. Effizienter bedeutet: Er erzeugt die kleinsten Dateien bei bestmöglicher Qualität und das auch noch schneller (dazu mehr unter Punkt 5: Zusatzinfos).
    Und dank der vfw-Schnittstelle (Video-for-Windows) lässt sich dieser Encoder in fast jedem Videoschnittprogramm einbauen.


    2. Wann soll ich x264vfw benutzen?


    Dafür kannst du ganz einfach diese Checkliste durchgehen:


    1. Hat mein Programm x264 schon von Haus aus als Encoder? (MeGUI, TMPEnc,...)
    → Dann hast du schon das bestmögliche an Effizienz.


    2. Kann mein Programm auf Frameserver zugreifen? (Produkte von Adobe und Sony)
    → Dann solltest du dir ein Tutorial zum DebugMode Frameserver anschauen.


    3. Mein Programm kann weder Möglichkeit 1 noch 2 (Produkte von Magix, Camtasia, ...)
    → Dann bist du hier richtig :D


    3. Texttutorial


    Downloads (3 Programme)


    x264vfw: https://sourceforge.net/projects/x264vfw/


    → Sowohl 32 als auch 64 bit Version installieren!


    MeGUI: https://sourceforge.net/projects/megui/


    → Folgendermaßen einstellen:

    • Options ➤ Settings ➤ Default Output Directory ➥ Hier gebt ihr euer Verzeichnis ein, wo später die Audiodatei geschrieben wird.
    • Options ➤ Settings ➤ Extra Configuration ➤ Auto Update ➤ Use development Update Server
    • Options ➤ Update ➤ Update ➥ Lasst MeGUI jetzt updaten und schließt es danach.

    Mediainfo: https://mediaarea.net/de/MediaInfo


    → Folgendermaßen einstellen:

    • Mediainfo öffnen ➤ Sprache: Deutsch ➤ Ansicht: Text ➤ bestätigen und schließen

    Einstellung des Videoschnittprogramms


    Jedes Videoschnittprogramm ist etwas anders, aber dennoch gleich aufgebaut. Ich werde deshalb die Schritte allgemein erklären, damit sie sich auf jedes Programm anwenden lassen.
    Ihr findet zu Magix die genauen Einstellungen unter Punkt 5 Zusatzinfos.

    • Bevor ihr überhaupt das Video ins Schnittprogramm reinladet, klickt vorher mit Rechtsklick auf das Video ➤ Mediainfo ➤ Bildwiederholungsrate/FPS ➥ Merkt euch die genaue FPS vom Video und gebt sie sowohl beim Import/Einlesen als auch beim Export an (WICHTIG: 30fps ≠ 29.997fps / Richtig: 30fps = 30fps).
    • Falls in der Mediainfo etwas von einer Variablen Bildwiederholungsrate oder einer minimalen oder maximalen Bildwiederholungsrate steht, dann schreibt das bitte in diesen Thread rein, denn euer Video ist in diesem Zustand nicht für die Weiterbearbeitung geeignet.
    • Sucht jetzt in den Export/Render Optionen eures Programmes nach "Rendern/Export/Encode als AVI".
    • WICHTIG! x264vfw funktioniert nicht mit Batchdateien/Stapelverarbeitung.
    • Dort gebt ihr jetzt die genaue FPS Rate ein.
    • Außerdem ist hier irgendwo eine Eingabe für den Speicherordner und den Dateinamen. Stellt euch dafür einen Ordner ein den ihr später wiederfindet und nennt die Datei "audio.AVI" (WICHTIG!!)
    • Wenn ihr das Video für bessere Qualität auf Youtube skalieren wollt (2048x1152, 3200x1800) dann solltet ihr hier die Auflösung ändern.
    • Sucht nach den Einstellungen für den Audioencode und wählt PCM (intern) / Wave 16bit ➥ 4410hz reichen als Frequenz.
    • Sucht nach den Einstellungen für den Videocodec und wählt "x264vfw - H.264/MPEG-4 AVC codec".

    Einstellung von x264vfw


    Basiseinstellungen (auf die markierten Sachen werde ich später noch eingehen):



    Die Standard Command line zum reinkopieren

    Code
    --fps 30.000 --range tv --colorprim bt709 --transfer bt709 --colormatrix bt709 --aq-strength 1.25 --keyint 300 --min-keyint 30


    ➥ WICHTIG: Die FPS entsprechen genau eurer originalen FPS, die ihr schon beim Import und beim Export angegeben habt. Ändert diese daher immer je nach Video ab.
    ➥ min-keyint entspricht dem FPS Wert, keyint entspricht dem 10fachen FPS Wert (Also 60 FPS = --keyint 600 --min-keyint 60).

    Output file


    ➥ Hier gebt ihr den Ordner und den Namen an, wo euer Video hin exportiert wird. Achtet darauf, dass ihr die Datei "video.h264" benennt und, dass sie im selben Ordner wie die "audio.AVI" liegt.


    Einstellung von Qualität, Dateigröße und Codierungsgeschwindigkeit


    Zusätzlich zu den Standardeinstellungen geht es jetzt um die Feinkonfiguration.


    In der gesamten Videokompression gibt es 3 Faktoren die sich gegenseitig beeinflussen und die ihr selber festlegen könnt.


    1. Qualität
    2. Dateigröße
    3. Codierungszeit/Geschwindigkeit


    Welche ihr davon bevorzugt, ist eure Entscheidung. Dennoch kann eure Hardware die Faktoren limitieren.
    ➥ Die Leistung eures PCs (insbesondere CPU und RAM) können die Codierungszeit stark in die Länge ziehen, weshalb man zu Ungunsten der Dateigröße die Geschwindigkeit erhöhen könnte.
    ➥ Die Leistung eurer Internetleitung bestimmt letztlich die maximale Dateigröße, die ihr euch erlauben könnt, weswegen man zu Ungunsten der Geschwindigkeit die Dateigröße verringern könnte.
    ➥ Ist sowohl eure Internetleitung als auch euer PC schlecht, dann müsst ihr sowohl bei der Qualität als auch bei der Dateigröße Abstriche machen


    Zusammengefasst lässt sich sagen: Von den Faktoren Qualität, Dateigröße und Zeit könnt ihr euch zwei auswählen und den Flaschenhals (CPU=Geschwindigkeit, Internet=Dateigröße) rauslassen und so die Codierungsstrategie wählen.


    Bei x264 kann man mit dem CRF (Constant Rate Fakor) und dem Preset die Faktoren beeinflussen.
    ➥ Der CRF Wert bestimmt die Qualität, also wie viel Bitrate durchschnittlich an das Video gegeben wird. Je niedriger der Wert, desto besser die Qualität (zwischen 0 und 50).
    ➥ Das Preset bestimmt die Codierungsgenauigkeit, also wie viel Zeit sich der Encoder für das Video nimmt und nach Komprimierbarkeit sucht. Je schneller das Preset, desto höher die Geschwindigkeit, aber desto höher die benötigte Bitrate pro Qualität. Es kann also die Qualität gesenkt werden oder die Dateigröße steigen.


    PC (CPU) ist der Flaschenhals



    ➤ Ungefähre System Spezifikationen: Internetleitung über 10.000 kbit/s, CPU älter als 5 Jahre, im i5 oder i3 Bereich
    ➤ CRF: 23-18, Preset: Medium oder Fast


    Ergebnis: Größere Datei, schneller Encode, gute Qualität


    Internet (Upload) ist der Flaschenhals


    ➤ Ungefähre System Spezifikationen: Internetleitung unter 10.000 kbit/s, CPU jünger als 5 Jahre, im i5 oder i7 Bereich
    ➤ CRF: 23-18, Preset: Slow
    ➤ OPTIONAL (wenn die Datei noch zu groß wird): Zusätzliche Befehle in der Commandline: --bframes 5 --partitions all


    Ergebnis: Kleinere Datei, langsamerer Encode, gute Qualität


    Sowohl das Internet, als auch die CPU sind schlecht



    ➤ Ungefähre System Spezifikationen: Internetleitung unter 10.000 kbit/s, CPU älter als 5 Jahre, im i5 oder i3 Bereich
    ➤ CRF: 25-30, Preset: Medium
    ➤ OPTIONAL: Zusätzliche Befehle in der Commandline: --keyint infinite --min-keyint 1


    Ergebnis: Kleinere Datei, schnellerer Encode, schlechtere Qualität


    Farbraum


    Mit x264vfw könnt ihr grundsätzlich im YUV 4:2:0 oder RGB Farbraum encodieren.


    ➤ Wisst ihr nichts mit den Begriffen anzufangen oder habt ihr eine YUV 4:2:0 Aufnahme (Standard) und ihr möchtet auch in YUV 4:2:0 hochladen, dann lasst die Einstellung wie in den Basiseinstellungen.


    ➤ Habt ihr eine RGB Aufnahme und ihr möchtet in YUV 4:4:4 hochladen, dann stellt die Zeile mit gelber Umrandung auf "Keep input colorspace" um und löscht die Befehle "--range tv --colorprim bt709 --transfer bt709 --colormatrix bt709" aus der Commandline.


    Eine RGB Ausgabe bedeutet bessere Qualität und größere Datei bei gleicher Geschwindigkeit, lohnt sich aber nur, wenn die Aufnahme auch in RGB vorliegt.
    Weitere Informationen zu dem Thema unter Punkt 6: Zusatzinfos.


    Abschluss


    Die Einstellungen die ihr vorgenommen habt, bleiben für alle späteren Videos, ihr müsst es also nur einmal einstellen.
    Achtet hingegen jedes mal auf den richtigen FPS Wert und überprüft sicherheitshalber eure aufgenommen Videos vorher mit Mediainfo.


    Wenn alles fertig ist, bestätigt ihr die Angaben und startet den Encode.


    x264vfw wird jetzt 2 Dateien erstellen:
    ➥ Eine video.h264 Datei, in der sich euer RAW-Video befindet. Der Speicherort ist in der x264vfw Konfiguration angegeben.
    ➥ Eine audio.AVI Datei mit einem leeren Video und eurer unkomprimierten Audio-Datei.
    Beide Dateien sollten im selben Ordner sein.


    ➤ Erstellt nun eine neue Datei im Ordner der video.h264 und audio.AVI Dateien (Rechtsklick ➤ Neu ➤ Textdokument) und öffnet diese mit dem Text-Editor (Doppelklick).


    ➤ Kopiert diesen Text in den Editor rein:


    Stellt in Zeile 2,3 und 4 den Speicherplatz von MeGUI genau ein.


    ➥ Ändert dafür ggf. das Festplattenkürzel: G, E, C, ...
    ➥ Fügt ggf. einen oder mehrere Ordner hinzu, wenn MeGUI sich dort drin befinden sollte: "G:\Ordner1\Ordner2\MeGUI\tools\flac\flac.exe"


    ➤ Speichert die Datei: Datei ➤ Speichern unter... ➤ Dateityp: Alle Dateien (*) ➤ Dateiname: Merge.bat ➤ Speichern


    ➤ Führt die Batch-Datei aus. Es öffnet sich die CMD und euer fertiges Video wird erstellt. Hat die CMD alle Befehle fehlerfrei ausgeführt könnt ihr die CMD schließen.


    ➥ Für jedes weitere Video müsst ihr nur noch die Batchdatei starten ohne sie zu konfigurieren, solange ihr die Namen und den Speicherort der video.h264 und audio.AVI nicht ändert.


    Fertig


    4. Hinweise/FAQ


    ➤ Die fertigen .mkv Videos können problemlos auf Youtube hochgeladen werden, sind aber schwierig abzuspielen oder wieder in Videoschnittprogramme einzulesen.

    ➤ Sollte das aufgenommene Video ein variable Framerate haben (maximale/minimale FPS), dann postet die Mediainfo hier im Thread und wir versuchen das Video zu retten und zukünftige VFR Videos zu vermeiden.


    ➤ Sollte das fertige Video asynchron sein, dann überprüft genau ob an allen 3 Stellen (Import ins Programm, Export/Render Einstellungen, x264vfw Konfiguration) die FPS gleich sind und mit der aufgenommenen Datei übereinstimmt (Mediainfo prüfen!) Wenn ja, dann postet die Mediainfo der aufgenommenen Datei und der fertigen, asynchronen Datei hier im Thread.


    ➤ Sollte ein Link nicht mehr funktionieren, dann bitte eine Nachricht hinterlassen :D


    5. Zusatzinfos


    ➤ Programmeinstellungen für Magix


    ➤ Vergleich x264 mit gängigen anderen Encodern, die von Videoschnittprogrammen verwendet werden


    ➤ RGB (YUV 4:4:4) und YUV 4:2:0


    ➤ Bedeutung der Commandozeilenbefehle



    Schlusswort


    Sooo... das ganze Tutorial sieht jetzt erstmal kompliziert aus, aber ich habe es versucht so simpel wie möglich zu halten und viele Fehlerquellen auszuschließen.
    Auch wenn ihr für das erste Einstellen vielleicht eine halbe Stunde braucht, sind die nächsten Videos in nur ein paar Klicks fertig.
    Der Mehraufwand von ca. 30 Sekunden pro Video wird durch die allgemein bessere Encodingzeit und der viel besseren Qualität locker aufgeholt.


    Diese Methode lässt sich bei jedem Videoschnittprogramm anwenden und man sieht deutliche Unterschiede bei der Qualität und Dateigröße im Vergleich mit einem normal encodiertem Video.


    Danke an @Sagaras und @RealLiVe für die allgemeine Idee und die vielen Hinweise zur Verbesserung :thumbsup:


    Bei Fragen zu Einstellungen, Problemen, Qualitätsverbesserungen oder Verbesserungsvorschlägen am Tutorial bitte hier im Thread schreiben ^^


    Mfg
    GrandFiredust


    Changelog

  • Sehr schick zusammengefasst. Gefällt mir.


    Ja, das Schema wiederholt sich ja eigentlich immer wieder. Egal welche [lexicon]NLE[/lexicon] man verwendet.


    Diese Lösung ist aber wie schon oft angesprochen eine Alternativlösung für Programme die keinen [lexicon]Frameserver[/lexicon] verwenden können oder für User die [lexicon]MeGUI[/lexicon] und das ganze drum herum nicht wollen.


    Somit ist ihnen der [lexicon]x264[/lexicon] [lexicon]Encoder[/lexicon] aber auch kostenlos zugänglich.
    Halt aber mit Einschränkungen.


    z.B. die 10Bit Encodierung ist mit dem [lexicon]x264vfw[/lexicon] [lexicon]Encoder[/lexicon] ja nicht möglich. Auch einige internen Aktualisierungen des Encoders sind nicht immer auf dem neusten Stand.
    Denn der [lexicon]CLI[/lexicon] [lexicon]Encoder[/lexicon] ist bei den Entwicklern immer als erstes draußen. Und der ist nun mal bei [lexicon]MeGUI[/lexicon] sogar in einer gemoddeten Version verfügbar.


    Auch [lexicon]AVISynth[/lexicon] trägt zur Verbesserung der Videos bei das dank [lexicon]MeGUI[/lexicon] so oder so verarbeitet wird. Betroffen sind hier z.B. Skalierer und andere Feinjustierungen die zur Besserung der Videos auf Youtube führen können.


    Schöner wär es wenn NLEs direkt [lexicon]CLI[/lexicon] [lexicon]Encoder[/lexicon] ansprechen können. Aber naja... [lexicon]NLE[/lexicon] Entwickler wollen ja schließlich auch verdienen ^^

  • Danke @Sagaras
    Ja, den [lexicon]x264vfw[/lexicon] muss man leider oft selber auf dem neusten Stand halten, möglicherweise wird der aber irgendwann auch mit 10Bit Encode verfügbar sein :D

  • - Da hier eine offene [lexicon]GOP[/lexicon] gewählt wurde


    Nö. Sie darf unendlich lang sein, aber offen wurde nicht gewählt.
    Das isn unterschied [ --open-[lexicon]gop[/lexicon] ]


    Da Nero [lexicon]AAC[/lexicon] nicht von Haus aus in software drin sein darf ohne weiteres, wird XMR wohl nur F-[lexicon]AAC[/lexicon] verwenden, welches deutlich schlechteres Encoding hat als Nero [lexicon]AAC[/lexicon] oder QAAC.


    Man könnte ja auch einfach bei der [lexicon]NLE[/lexicon] nochmal als [lexicon]WAV[/lexicon] exportieren und die [lexicon]WAV[/lexicon] dann in jedem beliebigem Programm hauen, und neroAAC wäre ja wiederum mit [lexicon]MeGUI[/lexicon] möglich.^^ Wer itunes hat kanns auch damit machen, das dingen wird ja dann den Q-[lexicon]AAC[/lexicon] [lexicon]encoder[/lexicon] haben.


    Und vor allem mit der [lexicon]Bitrate[/lexicon] nich geizen. 320 kbit wäre sogar noch sicherer und wäre ja nur minimalst mehr. Wobei F-[lexicon]AAC[/lexicon] immer noch effizienter als MP3 ist, das muss man auch dazu sagen^^
    Und dann gibts ja auch nach wie vor die Möglichkeit der verlustfreien speicherung via [lexicon]FLAC[/lexicon]. Bei Audio ja durchaus nix unrealistisches. Ist dann ungefähr ~60% der [lexicon]WAV[/lexicon] Dateigröße bei Kompressionslevel 8.


    Wenn man bisschen Zeit sparen will beim Abschluss des Encodes (so das [lexicon]x264[/lexicon] nicht in [lexicon]mkv[/lexicon] [lexicon]muxen[/lexicon] muss), kann man bei file output in [lexicon]x264vfw[/lexicon] auch .264 statt .[lexicon]mkv[/lexicon] angeben. Dann haste den rohen [lexicon]h.264[/lexicon] stream, was öfter auch besser klappt, da [lexicon]x264[/lexicon] nicht via mkvmerge muxt. So aber muxt er dann gar nicht. Ist ja in dem Moment auch noch nicht nötig und die Datei wird dann sofort geschlossen. So kann man dann auch die Dateien besser unterscheiden. So weiß man dann: .264 mein video .[lexicon]wav[/lexicon] / .[lexicon]aac[/lexicon] mein audio, .[lexicon]mkv[/lexicon] mein gemuxtes ding.

  • Nö. Sie darf unendlich lang sein, aber offen wurde nicht gewählt.
    Das isn unterschied [ --open-[lexicon]gop[/lexicon] ]


    Da hab ich wohl eine Einstellung verwechseln...werde das nochmal korrigieren.
    Nero [lexicon]AAC[/lexicon] wäre natürlich besser, kp was XMR verwendet. Bei [lexicon]FLAC[/lexicon] hab hatte ich, um ehrlich zu sein, ein paar Schockmomente, als ich die Dateigröße gesehen hab :D

  • Muss ich jetzt diese Einstellung --open -[lexicon]gop[/lexicon] (von De-M-on) in die Kommandozeile von [lexicon]x264[/lexicon] mit einschreiben?

  • So habe mal ein Video gemacht, nachdem mir des hier im Forum mega gut erklärt wurde, wollte ich es niemanden vorenthalten. Ich finde Videos immer anschaulicher als Texte egal wie gut diese geschrieben sind.
    Beinhaltet alle Schritte von der Aufnahme bis zum Upload.
    Wichtig noch es sind nur die 60 fps erklärt, mache aber noch Hinweiße ins Video wo was geändert werden muss.


    War mein erstes Tutorial, hoffe es ergänzt den Beitrag.


    Grüße


    Muelli

  • Schön anschaulich erklärt! Wirklich gutes Tutorial ^^


    EDIT: Zur Aufnahme würde ich dir einen verlustfreien [lexicon]Codec[/lexicon] empfehlen wie [lexicon]MagicYUV[/lexicon] statt MJPEG

  • Ich habe es heute getestet und bin sehr zufrieden mit dem Ergebnis. Ich habe nur im Unterschied zum Tutorial die Anregung von De-M-on aufgegriffen und eine [lexicon]h.264[/lexicon] Datei erzeugt und diese dann gemuxt. Es überzeugt mich, dann dürfte Main Concept ausgedient haben bei mir.


    PS Was mich nur wundert, offiziell unterstützt YT das [lexicon]mkv[/lexicon] Format aber nicht, scheint sie aber dann doch zu akzeptieren. Oder sehe ich das falsch?

  • Was mich nur wundert, offiziell unterstützt YT das [lexicon]mkv[/lexicon] Format aber nicht, scheint sie aber dann doch zu akzeptieren. Oder sehe ich das falsch?


    Hochladen kann man .[lexicon]mkv[/lexicon] immer, aber Youtube braucht glaub ich mit dem Verarbeiten länger. Zumindest hab ich das so gehört, da Youtube das dann von [lexicon]mkv[/lexicon] in einen anderen [lexicon]Container[/lexicon] ummuxen muss (ich glaub flv) Mit [lexicon]mp4[/lexicon] soll das angeblich schneller gehen...

  • Hochladen kann man .[lexicon]mkv[/lexicon] immer, aber Youtube braucht glaub ich mit dem Verarbeiten länger. Zumindest hab ich das so gehört, da Youtube das dann von [lexicon]mkv[/lexicon] in einen anderen [lexicon]Container[/lexicon] ummuxen muss (ich glaub flv) Mit [lexicon]mp4[/lexicon] soll das angeblich schneller gehen...


    Ahh ok, danke für die Erklärung. Na das stört mich nun nicht :)

  • aber Youtube braucht glaub ich mit dem Verarbeiten länger. Zumindest hab ich das so gehört, da Youtube das dann von [lexicon]mkv[/lexicon] in einen anderen [lexicon]Container[/lexicon] ummuxen muss (ich glaub flv) Mit [lexicon]mp4[/lexicon] soll das angeblich schneller gehen...


    Bullshit.


    und neu codiert wird so oder so.


    Außerdem benutzt youtube [lexicon]mp4[/lexicon].


    Auf youtube kannst du alles hochladen, was ffmpeg decodieren kann, denn scheinbar wird ffmpeg für die decodierung benutzt. Sprich du kannst auch bink video sogar hochladen. Sprich bink video, was viele Spiele als Videocodec verwenden, zb Bulletstorm.

  • Bei Youtube erhält man diese Information:



    [lexicon]Mkv[/lexicon] wird nicht erwähnt.


    Und müsste Youtube die Videos nicht im Flash Video Format speichern?


    Zitat

    Flash-Video zeichnet sich folglich dadurch aus, dass Videos auf Webseiten in diesem Format mit entsprechend mehr Rechnern angezeigt werden können. Auf diese Basis ist es zurückzuführen, dass bedeutende Videoportale wie YouTube, MyVideo, sevenload und clipfish auf Flash-Videos setzen.

  • Ja da steht auch nix von bink video, [lexicon]fraps[/lexicon], Techsmith Screen Capture [lexicon]Codec[/lexicon], UTVideo [lexicon]Codec[/lexicon], unkomprimiert, gar xvid fehlt. Und trotzdem kann youtube natürlich diese Codecs decodieren und entsprechend auch [lexicon]MKV[/lexicon] [lexicon]Container[/lexicon].


    FLV hat paar limits, das wäre nicht so sinnig auf FLV zu setzen, insbesondere bei HD Videos. Da ist [lexicon]MP4[/lexicon] schon geeigneter.


    144p und 240p machen sie glaub ich noch in flv, aber auf keinen Fall HD.

  • Freut mich, dass es euch gefällt.
    Ich bin mit dem Ergebnis zu zu frieden und auch mit dem .mjpeg, und meine Videos sind von der Qualität her sehr gut finde ich.
    Deshalb sehe ich keinen Grund das zu ändern.
    Natürlich kann des jeder so handhaben wie er mag.


    Grüße


    Muelli

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!