RTSP实时流媒体传输协议的客户端实现,附件是用于windows的dshow插件。
几经修改,连Darwin流媒体服务器,现在我这边测试没有问题。
欢迎对比测试,视频支持H264,MPeg4,音频支持AMR,MP4A(LATM,GENERIC)等规格。
其中接口定义为:
DEFINE_GUID(IID_IURLADDR, // new
0x1014ceb2, 0xcd21, 0x47e1, 0x9e, 0x95, 0xbf, 0x7d, 0xa1, 0x82, 0x2f, 0x11);
DECLARE_INTERFACE_(IURLADDR, IUnknown) // 设置url
{
STDMETHOD(put_url) (THIS_ char *url) PURE;
};
参考代码片段:
HRESULT hr;
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGB);
CoCreateInstance(CLSID_RtspStream, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, reinterpret_cast<void**>(&pSource));
pGB->AddFilter(pSource, L"Tinck RTSP Source");
IURLADDR *pURLAddr=NULL;
hr=pSource->QueryInterface(IID_IURLADDR, (void **)&pURLAddr);
pURLAddr->put_url("rtsp://127.0.0.1/sample_100kbit.mp4");
pURLAddr->Release();
pURLAddr=NULL;
IPin *pOut = NULL;
hr = GetUnconnectedPin(pSource, PINDIR_OUTPUT, &pOut);
if (SUCCEEDED(hr))
{
pGB->Render(pOut);
pOut->Release();
pOut = NULL;
}
hr = GetUnconnectedPin(pSource, PINDIR_OUTPUT, &pOut);
if (SUCCEEDED(hr))
{
pGB->Render(pOut);
pOut->Release();
pOut = NULL;
}
经简单测试,好像和酷狗音乐播放器有冲突,请关闭酷狗音乐播放器后再测试。