Avidemux sehr langsam

  • Hallo,

    wenn ich mit Avidemux 2.70 HEVC/UHD zu x264/720p transkodieren möchte, werden meine CPUs nur zu einem kleinen Teil ausgelastet.
    Auf einem AMD X6 sind es reproduzierbar nur 20% CPU-Last und 2-3 fps. Ich habe das unter XP und Linux Mint getestet.

    Wenn ich den Resize-Filter entferne, erhalte ich zwar bis zu 70% CPU-Auslastung, aber da die zu berechnenden Bildpunkte wesentlich mehr sind, kommen am Ende auch nur 3 fps herum.

    Hat jemand eine Erklärung dafür, warum Avidemux die Systemressourcen nicht ausnutzt?
    Eine Lösung, wie ich es beschleunigen könnte, wäre natürlich noch besser :)

  • Liegt es vielleicht daran, dass das Decodieren von UHD der Flaschenhals ist? Mein AMD Phenom-II X6 schafft das auch nicht mehr in Echtzeit, wenn auch noch deutlich schneller als 3 fps in einem Mediaplayer alleine; aber kann gut sein, dass dann der gleiche Thread auch noch filtert.

    Vergleiche doch mal mit dem Konvertieren von UHD in AVC; dazu reicht ja ein Hochskalieren irgend eines Filmes und Encodierung mit x264 in schnellstem Preset – geht ja nicht um Qualität, nur um die Bildfläche zum Vergleichen.

  • Sorry, dass ich mich jetzt erst melde, aber mir ist was dazwischen gekommen und dann habe ich es aus den Augen verloren.

    Ich habe hier auch einen Phenom II X6 mit 3,2 GHz. Ich habe es auch auf einem Athlon X2 270 mit etwa 3,8 GHz probiert. Auf dem Rechnern ist avidemux in etwa gleich schnell. Deswegen hatte ich die Vermutung, dass avidemux nur einen Kern benutzt.

    Testweise habe ich dann mal alle Videofilter (crop + resize) deaktiviert, weil ich die Vermutung hatte, dass diese nicht multiithreadingfähig sind und somit das System ausbremsen. Damit wird es aber auch nicht schneller. Ich vermute daher auch, dass der Dekoder den Flaschenhals bildet. Um das zu umgehen, müsste Avidemux das Video in Abschnitte unterteilen und diese parallel bearbeiten. Das scheint so aber nicht gemacht zu werden.

    Zitat

    Vergleiche doch mal mit dem Konvertieren von UHD in AVC; dazu reicht ja ein Hochskalieren irgend eines Filmes und Encodierung mit x264 in schnellstem Preset – geht ja nicht um Qualität, nur um die Bildfläche zum Vergleichen.

    Mit swrescale kann ich maximal bis 2560x1440 skalieren. Das HEVC-Video hat 3480x2160. Das Hochskalieren läuft mit 100%-CPU-Last. Das anschließende Runterskalieren von 2560x1440 auf 1280x720p läuft dann nur noch mit 60%-CPU-Last.
    Wenn ich swrescale herausnehme und 2560x1440 nach 2560x1440 transcode, habe ich 100% CPU-Last.

    Ich würde daher sagen, dass avidemux im Moment nicht geeignet ist, um HEVC und UHD zu bearbeiten.

  • Ich habe mich schon lange nicht mehr mit neuer Hardware beschäftigt, weil der PhenomII alles macht, was ich brauche. Neuer sind AFAIK nur Ryzen-CPUs. Da die nicht wesentlich schneller takten, müsste es die gleichen Symptome bei hoher Auflösung geben.

  • Dazwischen gab es noch die FX-Serie.

    Takt alleine ist nicht der einzige Faktor. Effizientere Ausführung durch Architektur und Befehlssatzerweiterungen können auch ein paar Prozente bringen. Aber wenn der Decoder multithreaded liefe, das wäre schon spürbar.

  • Ich bin nicht so der Hardwarefreak, aber ich meine mehrfach gelesen zu haben, dass die FX-Reihe weit weniger effizient ist, als die Phenoms/Athlons. FX ist bei ein paar speziellen Anwendungen brauchbar, hat aber sonst weniger Rechenleistung bei gleicher Energieaufnahme.
    Aber wie schon gesagt, solange der Dekoder und einzelne Plugins, wie Resize und Crop, nicht multithreadingfähig sind, wird keine Rennziege aus der Sache.
    BTW: Ich habe noch XMediaRecode ausprobiert und damit läuft es nicht schneller.

    Für HD hat die Software jahrelang gereicht. Für UHD scheint es nun Handlungsbedarf zu geben, damit die volle Leistungsfähigkeit der Hardware ausgenutzt werden kann.

  • Dann würde ich vorschlagen, weg von Konvertern, die zwar auf ffmpeg basieren, aber nicht im Detail gesteuert werden können – und hin zu Konvertern, die auf AviSynth basieren. Hier hat man schon mal die Wahl zwischen verschiedenen Decoder-Plugins. Manche arbeiten rein mit der CPU, können aber multi-threaded decodieren, wenn man das gestattet. Andere können auch die GPU zum Decodieren verwenden, wenn man Grafikhardware hat, die einerseits das Videoformat unterstützt und andererseits von einem AviSynth-Decoder-Plugin unterstützt wird (die sind aber u.U. nicht ganz kostenlos).

    Was die FX-Generation von AMD angeht: Die unterstützen immerhin etwas mehr als nur SSE2/3. Bei einem Phenom-II ist ja die SSE3-Unterstützung noch derart langsam, dass z.B. x264/x265 nicht mehr als SSE2 damit unterstützen wollen; aber erst ab AVX-Befehlssatz-Erweiterung lohnt sich x265 als Encoder. Decoder werden da vielleicht nicht so extrem profitieren, da weiß ich nicht so genau, wie stark libavcodec hier Assembler-optimiert ist. Aber wenn Multithreading beim Decodieren möglich ist, dann hilft das bestimmt. Und das ist z.B. mit L-SMASH Works oder FFMS2 wahrscheinlich möglich (sofern nicht fehlerhaft implementiert).

Jetzt mitmachen!

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