Audio-Normalisierung parallelisieren?

CyborgBeta

Captain
Registriert
Jan. 2021
Beiträge
3.097
Hallo, ich habe folgenden Command:

ffmpeg-normalize.exe ".\input.mp4" -o ".\output-loudnorm.mp4" -v -pr -c:v copy -c:a aac -b:a 128k --keep-loudness-range-target

Weiß zufällig jemand, ob ich den Command parallelisieren kann? Weil, im Moment dauert die Konvertierung sehr lange, und es wird nur ein Kern/Thread verwendet. Danke
 
Mach doch einfach neue(n) Terminal/Eingabeaufforderung auf und gib den Befehl dort nochmal ein...?! Soviele Threads wie Du hast.
 
Pardon, das ist Blödsinn.

Edit: Das sollte nicht bös gemeint sein, aber dann würde die gleiche Datei ja mehrmals konvertiert werden.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Conqi
Es gibt im ffmpeg den Schalter -threads xx. Habe ihn aber selbst noch nicht ausprobiert.
Schau mal diese Webseite an, vielleicht ist da was dabei.

Zum Normalisieren verwende ich wxMP3gain.
 
  • Gefällt mir
Reaktionen: CyborgBeta
@Holgip Danke. Ich versuche es mal mit dem Parameter -threads 0
 
Alle Encoder für Audio die ich kenne starten für jeden Thread jeweils eine Instanz. Der Ansatz von Metalveteran ist also gar nicht so falsch. Wie man das nun in ffmpeg reinscriptet weiß ich nicht, ich hab dazu keine guten Beispiele gefunden.
Wenn das so viele Dateien sind würde ich die auf mehrere Ordner verteilen und in jedem ffmpeg mit deiner Instruktion ausführen. Wobei hier je nach Videogröße irgendwann die Anbindung zum Speicher limitiert. Je nachdem was du für eine CPU/SSD hast.

Holgip schrieb:
Es gibt im ffmpeg den Schalter -threads xx. Habe ihn aber selbst noch nicht ausprobiert.
Schau mal diese Webseite an, vielleicht ist da was dabei.
Der gibt halt vor, wie viel Threads ffmpeg für die eine Aufgabe nutzen darf. Wenn sich die Aufgabe aber nicht parallelisieren lässt, wie im Fall von Audio encoding, bringt das nichts.
Es müssen mehrere Instanzen gleichzeitig laufen.
 
Dafür müsste ich die .mp4-Dateien vorher splitten. Das ist eher unpraktisch.
 
ach das ist nur eine lange Datei?
Tja, dann musst du dich da mit einem Thread durchnudeln :/ Audio encoding lässt sich kaum parallelisieren.
Wenn ffmpeg mehr Threads auslasten könnte, würde er es machen, auch ohne direkte Anweisung.
 
  • Gefällt mir
Reaktionen: CyborgBeta
  • Gefällt mir
Reaktionen: CyborgBeta
blöderidiot schrieb:
Hast Du zwar derzeit nicht im Rechner, aber NVENC könnte das laut:
Wobei hier auch nur der Videostream über NVENC läuft, Audio nach wie vor über die CPU.
-c:v hevc_nvenc

Theoretisch kann man dasselbe auch mit AMDs VCN(AMF) machen:
-c:v hevc_amf
Bringt in seinem Fall aber nix, weil nur der Encode des Videos aber nicht Audio durch den Hardwareencoder beschleunigt wird und er den Videostream nur kopiert, den Audiostream aber reencodet.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: blöderidiot
ghecko schrieb:
Bringt in seinem Fall aber nix, weil nur der Encode des Videos aber nicht Audio durch den Hardwareencoder beschleunigt wird.
Stimmt, ich habe auch nicht gefunden, wie man das explizit machen kann. Eine Variante wäre (mal zum probieren), einfach ffmpeg -loudnorm zu versuchen.
ffmpeg [...] -filter:a loudnorm [...]
Wer weiss, vielleicht ist das schneller und reicht auch?
 
Zurück
Oben