Wie man MPC-HC dazu bringt, aggressiver zu cachen

Antworten:

4

Hacken von LAV Splitter, um einfaches altes Puffern zu verwenden

LAV Splitter wird zum Abrufen von Netzwerkdaten in einigen Mediaplayern (z. B. MPC-HC) verwendet. Der LAV-Puffer (aka Packets Queue) wird nicht in Datenvolumen gemessen, sondern in Paketen (oder Frames, hier nicht sicher). Wie auch immer, da der Netzwerkdurchsatz durch das Datenvolumen begrenzt ist, wird die Anzahl der Pakete in der Warteschlange mit der factorVariablen multipliziert. Dies ist umso höher, je höher die Qualität des wiedergegebenen Videos (der Audioteil) ist. Dies bietet Puffer mit variabler Länge, aber Sie können die Größe nicht wirklich steuern, und wenn Sie langsames WLAN haben, ist möglicherweise eine abgehackte Wiedergabe aufgetreten.

In der folgenden Anleitung wird die Funktionsweise des LAV-Puffers geändert, indem Paketlimits beseitigt und die berüchtigten Einstellungen für "Maximaler Warteschlangenspeicher" übernommen werden.

32-Bit-Anweisungen

  1. Öffnen Sie die mpc-hc/LAVFilters/LAVSplitter.axDatei in einem 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 legen Sie den maximalen Warteschlangenspeicher auf 256 MB fest. Dies ist groß genug, um mit flockigem WiFi umzugehen, und höhere Werte können zu Instabilität führen (über 1 GB für mich). Sie können aber gerne mit diesem Wert experimentieren.

Einzelheiten

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

Wie kann man es testen?

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

Wann ist das nicht genug?

Dieser Hack vergrößert das Cache-Limit im Grunde um das 187-fache ( 65535 / 350). In den meisten Fällen ist dies ausreichend und der begrenzende Faktor ist der von Ihnen unter Maximaler Warteschlangenspeicher festgelegte . In einigen seltenen Fällen ist dies möglicherweise nicht der Fall

  • Wenn Sie ein sehr langes Video abspielen, ist die Anzahl der zwischengespeicherten Bilder 65535 * factormöglicherweise geringer als die Anzahl aller Bilder in der Videodatei.
  • Wenn Sie Videos mit sehr geringer Qualität wiedergeben möchten, liegt der frame size in MB * 65535 * factorWert möglicherweise unter Ihrem maximalen Warteschlangenspeicher .

factorist im Bereich von 2bis 120( Quelle ).

Vlastimil Ovčáčík
quelle
2
Dies ist ein guter Weg, um es zu testen.
Vlastimil Ovčáčík
3
Nach 4-monatiger Nutzung hat dies die Auswirkung meines schuppigen WLANs auf die Wiedergabe vollständig beseitigt. Stabil bis zu 1 GB "Maximaler Warteschlangenspeicher", dann können Abstürze auftreten.
Vlastimil Ovčáčík
1
Es behebt auch SVPRattern!
FelikZ
@FelikZ, ich weiß was du meinst, 100 MB RAM für eine reibungslose Wiedergabe zu tauschen, ist überhaupt kein hoher Preis. Mit einem kleinen Häkchen in den Einstellungen könnte dies jedoch viel einfacher werden ... Keine Ahnung, was SVP-Chattering ist.
Vlastimil Ovčáčík
1
@ VlastimilOvčáčík Ich habe Max Queue Mem für diesen Fall auf 4096 gesetzt. Ich möchte das gesamte Video im Speicher zwischenspeichern, da ich ein anderes Problem mit meinem beschissenen Heimserver habe und Samba gelegentlich hängt. Aber diese Lösung hat mir wirklich geholfen, meine Probleme zu reduzieren und war ziemlich faszinierend. Danke noch einmal!
Christopher Markieta