Extrem schlechte ffmpeg Performance beim Separieren der OBS Audiostreams

  • Hallo zusammen,


    ich habe oben genanntes Problem und findet dafür einfach keine Lösung. Ich habe folgende mp4 Datei aus OBS als Rohmaterial:



    Mein nächster Schritt ist die Separation aller Audiostreams mittels ffmpeg um das Ganze dann in Premiere Elements zu schneiden. Dafür habe ich ein kleines Hilfsskript das das dies per Drag & Drop erledigt:


    Code
    @echo off
    For %%A in ("%~1") do Set Name=%%~nA
    "%ProgramFiles%\ffmpeg\bin\ffmpeg.exe" -i "%~1" -threads 4 -map 0:a:1 -codec copy "%Name%-teamspeak.aac" -map 0:a:2 -codec copy "%Name%-microphone.aac"


    Wenn ffmpeg dann aber loslegt, zeigt mir der Taskmanager eine CPU-Last von 13% an, RAM 4GB von 32GB. Festplattentransferrate 7MB/sek. Das ganze System schläft quasi. Bei normalen Kopiervorgängen schafft die Platte 220 MB/sek.


    ffmpeg schreibt:
    size= 329kB time=00:09:59.49 bitrate= 4.5kbits/s speed=5.94x


    Hat jemand von euch eine Idee woran das liegen kann?


    Vielen Dank im Voraus.

  • Ich hatte früher exakt das gleiche Problem und bin auf keine Lösung gekommen, also habe ich es einfach gelassen. Für die Dxtory-Aufnahmen nehme ich ganz normal den Dxtory Audio Splitter, für die AmaRecTV-Aufnahmen mache ich das mit dem SSM (der ja auch nur VirtualDub nutzt). Vielleicht wäre das eine bessere Alternative für dich, auch wenn es mehr Aufwand ist als eine Batch-Datei.

    • Nacheinander splitten lassen und nicht simultan, lastet sonst nur Schreibaufwand auf der Festplatte aus, nicht die CPU, die macht sonst Pause ^^
    • Warum werden nur 4 Threads genutzt? Sehe da keinen Sinn dies limitieren zu wollen.

    Bremst halt aus sowas.


    Und ja, die CPU braucht nicht viel. Was soll sie denn machen beim Kopieren? Auf 100% gehen? xD Das wäre mal richtig Fail. xD


    Was du nicht angegeben hast ist das er das Video weglassen soll. Da fehlt bei dir also noch der Parameter -vn
    Dann wird Video ignoriert. So wie es jetzt bei dir aussieht schleußt er das Video mit durch. Und das bremst dann natürlich auch.

  • Hatte das Problem auch, dass der Audio-Extract über FFMpeg sehr langsam war (Virtual Dub ebenfalls), der DxTory-Decoder war da deutlich schneller. Allerdings funktioniert der nicht bei OBS-Aufnahmen.


    Ich mache es mittlerweile so, dass ich nur den Spielsound von OBS aufnehmen lasse und dann mein Mikrofon über Audacity. Das wird dann in Shotcut (deinem Fall Premiere) zusammengemischt. Spart mir dann doch etwas Zeit bei der Nachbearbeitung.

  • der DxTory-Decoder war da deutlich schneller. Allerdings funktioniert der nicht bei OBS-Aufnahmen.

    Der DxTory Audio Demuxer versteht nur PCM Audio. Wenn du mit OBS in AVI aufnehmen solltest und PCM als Audio, dann klappt der dort genauso gut.



    der DxTory-Decoder war da deutlich schneller. Allerdings funktioniert der nicht bei OBS-Aufnahmen.

    VDub ist Speicherbegrenzt und auch das Ausleseverfahren ist etwas eigensinnig was die Speichernutzung angeht.
    Daher wäre da vllt. VDDubMod vllt. interessanter.


    FFmpeg kopiert via Bitstream. Das ist recht genau aber auch langsamer als wenn man den gesamten Stream nimmt und einfach nur alles in den Speicher zwischenlagert wie geht und diesen Inhalt kopiert.


    Das sind zwei unterschiedliche Methoden.


    Demuxer wie bei MKVExtract oder XMediaRecode machen die übliche Kopiermethode die ihr als Schnell bezeichnet.

  • Der DxTory Audio Demuxer versteht nur PCM Audio. Wenn du mit OBS in AVI aufnehmen solltest und PCM als Audio, dann klappt der dort genauso gut.

    Müsste eigentlich als PCM eingestellt sein. Der DxTory Demuxer hatte dann die ersten paar Minuten gemacht und dann aufgehört. Werde vielleicht mal rumprobieren, wenn ich den PC wieder habe, aber für mich habe ich mit Audacity und Shotcut eigentlich eine gute Alternative gefunden.

  • Müsste eigentlich als PCM eingestellt sein. Der DxTory Demuxer hatte dann die ersten paar Minuten gemacht und dann aufgehört.


    Ich kenne die genaue Struktur von AVI-Containern nicht, aber Dxtory scheint bei allem, was nicht direkt von Dxtory selbst ist, irgendwelche Probleme zu haben. :/ Auch bei ganz normalem PCM 16 Bit 44100Hz Stereo - solange der AVI-Container nicht von Dxtory geschrieben wurde, dauert es entweder brutal lange oder bricht irgendwann ab. Keine Ahnung warum, aber so waren meine Tests.

  • Ich würd FFmpeg nicht nutzen um Audiospuren zu extrahieren.
    Beim Extrahieren von PCM Spuren aus einer AVI benötigt VirtualDub ein paar Sekunden, während FFmpeg dafür mehrere Minuten in Anspruch nimmt. Qualvoll langsam. Im Gegensatz zu Dxtorys mitgeliefertem Tool lässt sich VirtualDub auch prima in automatisierte Abläufe einbinden, siehe SSM. Ist es etwas anderes als eine AVI, muss halt ein kleines AviSynth Script erstellt werden um das Video zu öffnen. Auch das kann automatisiert werden, siehe abermals SSM. Dass hierbei die Spuren allesamt in PCM umgewandelt werden dürfte verschmerzbar sein, da es sowieso bearbeitet werden soll.

  • Lass mal das mit MP4Box GUI. Die GUI Anwendung ist für die Füße. Die taugt einfach nix. Egal in welcher Hinsicht.
    Zudem ist die GUI Version einfach zu alt. Letztes Release war 2013.


    Die aktuelle CLI Version ist um längen besser und zudem könnte er es in seiner Batch Datei verwursten. Da wurde erst am 8.12.2016 das letzte mal released.
    Da ist GPAC recht schnell was das angeht ;D

  • Guten Morgen! Erstmal Danke für euer Feedback und eure Vorschläge zu dem Thema. Es ist schon interessant das ffmpeg solche Probleme hat.


    Ich werde wenn ich wieder daheim bin mal mp4box ausprobieren. Ob ich nun ffmpeg nutze oder ein anderes Tool ist mir wurscht. :D Und das es ein CLI ist ist umso besser, eine GUI brauche ich nicht.


    Wieviel Monate/Jahre braucht es eigentlich um den für sich selbst optimalen und qualitativ hochwertigsten Workflow herauszufinden? :D

  • Wieviel Monate/Jahre braucht es eigentlich um den für sich selbst optimalen und qualitativ hochwertigsten Workflow herauszufinden?

    Die Qualität die du fabrizierst muss dir selbst genügen. Wenn du damit selbst nicht einverstanden bist, gibt es in diesem Forum genug Leute um dir die Qualität zu liefern mit der du einverstanden bist. Da gibt es Workflows bis zum Abwinken.


    Aber die ultimative Qualität will niemand haben, weil das Workflows sind die entweder viel Zeit fressen oder den meisten schon zu umständlich sind oder halt auch schon zu überzogen. ^^


    Ein gesunder Menschenverstand und ein geeignetes Maß sind schon mal gute Voraussetzungen. Wer weiß wie YT arbeitet, kann seinen Workflow drauf anpassen.


    Es gibt zig Leute hier die dir Sachen zwecks Einstellungen und und und erklären und empfehlen können. Du kannst sie dann gerne annehmen oder hinterfragen oder halt auch sein lassen.
    Immerhin sind es deine Videos und du musst damit leben und kein anderer ^^

  • Es war mehr oder weniger eine rhetorische Frage. :D


    Ich habe mir schon viele Infos aus dem Forum zusammengesucht. Insbesonders aus dem Audio & Video Bereich. Mit der Qualität der Videos an sich bin ich auch zufrieden. (Auch wenn ich gerne x264 mit crf gerne direkt aus der NLE exportieren möchte, aber das wäre ein Thema für einen anderen Thread :) )


    Aber mir geht es eher um die Arbeitsabläufe an sich, die Kombination an Tools und deren effizienteste Nutzung.

  • Ich kenne die genaue Struktur von AVI-Containern nicht, aber Dxtory scheint bei allem, was nicht direkt von Dxtory selbst ist, irgendwelche Probleme zu haben. :/ Auch bei ganz normalem PCM 16 Bit 44100Hz Stereo - solange der AVI-Container nicht von Dxtory geschrieben wurde, dauert es entweder brutal lange oder bricht irgendwann ab. Keine Ahnung warum, aber so waren meine Tests.

    Ja, kann ich soweit aber auch bestätigen.

  • Wer das unbedingt in diesem ollen Rechtsklick menü will, kann sich auch selber 'ne batch machen dafür. Sagaras hatte doch da mal batches für gehabt. Warum nutzt ihr nicht diese dann? Kann man denk ich auch so ausweiten, das sie alle gängigen Videoformate unterstützt.
    Ansonsten einfach SSM, damit kriegt man doch auch alles raus ;D

  • Ich habe sowohl ffmpeg als auch mp4box mal auf einer SSD (Samsung 840 Pro) als auch mit der Festplatte (Toshiba DT01ACA100) durchlaufen lassen:


    mp4box -raw 3 filename_30gb.mp4
    SSD: < 1s
    HDD: 243s


    ffmpeg -i filename_30gb.mp4 -vn -map 0:a:1 -codec copy teamspeak.aac
    SSD: 6s
    HDD: 261s


    Dabei scheint allerdings weniger die max. Transferrate der Festplatte das Problem zu sein. Diese wird ja nicht mal ansatzweise erreicht. Ich hätte nicht gedacht das der Unterschied so stark ist.


    Ergo: Es ist wohl eine zusätzliche SSD fällig.

Jetzt mitmachen!

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