1

ビデオをテキストと画像でオーバーレイできるビデオプレーヤーを作成しようとしています。今、私はビデオをキャプチャし、自分のソフトウェアに表示するために drikshow サンプル グラバー フィルターを使用しています。正常に動作しますが、Atom のようなそれほど強力でないシステムでは非常に遅くなります。他の人が提案したように、EVR Presenter も使用しようとしました。マネージ DirectX 9 グラフィックスとゲーム プログラミングでコード プロジェクト ( Direct3D ビデオ レンダリングを使用した純粋な C# の EVR プレゼンター) のコード例から EVR プレゼンターを使用し、キック スタートでフレームをテクスチャに変換し、変換されたテクスチャを画面に表示します。サンプル コードは次のとおりです。

    lock (m_csLock)
{
    if (systemSurface == null)
        systemSurface = Surface.CreateOffscreenPlain(m_Device, _surface.Description.Width, _surface.Description.Height, _surface.Description.Format, Pool.SystemMemory);

    if (texture == null)
        texture = new Texture(m_Device, systemSurface.Description.Width, systemSurface.Description.Height, 1, Usage.Dynamic, systemSurface.Description.Format, Pool.Default);

    using (Surface texturesurface = texture.GetSurfaceLevel(0))
    {
        m_Device.GetRenderTargetData(_surface, systemSurface);
        m_Device.UpdateSurface(systemSurface, texturesurface);
    }
}

しかし、それでもレンダリング速度は非常に遅く、多くの CPU パワーを必要とします。ビデオをキャプチャしたり、ビデオ フレームをテクスチャにコピーしたりする方法があれば教えてください。

4

0 に答える 0