我想修改一下原来陆老师18章的“MPEG流的网络客户端播放”的例子,原来例子中的数据是MPEG数据,我想传用ffdshow压缩的mp4v数据。在客户端的source filter和ffdshow MPEG4 decorder连接的时候总是连不上,我已经定义了
DEFINE_GUID(MEDIASUBTYPE_MPEG4V, 0x5634504d, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
也修改了bool CFilterGraph::BuildGraph(void)函数中的以下赋值:
mt.majortype = MEDIATYPE_Video;
mt.subtype   = MEDIASUBTYPE_MPEG4V;
这些类型在graphedit看ffdshow都是支持的?可m_pSourceReader和ffdshow怎么总是不能连接呢?

解决方案 »

  1.   

    没看过你说的例子,mp4是需要有解码filter的.如果确定有而filter连接不上,应该是pin所支持的多媒体类型不匹配
      

  2.   

    看楼主的描述是自己写了网络接受的source filter.也安装了mpeg4的解码filter.那么用GraphEdit播放一个本地mp4文件看看,看source filter的输出pin是什么媒体类型
      

  3.   

    当然,由于我没看过你所说的source filter,不知道是pull还是push模式,如果是pull,那就是字节流stream形式,要是push就麻烦些.有几个输出pin?自己分离音视频了吗?
      

  4.   

    "GraphEdit播放一个本地mp4文件看看,看source filter的输出pin是什么媒体类型"
    是个好方法啊。