那如果在WPF中直接decode Rtsp stream然后DrawImage,这样会有效率问题吗?

解决方案 »

  1.   

    WPF是如何与DirectShow层面对接的?虽然都是DirectX实现的...
      

  2.   

    如果你只是要对视频做三维变换和动画,应该不需要自己做解码和渲染吧,直接用MediaElement,把它作为材质贴到三维网格上,然后进行三维变换就可以了。这里有一篇介绍文章:
    Add Video To Controls And 3D Surfaces With WPF
    其中讲三维变形和动画的是这段: Mapping Video onto 3D Surfaces
    效果可以看这个演示:The North Face Demo on PDC 2005
    mms://wm.microsoft.com/ms/msnse/0509/25408/PDC_2005_NorthFaceDemo_MBR.wmv
      

  3.   

    WPF   说真的 很不错。正在学习呢
      

  4.   


    问题是我要渲染的内容是网络过来的自定义RTSP/RTP流,MediaPlayer无法识别,关键就在这里。
    所以我从两个角度在解决这个问题:
    1. 一方面从DirectShow下手,构建Graph让Windows Media Player能够识别,进而让WPF Media Player能够Render
    2. 另外一个方面从WPF层面入手,看看如何将Surface放进去。
      

  5.   


    为什么呢?插入DSHOW FILTER?
    不过还是要WPF version,嘿嘿
      

  6.   

    嘗試這個?http://www.leadtools.com/sdk/multimedia-suite.htm
      

  7.   


    其实通过VLC都是应该可以的,只是想把问题嫩清楚...谢谢ls
      

  8.   

    目前套路已经清楚了
    DirectShow方式
    1. 写SourceFilter解析rtsp,让MediaPlayer能够自动创建filter graph,那么WPF中MediaPlayer就直接可以render
    2. 在graph末端插入SampleGrabber,callback得到DIB,然后通过D3D render出来非DirectShow方式
    1. 直接利用VLC,WpfMediaKit来做
    2. Live555+MPCAny Suggestion?
      

  9.   

    搞定,结贴
    VMR9 in WPF
      

  10.   

    写SourceFilter解析rtsp?请问这个怎么实现?