x264vfw für Videoschnittprogramme

  • Also ich hab auch Win10, bei mir lief [lexicon]x264vfw[/lexicon] in Verbindung mit [lexicon]Magix[/lexicon]


    Das klingt schonmal ganz gut. Dann kann es nicht an den Dlls von Windows 10 lesen weil die lädt sich der [lexicon]Codec[/lexicon] ja auch bei [lexicon]Magix[/lexicon]


    ist [lexicon]Magix[/lexicon] bei dir 64bit oder 32bit? Bei mir lädt er nur den 64bit [lexicon]Codec[/lexicon] in Premiere



    Edit2: Okay zumindest [lexicon]MeGUI[/lexicon] scheint beim Oneclick Encode kein Problem mit dem [lexicon]Codec[/lexicon] zu haben. Wirds wohl an Premiere liegen. [lexicon]Frameserver[/lexicon] ich komme heißt das wohl



    Edit3: LÖSUNG: Beim neuinstallieren von Premiere hatte dieses die Settings von [lexicon]x264[/lexicon] noch gespeichert und direkt wieder reingeschrieben. Das führte zu einem Absturz. Nachdem ich die "Load Defaults" gedrückt und alle meine Settings exakt so wie sie waren wieder eingefügt habe konnte ich wieder encoden.

    3 Mal editiert, zuletzt von Mahatma Gönn Dir ()

  • Edit2: Okay zumindest [lexicon]MeGUI[/lexicon] scheint beim Oneclick Encode kein Problem mit dem [lexicon]Codec[/lexicon] zu haben. Wirds wohl an Premiere liegen. [lexicon]Frameserver[/lexicon] ich komme heißt das wohl


    Wäre qualitativ eh besser mit [lexicon]MeGUI[/lexicon] zu arbeiten. Allerdings bitte eher nicht mit one-click :S

  • @GrandFiredust
    Ich hätte noch eine Frage,
    [lexicon]Magix[/lexicon] kann ja 2K Videos reinladen,
    [lexicon]Magix[/lexicon]: 2560x1440p [lexicon]rendern[/lexicon] tu ich mit der einstellung 3200x1800p mit 60 [lexicon]FPS[/lexicon] :-)
    muste aber 3 befehlen raus nehmen, weil die 3 befehle nicht gihg !!


    Rausgenommen:
    --colorprim bt709 --transfer bt709 --colormatrix bt709


    die sind noch drin:
    --keyint infinite --min-keyint 1 --[lexicon]fps[/lexicon] 60.000 --range tv --bframes 5 --partitions all --aq-strength 1.25


    kann mann das noch besser machen oder ist das gut so ??

  • Die Befele, die du rausgenommen hast, spielen keine Rolle für den Encode. :D


    Die schreiben nur in den Header der fertigen Videodatei, dass eine BT.709 Farbmatrix vorliegt.
    Also rein informativ aber nicht wichtig :)

  • Hatte mir überlegt die Verarbeitung mit NeroAac und Mp4Box in ein Python Skript zu schreiben um mir das rumgeklicke mit MeGUI und MyMp4BoxGui zu sparen. Für Mp4Box klappt das ohne Probleme aber Nero AAC gibt mir immer aus "could not parse WAV file".


    Ich denke das es daran liegt, dass ich ihm eine .avi Datei gebe und keine WAV Datei. Die Leute die am ehesten Wissen was MeGUI benutzt um dem NeroAAC ne WAV zu geben seid vermutlich ihr deswegen dachte ich mir ich frag hier mal bevor ich mir irgendein avi zu WAV cli Tool runterlade

  • Nimm am besten nicht mehr My Mp4 Box GUI.


    Das Programm verursacht manchmal Probleme beim Muxen, dass z.B. die Auflösung verändert wird.


    Nimm stattdessen die Mp4Box.exe aus MeGUI > Tools > Mp4Box > Mp4box.exe für das Skript

  • Jop so mach ich es auch. Das klappt auch bereits super. Nur der Schritt um aus dem uncompressed PCM was in einem avi Container steckt nen mp4 Container zu machen für Mp4Box will mir per CLI noch nicht gelingen. NeroAAC nimmt leider nur WAV Dateien als Input. Ne Idee?


    Edit: Hab nen klenes Tool namens WAVI gefunden, dass genau das macht was ich möchte: Per CLI aus meinm .avi Container den Audio in nen Wav Container schreiben


    Hier der Link für alle Interessierten: https://sourceforge.net/projects/wavi-avi2wav/



    Edit: Für alle die es interessiert hier mein Skript:


    Vorbedingungen:

    • Das Skript liegt im selben Ordner wie die h264 und avi Dateien.
    • Die h264 und die zugehöre avi Datei haben den selben Namen (zB. 1.avi und 1.h264)
    • Ihr habt Python installiert und in euren PATH eingetragen
    • im selben Ordner existiert ein Ordner "cli" der wavi.exe (siehe Link oben), neroAacEnc.exe und mp4box.exe mit den zugehören DLLs enthält

    Hier das Skript:

    Bitte beachtet, das ich Python erst seite heute Morgen kann und es vermutlich bessere Wege für die meisten Sachen gibt bzw. ich gewisse Konventionen zur Schönheit des Codes nicht beherrsche

    4 Mal editiert, zuletzt von Mahatma Gönn Dir ()

  • Jop so mach ich es auch. Das klappt auch bereits super. Nur der Schritt um aus dem uncompressed PCM was in einem avi Container steckt nen mp4 Container zu machen für Mp4Box will mir per CLI noch nicht gelingen. NeroAAC nimmt leider nur WAV Dateien als Input. Ne Idee?

    MeGUI macht das via Pipelines. Und dann halt alles über AVISynth.


    Das macht MeGUI allerdings immer nur mit der ersten Spur. Grund dafür ist wenn es mehrere Audiospuren sind, müssen diese zerlegt werden in einzelne Files und können dann zusammengemischt werden.


    Das macht auch Sinn, wenn man sich Aufnahmen von z.B. Capture Boxen nimmt oder OBS Aufnahmen wo die Reihenfolgen der Trackanordnung unterschiedlich ist.



    Um jedes Audioformat für NeroAAC kompatibel zu machen werden Rohsamples geliefert.


    Das kann man z.B. wie folgt machen:


    Ohne AVISynth:
    FFmpeg + NeroAAC

    Code
    ffmpeg -i "C:\Video.avi" -c:a pcm_s16le -f wav -| neroaacenc.exe -ignorelength -br 320000 -if - -of "Output.m4a"


    eac3to + NeroAAC

    Code
    eac3to.exe "C:\Wave64.wav" stdout.wav | neroaacenc.exe -ignorelength -q 0.65 -if - -of "C:\Temp\Output.m4a"


    Mit AVISynth (Da hat man auch gleich bessere Kontrolle für z.B. Down- oder Upmix, Pitching. etc)
    Dazu braucht man aber eine Pipeline für AVS Datein. Da kann man mehrere Sorten verwenden. z.B. BePipe, avstowav, REWAVI, avs2pipemod oder einfach nur FFmpeg.


    Man läd sein Video mit samt Audio in das Skript rein wo Audio dann als Rohsamples umgeschrieben werden. Diese Rohsamples entsprechen dann dem PCM Muster. Die Pipeline greift diese dann jeweils ab und man kann somit Audio weiterverarbeiten. Um das Ganze aber noch sparsamer zu machen und keine Zwischendatei schreiben zu lassen, wird wieder eine Pipeline zwischen der AVS Pipeline und dem entsprechenden Encoder eingerichtet.


    Beispiel an BePipe:

    Code
    BePipe.exe --script "AVISource(^C:\Video.avi^).AssumeFPS(60, 1)" | neroaacenc.exe -ignorelength -br 320000 -if - -of "output.m4a"


    Da FFmpeg in der Lage ist AVS Datein einzulesen, kann man auch direkt AVISynth Skripte ohne eine Dritt Pipeline an den NeroAAC Encoder schicken.

    Code
    ffmpeg.exe -i "Skript.avs" -f wav - | neroaacenc.exe -ignorelength -br 320000 -if - -of "output.m4a"

    avs2pipemod wäre eine Dritt Pipeline die AVS Skripte ebenfalls direkt einlesen kann und man die WAV Ausgabe an NeroAAC weiterleiten kann.



    So funktioniert das Ganze. Damit kann man quasi sämtliche Audioformate ohne Umwege direkt an NeroAAC leiten und encodieren lassen.

  • Wenn man jetzt DVDs oder BluRays hat und die ein DTS Audio besitzen, kann man das halt via eac3to machen lassen oder AVISynth direkt. Weil wie gesagt hat man über AVISynth einfach die bessere Kontrolle.


    z.B. bei einer DTS Datei mit 5.1 Downmix auf Stereo:


    AVISynth Datei

    Da wird dann jeweils ein geeignetes Mischverhältnis der einzelnen Kanäle miteinander angegeben und auf 2 Kanäle gedownmixt.


    Und dann kann man das Ganze wieder mit z.B. FFmpeg und NeroAAC encoden lassen.


    Sprich man hat dann die 5.1 DTS Datei zum einen gedownmixt auf Stereo und gleichzeitig zum Encoder geschickt der es encodiert. Und das alles ohne Ziwschenergebnisse.


    Beispiel für den Encode dieser AVS Datei

    Code
    ffmpeg.exe -i "Skript.avs" -f wav - | neroaacenc.exe -ignorelength -br 320000 -if - -of "output.m4a"

    Und schon hat man seine m4a Datei. Also MP4 Audio Datei. Man kann auch dafür MP4 nehmen. Aber M4A ist korrekter.
    M4A für Audio
    M4V für Video
    Und MP4 für Video und Audio.

  • Nach dem muxen per CLI erstellt Windows kein Vorschaubild mehr für meine Dateien. Ne Idee?


    CLI Aufruf ist:
    mp4box.exe -add 5.h264 -add 5.mp4 Folge5.mp4


    Bild:


    Mediainfo:

  • Es fehlen wahrscheinlich Header Komponenten, die Windows das Decodieren über DirectShow (eine sehr eingeschränkte Decoding-Bibliothek) ermöglichen. Wenn Windows erkennt, dass DirectShow das ganze decodieren kann nimmt er den standart Windows Media Player. Stattdessen nimmt er dann hier den VLC Media Player, der über eine eigene, größere Decoder Datenbank verfügt :D

  • VLC wird er vermutlich deshalb nehmen, weil ich eingestellt habe, dass er mp4 Dateien standardmäßig damit öffnen soll


    Edit: aber das was im Header falsch ist ist auch meine Vermutung

  • Naja, was heißt falsch :D Ich denke mal diese kleinen Vorschau Bilder auch von DirectShow kommen. Und H.264 Container sind nicht gerade dessen Spezialität :D
    MP4 ≠ MP4. Je nach Muxer schreibt der etwas anderes in den Header :)

  • Wobei der Muxer sich ja nicht verändert hat. Mp4Box steckt ja auch hinter MyMp4BoxGUI. Hab jetzt mal den globalen Thumbnail Cache von Windows gelöscht und bis jetzt hat er noch für keine Datei eins erstellt. Mal sehen was noch so passiert :D

Jetzt mitmachen!

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