0

有一个名为 GMF 桥和 GMF 播放的项目,可在以下链接 http://www.gdcl.co.uk/gmfbridge/在这个项目中,我们能够将文件作为输入并播放它,但我怎么能将 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 回答