web-dev-qa-db-ja.com

MPC-HCをより積極的にキャッシュする方法

MPC-HCのストリーミングビデオ用のバッファーが小さすぎるため、ユーザー設定で拡張できません。

LAV Splitterをハッキングしてプレーンな古いバッファリングを使用する

LAV Splitterは、一部のメディアプレーヤー(MPC-HCなど)でネットワークデータをフェッチするために使用されます。 LAVバッファ(パケットキューとも呼ばれます)はデータボリュームではなく、パケット(またはフレーム、ここでは不明)で測定されます。とにかく、ネットワークスループットはデータ量によって制限されるため、キュー内のパケット数はfactor変数で乗算されます。これは、再生している高品質のビデオ(実際にはオーディオ部分)の方が大きくなります。これは可変長のバッファーを提供しますが、実際にはサイズを制御できず、WiFiが遅い場合は再生が途切れる場合があります。

次のガイドでは、パケット制限をなくし、悪名高い "最大キューメモリ"設定を担当することで、LAVバッファーの動作を変更します(この設定をデフォルトの256 MBから、以前の多くの設定を利用できないようにするために悪名高い)。

32ビット命令

  1. 選択した HEXエディターmpc-hc/LAVFilters/LAVSplitter.axファイルを開きます。
  2. 一意の69 C5 5E 01 00 00バイトシーケンスを検索して69 C5 FF FF 00 00に置き換えます。
  3. LAVスプリッター設定を開き、最大キューメモリを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制約が効果的に削除され、Maximum Queue Memory設定がそれによって制限されることはなくなります。

それをテストするには?

this の回答を読んで、現在のバッファーの大きさを確認してください。 Buffers: [0] <buffer-size-in-frames>/<buffer-size-in-KB> KBの値を探しています。

これで十分でないときは?

このハックは、基本的にキャッシュ制限を187倍に拡大します(65535 / 350)。ほとんどの場合、これで十分であり、制限要因はMaximum Queue Memoryで設定したものです。まれに、そうでない場合もあります

  • 非常に長いビデオを再生する場合、キャッシュされたフレームの数65535 * factorは、ビデオファイル内のすべてのフレームの数より少なくなる可能性があります。
  • 非常に低品質のビデオを再生する場合、frame size in MB * 65535 * factorMaximum Queue Memoryより低くなる可能性があります。

factor2から120source )の範囲です。