Jak zmusić MPC-HC do bardziej agresywnego buforowania

Odpowiedzi:

4

Włamanie LAV Splittera do zwykłego starego buforowania

LAV Splitter służy do pobierania danych sieciowych w niektórych odtwarzaczach multimedialnych (np. MPC-HC). Bufor LAV (inaczej kolejka pakietów) nie jest mierzony w ilości danych, ale raczej w pakietach (lub ramkach, tutaj nie ma pewności). W każdym razie, ponieważ przepustowość sieci jest ograniczona przez objętość danych, liczba pakietów w kolejce jest mnożona przez factorzmienną, która jest tym większa, im wyższa jest jakość wideo (właściwie część audio), którą grasz. Zapewnia to bufor o zmiennej długości, jednak tak naprawdę nie można kontrolować rozmiaru, a jeśli masz wolne WiFi, możesz doświadczyć przerywanego odtwarzania.

Poniższy przewodnik zmienia sposób działania bufora LAV, eliminując limity pakietów i wprowadzając niesławne ustawienia „Maksymalna pamięć kolejki” (niesławne, ponieważ mogłeś próbować zwiększyć te ustawienia z domyślnych 256 MB, ale wiele z nich nie przyniosło wcześniej).

Instrukcje 32-bitowe

  1. Otwórz mpc-hc/LAVFilters/LAVSplitter.axplik w wybranym edytorze HEX .
  2. Znajdź i zamień unikalną 69 C5 5E 01 00 00sekwencję bajtów na 69 C5 FF FF 00 00.
  3. Otwórz ustawienia rozdzielacza LAV i ustaw maksymalną pamięć kolejki na 256 MB. Jest wystarczająco duży, aby poradzić sobie z niestabilnym Wi-Fi, a wyższe wartości mogą wprowadzić niestabilność (powyżej 1 GB dla mnie). Ale możesz eksperymentować z tą wartością.

Detale

Zmieniamy linię m_dwQueueHigh = MAX_PACKETS_IN_QUEUE * factor;[ 1 ], gdzie #define MAX_PACKETS_IN_QUEUE 350[ 2 ] na m_dwQueueHigh = 65535 * factor;. Ta zmiana skutecznie usuwa factorograniczenie, a ustawienia maksymalnej pamięci kolejki nie będą już przez nią ograniczane.

Jak to przetestować?

Przeczytaj odpowiedź, aby dowiedzieć się, jak duży jest teraz Twój bufor. Szukasz Buffers: [0] <buffer-size-in-frames>/<buffer-size-in-KB> KBwartości.

Kiedy to nie wystarczy?

Ten hack zasadniczo zwiększa limit pamięci podręcznej 187 razy ( 65535 / 350). W większości przypadków to wystarczy, a czynnikiem ograniczającym jest to, co ustawia się w Maksymalna pamięć kolejki . W niektórych rzadkich przypadkach może tak nie być

  • jeśli chcesz odtwarzać bardzo długie wideo, liczba buforowanych klatek 65535 * factormoże być mniejsza niż liczba wszystkich klatek w pliku wideo.
  • jeśli grasz w bardzo niskiej jakości wideo, frame size in MB * 65535 * factormoże być ona mniejsza niż maksymalna pamięć kolejki .

factorjest w zakresie od 2do 120( źródło ).

Vlastimil Ovčáčík
źródło
2
To dobry sposób na przetestowanie tego.
Vlastimil Ovčáčík
3
Po 4 miesiącach użytkowania całkowicie usunęło to wpływ mojego niestabilnego Wi-Fi na odtwarzanie. Stabilny do 1 GB „Maksymalna pamięć kolejki”, mogą wystąpić awarie.
Vlastimil Ovčáčík
1
Naprawia także SVPgadanie!
FelikZ
@ FelikZ, wiem o co ci chodzi, handel 100 MB pamięci RAM dla płynnego odtwarzania wcale nie jest wysoką ceną. To może być o wiele łatwiejsze, z jednym małym polem wyboru w ustawieniach ... Nie mam pojęcia, czym jest rozmowa SVP.
Vlastimil Ovčáčík
1
@ VlastimilOvčáčík W tym przypadku mam Max Mem Queue Mem ustawiony na 4096, chcę buforować cały film w pamięci, ponieważ mam inny problem z moim kiepskim serwerem domowym i Samba czasami się zawiesza. Ale to rozwiązanie naprawdę pomogło mi zmniejszyć problemy i było dość fascynujące. Dzięki jeszcze raz!
Christopher Markieta