Wie lässt sich MPC-HC aggressiver zwischenspeichern?

17908
Vlastimil Ovčáčík

Der Puffer für gestreamte Videos in MPC-HC ist zu klein und kann in den Benutzereinstellungen nicht erweitert werden.

4

1 Antwort auf die Frage

4
Vlastimil Ovčáčík

LAV-Splitter hacken, um die normale alte Pufferung zu verwenden

Der LAV-Splitter wird zum Abrufen von Netzwerkdaten in einigen Media-Playern (z. B. MPC-HC) verwendet. Der LAV-Puffer (auch als Paketwarteschlange bezeichnet) wird nicht in Datenvolumen gemessen, sondern in Paketen (oder Frames, hier nicht sicher). Da der Netzwerkdurchsatz jedoch durch das Datenvolumen begrenzt ist, wird die Anzahl der Pakete in der Warteschlange mit einer factorVariablen multipliziert. Dies ist umso größer, je höher das Video ist, das Sie abspielen (der Audioteil). Dies bietet einen Puffer mit variabler Länge, Sie können jedoch die Größe nicht wirklich steuern und wenn Sie langsames WLAN haben, haben Sie möglicherweise eine abgehackte Wiedergabe erlebt.

In der folgenden Anleitung wird die Funktionsweise des LAV-Puffers geändert, indem Paketlimits aufgehoben werden und die bekannten Einstellungen für "Maximum Queue Memory" übernommen werden (infame, da Sie versucht haben, diese Einstellungen von standardmäßig 256 MB zu erhöhen, ohne dass dies den meisten zuvor gelang).

32-Bit-Anweisungen

  1. Öffnen Sie die mpc-hc/LAVFilters/LAVSplitter.axDatei im HEX-Editor Ihrer Wahl.
  2. Suchen und ersetzen Sie die eindeutige 69 C5 5E 01 00 00Bytefolge mit 69 C5 FF FF 00 00.
  3. Öffnen Sie die LAV-Splitter-Einstellungen und setzen Sie den maximalen Warteschlangenspeicher auf 256 MB. Dies ist groß genug, um mit flockigem WLAN umzugehen, und höhere Werte können zu Instabilität führen (über 1 GB für mich). Aber experimentieren Sie mit diesem Wert.

Einzelheiten

Wir ändern die m_dwQueueHigh = MAX_PACKETS_IN_QUEUE * factor;[ 1 ] -Zeile wo #define MAX_PACKETS_IN_QUEUE 350[ 2 ] zu m_dwQueueHigh = 65535 * factor;. Durch diese Änderung wird die factorEinschränkung effektiv entfernt, und die Einstellungen für den maximalen Warteschlangenspeicher werden nicht mehr von dieser Beschränkung begrenzt.

Wie teste ich das?

Lesen Sie diese Antwort, um herauszufinden, wie groß Ihr Puffer jetzt ist. Sie suchen nach dem Buffers: [0] <buffer-size-in-frames>/<buffer-size-in-KB> KBWert.

Wann reicht das nicht?

Dieser Hack vergrößert das Cache-Limit grundsätzlich um 187-mal ( 65535 / 350). In den meisten Fällen ist dies ausreichend und der limitierende Faktor ist das, was Sie in Maximum Queue Memory einstellen . In seltenen Fällen ist dies möglicherweise nicht der Fall

  • Wenn Sie sehr lange Videos abspielen würden, könnte die Anzahl der zwischengespeicherten Frames 65535 * factorgeringer sein als die Anzahl aller Frames in der Videodatei.
  • Wenn Sie Videos mit sehr niedriger Qualität abspielen würden, frame size in MB * 65535 * factorkönnte das niedriger sein als der Speicher für die maximale Warteschlange .

factorliegt im Bereich von 2bis 120( Quelle ).

[This] (http://superuser.com/a/842244/238468) ist eine gute Möglichkeit, es zu testen. Vlastimil Ovčáčík vor 9 Jahren 2
Nach 4 Monaten Verwendung hat dies den Effekt meines flockigen WLANs auf die Wiedergabe vollständig beseitigt. Stabil bis zu 1 GB "Maximum Queue Memory", dann können Abstürze auftreten. Vlastimil Ovčáčík vor 9 Jahren 3
Es behebt auch SVP-Rattern! FelikZ vor 8 Jahren 1
@FelikZ, ich weiß, was du meinst, der Handel mit 100 MB RAM für eine reibungslose Wiedergabe ist überhaupt nicht hoch. Dies könnte jedoch mit einem kleinen Häkchen in den Einstellungen viel einfacher werden ... Keine Ahnung, was SVP-Chattering ist. Vlastimil Ovčáčík vor 8 Jahren 0
Danke dafür! Gibt es einen Grund, warum Sie das in 64-Bit nicht getan haben? Ich habe einige Videos, die> 1 GB sind, aber nicht sicher sind, ob Sie mehr als FF erhöhen können, ohne etwas zu zerbrechen. Christopher Markieta vor 8 Jahren 0
@ChristopherMarkieta Sie sind willkommen und ja, ich habe keine 64-Bit-Fenster zur Hand. Der FF-Teil ist bereits hoch genug, um Einschränkungen zu beseitigen. Ich meine, Sie würden nichts gewinnen, auch wenn es möglich wäre. Die Cachegröße wird durch * Maximum Queue Memory * bestimmt, wobei 256 MB empfohlen werden. Sie können höher gehen, aber ich habe einige Instabilitäten von über 1 GB festgestellt. Testen Sie es. Es war nicht meine Sache, ganze Videodateien aus dem Speicher abzuspielen (obwohl Sie es könnten), vielmehr genug Videodateien im Cache zu speichern, um Kräuselungen in meinem flockigen WLAN zu überstehen. Vlastimil Ovčáčík vor 8 Jahren 0
@ VlastimilOvčáčík Ich habe Max Queue Mem für diesen Fall auf 4096 gesetzt. Ich möchte das gesamte Video im Arbeitsspeicher zwischenspeichern, da ich ein anderes Problem mit meinem dürren Home-Server habe und Samba gelegentlich hängt. Aber diese Lösung hat wirklich dazu beigetragen, meine Probleme zu reduzieren und war faszinierend. Danke noch einmal! Christopher Markieta vor 8 Jahren 1
@ChristopherMarkieta Danke für das Teilen, ich finde es interessant, dass Sie es mit 4 GB Cache arbeiten lassen. Mit diesen Werten können Sie den neuen Abschnitt "* So testen" * folgen, um sich zu vergewissern, wie groß der Cache ist. Vlastimil Ovčáčík vor 8 Jahren 0
Ich bemerkte, dass meine Cache-Speicher nach wie vor Grenzen gesetzt 260, 000 KB ̶ (̶ ~ 256MB? ̶) ̶, ̶ mit der Anzahl der Rahmen variierend von 7 .000 ̶-̶ 30, 000 ̶ (statt 350) ̶ je nach ̶T̶h̶e̶ ̶v̶i̶d̶e̶o̶ ̶q̶u̶a̶l̶i̶t̶y̶.̶ ̶I̶s̶ ̶t̶h̶a̶t̶ ̶s̶t̶r̶a̶n̶g̶e̶? ̶ Sieht so aus, als würde das Absenken meiner Warteschlange erhöht. Möglicherweise irgendwie eine 32-Bit-Einschränkung? Wäre schön zu sehen, wie es in 64-Bit funktioniert. Christopher Markieta vor 8 Jahren 0
Ich bin mir jedoch nicht ganz sicher, wie Sie die Bytesequenz für dieses Byte gefunden haben. : P Christopher Markieta vor 8 Jahren 0
@ChristopherMarkieta Das Verringern des maximalen Warteschlangenspeichers sollte diesen Effekt nicht haben. Nicht ganz sicher, was zu raten ist. Ich habe [IDA-Decompiler] (https://www.hex-rays.com/products/ida/support/download_freeware.shtml) verwendet. Vlastimil Ovčáčík vor 8 Jahren 0
Ich habe es versucht, aber es funktioniert nicht. `69 C5 5E 01 00 00` wurde nicht in der Datei gefunden. Hikari vor 7 Jahren 0
@Hikari Es tut mir leid das zu hören. Das heißt, Sie haben eine andere Version der LAV-Bibliothek oder 64-Bit-Version. Leider habe ich keine Zeit, diese Anleitung zu aktualisieren. Vlastimil Ovčáčík vor 7 Jahren 0
Es ist in Ordnung. Ich melde nur, dass es nicht mehr funktioniert. Ich danke jedem, der über Fähigkeiten verfügt, die neuen Codes zu finden. Hikari vor 6 Jahren 0