|
|
本来是还想继续整理完后发布的。不过最近决定放弃DShow。改用FFMPEG了。所以这份代码应该不会过多维护了。
该库能支持视频文件播放,VideoCapture设备,并把将数据绘制到自定义的VideoTarget里去。
可以用于游戏视频片头的播放,做简单的摄像头游戏等软件,因为播放精度的问题。离视频播放器是很遥远的。就不要想这个了。
库的结构:
IVideoRenderer :该类有两个派生类。CVideoRenderer和CVideoCapatureRenderer。不用说也知道这两个是干什么的。
IVideoRenderTarget : 这个类就是视频的播放后输出的画布。
ICaptureDeviceSelect/ICaptureDeviceState用于选择抓捕设备。接口指针可以通过IVideoRenderer::get_interface得到。
使用:如果简单的播放视频,那么可以创建一个IVideoRenderTarget 和 IVideoRenderer 对象。把IVideoRenderTarget 的指针传给IVideoRenderer 。给IVideoRenderer::load一个文件(Capture设备的话指定一个设备名或者NULL)。就可以开始播放了。压缩包中有一个用GDI实现的CDemoBMPVTarget。是将视频绘制到BMP中去,如果要绘制到纹理中。大家自己写一个VideoTarget就可以了。
代码编译的时候有些困难。需要DShow的BaseClasee,DShow SDK在Platform SDK里。不是DXSDK里。BaseClasee则在DSHOW SDK的Sample里。连接的时候可能会有各种问题,各位自己解决。
具体细节自己参考代码和事例。本人不再维护这份代码。所以有问题请不要来问我 ,
该代码为参考DShow SDK的代码写成。在保留作者名字的前提下大家可以用于任何用途。但是本人不承担任何责任和潜在责任。
潘李亮 2006/10/10。
http://www.fopen.org/bbs/attachment.php?aid=70 |
|