有一个名为GMF bridge和GMF play的项目,可在以下链接中找到 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而不是文件名。
答案 0 :(得分:0)
首先必须创建自己的源过滤器,将您的字节数组发送到其他directshow过滤器。我在某处读过sdk包含一个将文件读入内存并使用它的示例,但我目前无法验证。
接下来,您必须修改ClipEntry类以使用您创建的源过滤器而不是标准文件源。