一个画面,多个视频同时播放(就象DirectX的VMRMulti例子一样.......)(100分)

  • 主题发起人 主题发起人 dafu2
  • 开始时间 开始时间
D

dafu2

Unregistered / Unconfirmed
GUEST, unregistred user!
RT!!!!

哪位大峡有做过这方面的研究?
给点提示,有现成的DEMO最好了啊!

谢谢各位!

Email:gxhuangna@126.com
 
一个线程读,多个线程放:

设置一个环形缓冲区,一个读线程把时频数据写入缓冲区末尾,多个线程同时从缓冲区头读数据,分别播放.写线程和多个读线程之间采用"信号量"的方式同步,不要采用临界区来同步,效率比较低.
 
to sky1001:

你说得有点高深啊,搞不懂有DEMO吗?能否指导一下!

最好是用DirectShow来实现.
 
木有现成的DEMO.这只是我从读者/写者算法联想过来的.这种算法在播发流视频方面应用比较多.
至于DirectShow偶不懂.
 
其实,没有那么复杂。简单点使用VMR。复杂点继承个Transform filter自己实现,在继承的Transform方法里面把数据整和(把多个输入PIN数据合并到一个输出PIN中)。
至于同步,都会损耗效率,在这里我们也没有必要考虑,因为Directshow已经有自己的线程,如果另一个输入pin中没有数据,就不复制,如果有再复制
 
to billwillman:

你说的是Mixer例子吗?我觉得那个DEMO不是太好,必须两个视频都播放完才能收到消息,所以不好控制,不能任意加视频个数.我个人觉得还是SDK下VMRMulti的例子很好!
可惜C++水平实在太烂,看不懂啊!billwillman有没有现成DEMO,或者FILTER连接的示意图也好,谢谢指教了啊!
 
VMRMulti它相当于自己实现了个VMR filter。的确如果只用自带的VMR没有办法实现动态插入视频(除非断开VMR Filter上的所有连接)。你所要的两个功能,现成的FILTER估计都没有办法实现,建议自己开发个。
我这现在还没有现成的FILTER,不过现在在开发个商标的TransForm FILTER。商标是个图片,商标内部有云在飘,主要是为了试一下多重纹理,写完了,我贴出来。
 
谢谢billwillman的指点,有一个概念,也有方向了!
能QQ交流Directshow技术吗?

我的QQ:250601500 [:)]
 
当然可以了,QQ:36074912139
 
后退
顶部