如何让 MPC-HC 更积极地缓存

Vla*_*čík 7 video media-player-classic buffer video-streaming

MPC-HC 中的流视频缓冲区太小,无法在用户偏好中扩展。

Vla*_*čík 6

破解 LAV Splitter 以使用普通的旧缓冲

LAV Splitter 用于在某些媒体播放器(例如 MPC-HC)中获取网络数据。LAV 缓冲区(又名数据包队列)不是以数据量来衡量的,而是以数据包(或帧,这里不确定)来衡量的。无论如何,由于网络吞吐量受数据量的限制,队列中的数据包数量乘以factor变量,您正在播放的高质量视频(实际上是音频部分)越大。这提供了可变长度的缓冲区,但是您无法真正控制大小,如果您的 WiFi 速度较慢,您可能会遇到播放断断续续的情况。

以下指南通过消除数据包限制并负责臭名昭著的“最大队列内存”设置来改变 LAV 缓冲区的工作方式(臭名昭著,因为您可能试图将此设置从默认的 256 MB 增加到您之前的许多人都无济于事)。

32位指令

  1. mpc-hc/LAVFilters/LAVSplitter.ax在您选择的十六进制编辑器中打开文件。
  2. 查找并替换唯一的69 C5 5E 01 00 00字节序列69 C5 FF FF 00 00
  3. 打开 LAV Splitter 设置并将最大队列内存设置为 256 MB。这足以处理不稳定的 WiFi,更高的值可能会导致不稳定(对我来说超过 1 GB)。但是可以随意尝试这个值。

细节

我们正在将m_dwQueueHigh = MAX_PACKETS_IN_QUEUE * factor;[ 1 ] 行中的#define MAX_PACKETS_IN_QUEUE 350[ 2 ] 更改为m_dwQueueHigh = 65535 * factor;. 此更改有效地消除了factor约束,并且最大队列内存设置将不再受其限制。

如何测试?

阅读答案以了解您的缓冲区现在有多大。您正在寻找Buffers: [0] <buffer-size-in-frames>/<buffer-size-in-KB> KB价值。

当这还不够时?

这个 hack 基本上将缓存限制扩大了 187 倍 ( 65535 / 350)。在大多数情况下,这已经足够了,限制因素是您在Maximum Queue Memory 中设置的内容。在某些极少数情况下,情况可能并非如此

  • 如果您要播放很长的视频,缓存的帧数65535 * factor可能低于视频文件中所有帧的数量。
  • 如果您要播放质量非常低的视频,则frame size in MB * 65535 * factor可能会低于您的最大队列内存

factor范围从2120来源)。

  • 使用 4 个月后,这完全消除了我的片状 WiFi 对播放的影响。稳定高达 1 GB 的“最大队列内存”,然后可能会发生崩溃。 (3认同)
  • [这个](http://superuser.com/a/842244/238468) 是一个很好的测试方法。 (2认同)

归档时间:

查看次数:

24925 次

最近记录:

7 年,5 月 前