Ich bevorzuge ffmpeg gegenüber Handbrake, und meine Tests haben gezeigt, dass es Dateien kleiner als H.264 macht – bei gleicher oder besserer Qualität – mit Einstellungen, die ich mit MCEBuddy nicht zum Laufen bekomme … sie funktionieren aber mit FFmpeg Batch AV Converter, womit ich vier Encodings gleichzeitig laufen lassen kann, ohne dass mein System unbenutzbar wird. Wenn ich MCEBuddy nutze, kann ich meine Parameter nicht verwenden, weil mir niemand hilft, sie in MCEBuddy zum Funktionieren zu bringen; ich habe herumexperimentiert und verstehe nicht, wie MCEBuddy die Einstellungen an die GPU weitergibt. Das Standard-HEVC-Profil in MCEBuddy ist unzureichend, nicht nur weil es eine schlechtere Qualität liefert, sondern auch weil es die De-Interlacing-Software nutzt, was die Encodings verlangsamt und mehr Systemressourcen frisst – daher kann ich nur zwei Encodings gleichzeitig laufen lassen, um ein brauchbares System zu behalten.
Die Einstellungen, die ich in FFmpeg Batch AV Converter verwende, lauten:
-c:v hevc_nvenc -c:a copy -preset hq -rc constqp -rc-lookahead 60 -spatial_aq 1 -temporal_aq 1 -nonref_p 1 -cq 26
Das Problem: FFmpeg Batch kann nicht all das, was MCEBuddy kann und tut, daher möchte ich es nicht verwenden, weil zu viele Schritte dann manuell werden – und dafür habe ich weder Zeit noch Speicherplatz. Deshalb will ich diese Einstellungen in MCEBuddy nutzen … außer -c:a copy, weil MCEBuddy die Audiospuren ohnehin neu encodiert.
Das folgende Profil nutze ich momentan; es stammt von dir, SystemIdleProcess, vor Monaten, nur habe ich ffmpeg an erste Stelle gesetzt, weil mir Handbrake zu viele Ressourcen frisst:
[HEVC MKV AnyStream NVidia]
Description=HEVC in MKV hardset to use NVidia.
order=ffmpeg,handbrake
DisableEncoderReordering=true
ffmpeg-general=-threads 0
ffmpeg-video=-ss 0 -vf yadif=0:-1:1,hqdn3d -vcodec hevc_nvenc -preset hq -crf 26 -vsync 2 -map 0:v -sn
ffmpeg-audio=-acodec ac3 -map 0:a
ffmpeg-audioac3=-acodec copy -map 0:a
ffmpeg-ext=.mkv
ffmpeg-audiodelay=skip
ffmpeg-UsingHardwareEncoding=true
ffmpeg-DisableSoftwareEncoderFallback=true
Das größte Problem: Alles vor „hevc_nvenc“ sind Software-Parameter, sie laufen also in Software – ineffizient, denn die GPU könnte sie übernehmen. Das andere Problem: Der Wert -crf 26 ist ebenfalls ein Software-Parameter und wird von der GPU ignoriert; ich muss annehmen, dass mit diesem Profil die nVidia-GPU ihre Standardwerte nutzt.
Ich habe sogar nur -crf 26 in -cq 26 geändert – ohne Unterschied im Ergebnis. Ich habe -cq immer weiter verringert – immer noch keine Änderung. Ich habe keine Ahnung, wie MCEBuddy Parameter an die GPU weitergibt, denn nichts bewirkt einen Unterschied.
Ich habe meine FFmpeg-Batch-Parameter oben in das MCEBuddy-Profil übernommen, nur die Audio-Parameter entfernt und den Rest als einzige Parameter in die ffmpeg-video-Zeile geschrieben. MCEBuddy encodierte die Datei – das Ergebnis war Schwarzbild mit Ton … ich weiß nicht, wie ich Parameter korrekt an die GPU weitergebe.
Ich weiß nicht weiter. Ich bevorzuge MCEBuddy gegenüber allen anderen Programmen, aber die Standard-HEVC-Hardware-Parameter sind für Filme mit dunklen Szenen unbrauchbar – und ich habe viele Horrorfilme. Seit Monaten encodiere ich nichts mehr, außer Testdateien oder Filme, bei denen ich weiß, dass sie mit den aktuellen Einstellungen klarkommen. Alle TS-Dateien muss ich aufheben, bis ich meine Parameter in MCEBuddy unterbringe; mein Speicherplatz neigt sich dem Ende zu, und ich bin es leid, neue Festplatten zu kaufen. Vielleicht muss ich MCEBuddy aufgeben, weil es keine Dokumentation gibt, wie man die Hardware-Beschleunigungs-Parameter tatsächlich ändert.