2016-04-27 9 views
-1

Ich versuche, einen Media Processing Server einzurichten. Ich habe viel für FFMPEG recherchiert und einen Befehl geschrieben. Der Befehl lautet wie folgt.FFMPEG Sehr langsam

ffmpeg -y -i "bbb_sunflower_2160p_60fps_normal.mp4" -c:v libx264 \ 
-threads 7 -profile:v main -preset ultrafast -vf scale=1920:-1 \ 
"process/video/1080p.mp4" -c:v libx264 -threads 7 -profile:v main \ 
-preset ultrafast -vf scale=1280:-1 "process/video/720p.mp4" -c:v \ 
libx264 -threads 7 -profile:v main -preset ultrafast -vf \ 
scale=854:-1 "process/video/480p.mp4" -vf fps=5/60 \ 
process/image/thumb_%d.jpg 

Dieser Befehl funktioniert und läuft perfekt, aber es ist Schmutz langsam. Mein Server, der nur gewidmet ffmpeg läuft, hat die folgenden Spezifikationen:

12 Core Intel Xeon X5650 (Hyperthreading aktiviert)
64 GB ECC DDR3 RAM
250 GB SSD-Laufwerk

Aber wenn ich diese Befehl, hängt die Server-CPU-Auslastung um 250-300%, die ich möchte, dass es um 2.000% hängen während der Verarbeitung des Videos. Momentan rendert der Server bei der Verarbeitung des Videos etwa 17 Bilder pro Sekunde. Dies würde sehr lange dauern, um ein 10-minütiges Video mit 60 Bildern pro Sekunde zu verarbeiten.

Antwort

0

Dies ist eine sehr komplizierte Befehlszeile mit wenig bis gar keinen nützlichen Informationen. Zum Beispiel stellen Sie FFmpeg stdout/stderr nicht zur Verfügung (das viele nützliche Informationen enthält). Mögliche Ursachen:

  • Video-Encoding einfach zu langsam ist (versuchen 1 kodieren statt 3, w/o screenshots)
  • vielleicht Ihre Engpass Audio ist (Test mit -an)
  • etwas anderes?

Ich würde Sie ermutigen, einfachere Versionen zu testen und stdout/stderr bereitzustellen.

2

Es ist der Scaler. Der Scaler in ffmpeg ist single-threaded, es ist ein Flaschenhals auf einem System mit so vielen Threads. Versuchen Sie, für jede Ausgabe einen anderen Prozess auszuführen.

+0

Vielleicht kann es hilfreich sein, alle Skalierungen in einem einzelnen Filterkomplex durchzuführen und dann den T-Muxer zu verwenden, um separate Dateien auszugeben. – Mulvya

1

Wenn Sie Windows ausführen, versuchen Sie es erneut mit Defender (und alle anderen Virus-Checker) deaktiviert. Es kann einen großen Unterschied machen. Lassen Sie uns wissen, das Ergebnis bitte ...

Dies arbeitete für mich auf einer Windows 10-Maschine (die dann bis zu zehn Mal schneller verarbeitet) und ist daher eine mögliche Antwort auf das oben genannte Problem. Eine Klärung (egal welcher Art) ist nicht erwünscht, aber es wäre gut zu wissen, ob es geholfen hat.