Mehrere Videos parallel umwandeln (x264)

yetisports

Lieutenant
Registriert
Juli 2008
Beiträge
747
Hallo zusammen,

ich archiviere gerne einmal meine DVB-S(2)-Aufnahmen. Leider habe ich beim Encodieren von SD-Aufnahmen mit XMedia Recode und Handbrake nur etwa 30% CPU-Last auf meinem System. Ich könnte natürlich das Preset von Medium auf Placebo stellen um auf 100% zu kommen, aber ich bin mit der Videoqualität so zufrieden und würde daher gerne die "verschenkte" CPU-Last nutzen, um mehrere Videos parallel umzuwandeln. Natürlich könnte ich mehrere Instanzen der Programme öffnen; aber gibt es auch Programme die mehrere Encoding-Jobs parallel bearbeiten? Damit wäre mir auch schon geholfen. 100% Auslastung bekomme ich sonst nur bei 720p bzw. 1080p hin. Hoffe ihr könnt mir da helfen.

PS: Ich kodiere immer mit Qualitätsfaktor (CRF18 / 20 / 22), nicht mit 2pass auf Dateigröße oder Bitrate.
 
Zuletzt bearbeitet:
Das finde ich sehr komisch, dass Handbrake mit x264 nur 30% CPU-Last erzeugt. Bei mir werden meine 8 Kerne immer voll ausgenutzt. Eventuell ist irgendwo anders der Flaschenhals. Soweit ich weiß kann Handbrake direkt nicht mehrere Videos gleichzeitig encodieren, da es eigentlich wunderbar über alle Kerne skalieren sollte.
 
Bist du sicher dass du die Datei schnell genug von der Quelle lesen kannst bzw. zum Ziel dann schreiben? Bei meinem i7-2600 mit 8 HT Kernen werden auch immer alle 8 voll ausgelastet und er rendert mit ca. 330 FPS .... (bei CRF 20).
 
Da stimmt irgendwas nicht. Ich mache das zwar mit MeGUI aber das verwendet ja auch das selbe (?) x264 zum kodieren. x264 sollte alle verfügbare Rechenpower verwenden.

Installier handbrake mal neu, zur Not versuche MeGUI.
 
Die Files die ich kodiere sind ja ts-Streams. Aber bei mir sind es im Schnitt dann immer nur 220 fps. Wohlgemerkt bin ich dann bei 720p auch nicht viel langsamer, aber eben mit voller CPU-Last. Der Mainthread kann ja nicht so stark limitieren; immerhin laufen ja im Turbo alle Kerne mit 3,1 GHz. Muss ich mir heute Abend noch einmal anschauen wenn ich wieder daheim bin.

EDIT: Dein 2600K läuft auf 4,4GHz. Wenn die Threadzahl so limitiert kann wirklich der Mainthread der Flaschenhals sein. Zumindest skalieren unsere FPS relativ linear zur Taktrate. Letztendlich ist für die Aufgabenverteilung immer noch der Mainthread notwendig, oder? Und der limitiert bei meinem Takt ein wenig mehr wie bei dir.
Und ein 2500K hat ja nur 4 Threads, die sind ja bei mir auch ausgelastet :p.

Mein 3930K@4,2GHz den ich davor hatte kam mit der Software auch schon nie auf mehr als 70% Auslastung bei SD-Material. Was ja dann auch in etwa 4 Cores (+ Hyperthreading) = 8 Threads sind.

Dennoch wird ja die Threadzahl von x264 automatisch auf Threads * 1,5 gesetzt, müsste als in meinem Fall bei 30 sein. Scheint aber nichts zu bringen, wenn der Mainthread nicht mehr als 220 Bilder pro Sekunde an die anderen Threads zur Verarbeitung verteilen kann.

EDIT2: HDD-Auslastung ist ja laut Ressourcen-Manager immer grob bei 10% gewesen, daran kann es nicht liegen. Unterschiedliche Quell- und Ziellaufwerke ändern auch nix.

EDIT3: Zeigt sich auch in diesem Test, dass bei geringer Auflösung Quadcores deutlich schneller sind als 4+-Kerner. Erst bei hohen Auflösungen sind 4+-Kerner deutlich besser:
http://www.anandtech.com/show/8426/...view-core-i7-5960x-i7-5930k-i7-5820k-tested/5
 
Zuletzt bearbeitet:
220fps sind meiner Meinung nach schon ein ganz guter Durchsatz. Deshalb würde ich wie meine Vorredner darauf tippen, dass die Festplatte limitiert. Gerade wenn Quelle und Ziel auf der gleichen Festplatte liegen kann das schnell passieren.
 
also .. ich hab alle 8 Threads bei 100% ..... nicht 70 oder 60, wenn ich später zuhause bin lad ich dir gerne nen Screenshot hoch. (auch um evtl Einstellungen zu vergleichen falls Interesse besteht)
Ergänzung ()

So, hier das Bild. Ich hab ne alte Aufnahme meiner Dbox2 aus 2010 genommen, ist auch ein .ts File. Damit hab ich sogar fast 500 FPS, siehe Bild.
handbrake.jpg
 
x264 skaliert auch eher mies bei SD-Aufnahmen, der bekommt schon die sechs Kerne hier erst ab 1080p halbwegs ausgelastet, selbst da bringen zwei Instanzen noch einen leichten Vorteil (ich codiere in der Regel mit -preset slow -crf 19). Der Xeon hat mal eben 20 Threads.

Von welchem Betriebssystem reden wir hier? Unter Linux ginge zum Beispiel folgendes:
Code:
cd /ort/zu/Rohdateien
find . -type f | parallel -j4 ffmpeg -i {} -c:v libx264 bla bla bla /ort/zu/Zieldateien/{}

für vier Encoding-Vorgänge gleichzeitig
 
Zuletzt bearbeitet:

Ähnliche Themen

D
Antworten
3
Aufrufe
1.287
=DarkEagle=
D
Zurück
Oben