Буфер для потокового видео в MPC-HC слишком мал и не может быть расширен в пользовательских настройках.
1 ответ
Взлом LAV Splitter для использования простой старой буферизации
LAV Splitter используется для извлечения сетевых данных в некоторых медиапроигрывателях (например, MPC-HC). Буфер LAV (он же очередь пакетов) измеряется не в объеме данных, а в пакетах (или кадрах, здесь не уверен). В любом случае, поскольку пропускная способность сети ограничена объемом данных, количество пакетов в очереди умножается на factor
переменную, которая тем больше, чем выше качество видео (на самом деле звуковая часть), которое вы воспроизводите. Это обеспечивает буфер переменной длины, однако вы не можете реально контролировать размер, и если у вас медленный WiFi, возможно, вы испытали прерывистое воспроизведение.
Следующее руководство меняет способ работы LAV-буфера, устраняя ограничения пакетов и устанавливая печально известные настройки "Maximum Queue Memory" (позорно, поскольку вы, возможно, пытались увеличить эти параметры с 256 МБ по умолчанию, но безрезультатно, как многие раньше).
32-битные инструкции
- Откройте файл
mpc-hc/LAVFilters/LAVSplitter.ax
в любом редакторе HEX . - Найдите и замените уникальную последовательность байтов
69 C5 5E 01 00 00
на69 C5 FF FF 00 00
. - Откройте настройки LAV Splitter и установите для параметра « Максимальная память очереди» значение 256 МБ. Это достаточно большой размер, чтобы справиться с нестабильным WiFi, и более высокие значения могут привести к нестабильности (для меня более 1 ГБ). Но не стесняйтесь экспериментировать с этим значением.
подробности
Мы меняем коэффициент m_dwQueueHigh = MAX_PACKETS_IN_QUEUE * factor;
[ 1 ] строка, в которой от #define MAX_PACKETS_IN_QUEUE 350
[ 2 ] до m_dwQueueHigh = 65535 * factor;
, Это изменение эффективно снимает factor
ограничение, и настройки Maximum Queue Memory больше не будут ограничены им.
Как это проверить?
Прочтите этот ответ, чтобы узнать, насколько велик ваш буфер сейчас. Вы ищете значение Buffers: [0] <buffer-size-in-frames>/<buffer-size-in-KB> KB
.
Когда этого недостаточно?
Этот хак в основном увеличивает ограничение кеша в 187 раз (65535 / 350
). В большинстве случаев этого достаточно, и ограничивающим фактором является то, что вы устанавливаете в Maximum Queue Memory. В некоторых редких случаях это может быть не так
- если вы будете воспроизводить очень длинное видео, то число кэшированных кадров будет равно
65535 * factor
чем число всех кадров в видеофайле. - если вы воспроизводите видео очень низкого качества,
frame size in MB * 65535 * factor
может быть меньше, чем максимальная память очереди.
factor
находится в диапазоне от 2
до 120
(источник).