WPF中如何写RTSP/RTP播放器,200分求思路,标题要长========

nonocast 2012-03-08 12:31:14
我现在从几个方面入手,
1. wpfmediakit
2. vlcdotnet
3. 分析MediaElement Source Code

我的问题是:
1. 不了解在.NET,WPF层面如何处理图像解码和渲染的问题?
2. 不了解MediaElement是如何做到视频解码的?
3. 是否还是要回到DirectShow层面通过Filter处理?
4. MMF怎么介入?

限制:
不考虑ActiveX或是Host方式,因为这样我不能对Player做效果(3D Transform/Animation)

最后,分数不是问题。有过开发经验的请说说怎么处理?
...全文
796 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
random_2011 2014-01-24
  • 打赏
  • 举报
回复
写SourceFilter解析rtsp?请问这个怎么实现?
nonocast 2012-03-14
  • 打赏
  • 举报
回复
搞定,结贴
VMR9 in WPF
白色的海 2012-03-09
  • 打赏
  • 举报
回复
还有没有其它方法???
nonocast 2012-03-09
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 crackdung 的回复:]

嘗試這個?

http://www.leadtools.com/sdk/multimedia-suite.htm
[/Quote]

其实通过VLC都是应该可以的,只是想把问题嫩清楚...谢谢ls
crackdung 2012-03-09
  • 打赏
  • 举报
回复
嘗試這個?

http://www.leadtools.com/sdk/multimedia-suite.htm
nonocast 2012-03-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 crackdung 的回复:]

sl肯定可以
[/Quote]

为什么呢?插入DSHOW FILTER?
不过还是要WPF version,嘿嘿
crackdung 2012-03-09
  • 打赏
  • 举报
回复
SilverSuite
crackdung 2012-03-09
  • 打赏
  • 举报
回复
sl肯定可以
nonocast 2012-03-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jshi123 的回复:]

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

问题是我要渲染的内容是网络过来的自定义RTSP/RTP流,MediaPlayer无法识别,关键就在这里。
所以我从两个角度在解决这个问题:
1. 一方面从DirectShow下手,构建Graph让Windows Media Player能够识别,进而让WPF Media Player能够Render
2. 另外一个方面从WPF层面入手,看看如何将Surface放进去。
冰镇宝贝321 2012-03-09
  • 打赏
  • 举报
回复
WPF 说真的 很不错。。。。正在学习呢
jshi123 2012-03-09
  • 打赏
  • 举报
回复
如果你只是要对视频做三维变换和动画,应该不需要自己做解码和渲染吧,直接用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
nonocast 2012-03-09
  • 打赏
  • 举报
回复
目前套路已经清楚了
DirectShow方式
1. 写SourceFilter解析rtsp,让MediaPlayer能够自动创建filter graph,那么WPF中MediaPlayer就直接可以render
2. 在graph末端插入SampleGrabber,callback得到DIB,然后通过D3D render出来

非DirectShow方式
1. 直接利用VLC,WpfMediaKit来做
2. Live555+MPC

Any Suggestion?
白色的海 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kong19 的回复:]
这个。。。。真不懂。。
[/Quote]
偶也不懂.
貌似我们是一家的,偶也是祥字辈地,看到你很亲切阿,不知道你是我哥还是我是你哥.
楼主的问题很有技术含量,顶起来,别沉咯.
nonocast 2012-03-08
  • 打赏
  • 举报
回复
WPF是如何与DirectShow层面对接的?虽然都是DirectX实现的...
kong19 2012-03-08
  • 打赏
  • 举报
回复
这个。。。。真不懂。。
nonocast 2012-03-08
  • 打赏
  • 举报
回复
那如果在WPF中直接decode Rtsp stream然后DrawImage,这样会有效率问题吗?

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧