在Overlay Mixer 2中截图!!!(200分)

  • 主题发起人 主题发起人 yuki2003
  • 开始时间 开始时间
Y

yuki2003

Unregistered / Unconfirmed
GUEST, unregistred user!
此帖讨
在Overlay Mixer 2中截图!!!需要Delphi代码!
另外
SampleGrabber不支持VIDEOINFOHEADER2结构,弄来弄去VIDEOINFOHEADER2结构的媒体就是不能截屏。
播发vob文件或dvd的时候,过滤器用了Overlay Mixer 2,SampleGrabber已经失效,
现在有两个方案,
1:谁能做个Filter接口,能把VIDEOINFOHEADER2的媒体截图。
2:能否在IDDrawExclModeVideo中的IDirectDraw或IDirectDrawSurface把图像接下来。
代码需要是Delphi,
C++的我弄来弄去没调试成功。

第一个方案的ID在
由于SampleGrabber不支持VIDEOINFOHEADER2结构(求可以截图VIDEOINFOHEADER2结构的代码)
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2170865
第二个方案的ID在
在IDirectDraw或IDirectDrawSurface把图像接下来。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2170862
 
IBasicVideo.GetCurrentImage
 
IBasicVideo.GetCurrentImage 是最不能用的了,只支持GDI,还要把媒体暂停,
我放的媒体是Overlay Mixer或Overlay Mixer 2的,YUY2格式的
Dvd只能用Overlay Mixer2播放的
 
那只能做个Filter了 我没有做个 不过DSPack里边有BasicFilter的资料应该有参考价值
 
我现在就差Dvd跟它的vob文件截不了图(VIDEOINFOHEADER2),别的微软格式都可以截图(VIDEOINFOHEADER1)
Overlay Mixer工作在(YUY2)
Video Renderer工作在(Rgb32)

而Dvd跟vob文件是在Overlay Mixer 2(VIDEOINFOHEADER2格式)下播放的
微软的资料只说了一句SampleGrabber不支持VIDEOINFOHEADER2结构
!@#$%^&*()_+|
 
如果真的只是要截一幅图的话IBasicVideo有什么不可以的呢,(我不知道是否可以支持DVD,如果支持的话(可能不支持我想))只支持GDI是什么意思?ASF/MPEG至少没问题
如果不支持的话如你所说是因为YUY的问题那可能就比较麻烦了只能写一个传送Filter,然后把数据传出来还要在做解析(非DIB格式)
 
IBaseVideo->GetCurrentImage 只支持软件模式播放的那种情况!!!(按下Print能复制图象到剪切版的那种!!!)
ISamplGrabber->GetCurrentBuffer支持
Overlay Mixer工作在(YUY2) 我知道怎么截图(无论任何都不用Rgb模式)
Video Renderer工作在(Rgb32) 我知道怎么截图(如果显卡支持,优先用YUY2,否则用Rgb模式,这就是为什么关了3d加速就可以用Print截图,GetCurrentImage只有在Rgb模式才能用)
而播放Dvd是用Overlay Mixer2的 我不知道怎么截图(ISamplGrabber声明不支持了)
 
****************
IBasicVideo.GetCurrentImage 是最不能用的了,只支持GDI
IBaseVideo->GetCurrentImage 只支持软件模式播放的那种情况!!!(按下Print能复制图象到剪切版的那种!!!)
****************
别的不是很清楚,这点好像不是很正确如果用 GDI的话是很慢的不可能的最起码也得失DrawDIB 我记得我在实验的时候ScreenPrint是不管用的

而且我觉得IBasicVideo应该可以用的,身边没有环境,没办法实验不好意思
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
932
import
I
I
回复
0
查看
601
import
I
后退
顶部