0

次のリンクhttp://www.gdcl.co.uk/gmfbridge/で利用できる GMF ブリッジおよび GMF プレイという名前のプロジェクトがあります 。 H264 パケットを入力として与え、ファイルのパスを入力として取り、連続して再生させます。

元のコードは次のとおりです:-

HRESULT hr = m_pPlayer->AddClip(ofn.lpstrFile, &pClip);
ClipPlayer::AddClip(const char* path, ClipEntry** ppClip)
{
    list<ClipEntry>::iterator it = m_Clips.insert(m_Clips.end(), ClipEntry());
    ClipEntry* pClip = &(*it);
    *ppClip = pClip;
HRESULT hr = pClip->Create(m_pController, path);
.....
...
}

私がしたことは

ファイルを開いてNALユニットを解析し、NALユニットをバイト配列に保存して、ファイル名の代わりにBYTEArrayを指定しました。

4

1 に答える 1

0

最初に、バイト配列を他の directshow フィルターに送信する独自​​のソース フィルターを作成する必要があります。SDKにファイルをメモリに読み込んでそれを使用する例が含まれていることをどこかで読んだことがありますが、現在それを確認することはできません。

次に、標準のファイルソースの代わりに、作成したソース フィルターを使用するように ClipEntry クラスを変更する必要があります。

于 2013-01-02T10:05:58.823 に答える