Aufnahmen mit hohen Bitraten auf eine Festplatte anstelle von SSD führen zu erheblichen Verzögerungen

406
Vektorweg

Ich versuche, mit OBS Offline-Aufnahmen zu machen, aber wenn ich es auf eine klassische Festplatte schreibe, wird es stark verzögert, obwohl die Festplatte eine ausreichend hohe Schreibgeschwindigkeit hat (+ 40 MB / s). Ich habe versucht, den Puffer in den gleichen Einstellungen zu erhöhen, aber sie scheinen sich nicht auf die Ausgangs-E / A zu beziehen. Bisher konnte ich keine OBS / ffmpeg-Einstellungen finden, die helfen könnten. Wie kann das behoben werden?

Protokoll: https://paste.fedoraproject.org/paste/L9LoUWC0VRGdxGSYESD2kw

Systeminformationsauszug: https://paste.fedoraproject.org/paste/~OrQZas9rYhaHTtEgJpVfg

Das Protokoll zeigt einen einfachen Geschwindigkeitstest mit dd (über WSL) und das OBS-Protokoll mit zwei Aufzeichnungen. Der einzige Unterschied besteht im Speicherort. Wie zu sehen ist, verliert / verliert die Aufnahme auf die Festplatte (D :) Frames erheblich. Im Vergleich dazu funktioniert die erste Aufnahme auf die SSD wie erwartet. Beachten Sie, dass OBS skipped frames due to encoding lagdie erste Aufzeichnung nicht protokolliert hat, da dies problemlos funktioniert hat.

Ich tat:

  • testen Sie es mehrmals, sodass das Protokoll ein repräsentatives Beispiel zeigt.
  • teste es mit verschiedenen Puffergrößen für die Kodierung, ohne Wirkung.
  • teste es stattdessen mit CRF, wenn CBR.
  • versuchte es mit niedrigeren Bitraten. Weniger schwere Verzögerungen sind bereits bei einer Bitrate von 10.000 zu sehen.

Deutlich sein:

  • Es gibt keinen CPU-Engpass.
  • Es gibt keinen Engpass bei der Gesamt-Schreibgeschwindigkeit der Festplatte (die 60k-Bitrate beträgt etwa 8 MB / s, was in Ordnung ist).

Ich denke, das Problem ist: zu hohe Schreiblatenz und zu kleiner Ausgabepuffer, was entweder ein Fehler in OBS oder ffmpeg sein könnte oder nur eine fehlende Einstellung, die ich nicht kenne.

Ich habe diese Frage schon vorher zu r / obs gestellt .

Update : Systeminformationsabbild und zusätzliche Aufzeichnungsprotokollinformationen hinzugefügt.

0
Bitte machen Sie Angaben zu Ihren Systemspezifikationen. Sagen Sie uns einfach, dass die Bandbreite ausreichend ist oder der Durchsatz nicht ausreicht. Wir benötigen das Festplattenmodell, das Mainboard-Modell oder den Namen des Systemmarken-Modells. Basierend auf dem, was Sie uns gesagt haben, ist das Problem offensichtlich: Ihre Festplatte mit HDD-Festplatten ist nicht der Sache gewachsen. Wenn Sie uns sagen, ist dies kein sehr überzeugendes Argument. music2myear vor 5 Jahren 0
@ music2myear Wie kann die Festplatte den Anforderungen nicht gerecht werden, wenn Geschwindigkeitstests zeigen, dass sie die Bandbreite problemlos verarbeiten kann? Vektorweg vor 5 Jahren 0
Wenn ich raten würde? Weil es mehr ist als nur den Bit-für-Bit-Dateistream der Ausgabedatei zu akzeptieren. Beweis Es funktioniert gut auf einer SSD. Bitte bearbeiten Sie Ihre Frage, um die spezifischen Details der Systemkomponenten wie gewünscht anzugeben, sodass wir diese anfängliche Bemerkung entweder bestätigen oder korrigieren und Sie auf eine gute Lösung hinweisen können. music2myear vor 5 Jahren 0
@ music2myear Ja, es ist nur ein einfacher Bit-für-Bit-Filestream, was die Latenz angeht. Ich verstehe den Punkt wirklich nicht, aber ich habe trotzdem einen System-Info-Dump hinzugefügt. Vektorweg vor 5 Jahren 0
Eine einfache Liste der Festplatten, ihrer Verbindungsmethoden sowie Ihrer CPU und des Arbeitsspeichers wäre ausreichend gewesen. Aber angesichts dieses Speicherauszugs können Sie erklären, in welches Laufwerk Sie schreiben und wie es mit Ihrem Computer verbunden ist. music2myear vor 5 Jahren 0
Ist es richtig, wenn Sie davon ausgehen, dass Sie eine 750 GB-WD-Festplatte an einen USB2-Anschluss angeschlossen haben, und dies ist, worauf Sie schreiben und die Verzögerung auftritt? music2myear vor 5 Jahren 0
@ music2myear Ja. Wollen Sie mir sagen, dass dies ein Problem ist, obwohl ich trotzdem mit 40 MB / s schreiben kann? Vektorweg vor 5 Jahren 0
Behalten Sie die Bitrate bei, lassen Sie jedoch die Framerate der Ausgabe auf 30 und prüfen Sie, Gyan vor 5 Jahren 0
Ich frage mich, ob die Defragmentierung der Festplatte helfen wird. Wenn der Datenträger stark fragmentiert ist, kann er Blöcke nicht sequentiell schreiben und führt zu einer schlechteren Leistung. davidgo vor 5 Jahren 0
@davidgo Die Partition wird kaum verwendet, enthält nur wenige Schreib- und Löschvorgänge und ist meistens leer. also wahrscheinlich nicht. Vektorweg vor 5 Jahren 0

2 Antworten auf die Frage

1
music2myear

Wenn es wie eine Ente geht und quatscht wie eine Ente ...

Das Problem ist die USB2-Verbindung und das Laufwerk am Ende.

Während USB2 schneller ist als einige andere, ist es langsamer als die meisten anderen und ist im Allgemeinen für Echtzeit-Medienvorgänge nicht ausreichend.

Ihre Messwerte weisen möglicherweise auf eine ausreichende Bandbreite hin. Der wahrscheinliche Schuldige ist, dass der reine Datenstrom nicht die gesamte Kommunikation berücksichtigt, die über diesen Link hin und her geht. Die Tests werden häufig optimiert und repräsentieren keine realen Datentypen und Situationen.

Ein USB3-Laufwerk würde wahrscheinlich recht gut in der Lage sein, was Sie benötigen.

Das ist bestenfalls eine wilde Vermutung. USB2 kann die Latenz erhöhen und die Bandbreite einschränken, aber die Bandbreite ist immer noch nicht das Problem, und Verzögerungen bei der Latenz können praktisch immer mit ausreichend großen Puffern behoben werden. Die genutzte Bandbreite skaliert sogar mit der Bitrate, wie ich im Taskmanager sehen kann. Aber es bleibt trotzdem zurück. Das Problem ist also eindeutig nicht die Bandbreite, und wenn man annimmt, dass bessere Hardware dies beheben würde, fehlt hier der Punkt. Vektorweg vor 5 Jahren 0
1
Vektorweg

Vielen Dank an Suchiman für diesen Hinweis.

Der Schreibcache ist für externe Festplatten unter Windows standardmäßig deaktiviert. Durch die Aktivierung wurde das Problem behoben.

Abbildung eines Dialogfensters im Windows-Geräte-Manager

Es ist immer noch nicht die beste Lösung, da OBS / ffmpeg in diesem Fall einen eigenen Schreibcache haben sollte.