我刚注册的一个号,上面没什么分,还请原谅,就当大家交个朋友,如果你要真的很喜欢分的话,用人民币补上可以吧。在做一个网络视频有关的东西,以前用VFW,或用DSPack也够用了,但一直有几个头痛的问题:一是视频设备的获取老是不准确,我是用CapGetDriverDescription来获取的,但居然十有八九是错的,虚拟摄像头就不说了,但用户反映是自己什么都没装也被检测出来有摄像头。
二是视频设备总是被独占,不是我的程序占了QQ的,就是QQ的占了我的,别人的软件要用独占模式打开我也没办法啦,但我能不能用共享方式打开视频呢?三是独占视频设备被别的程序释放后最好能实时检测出来,这个我也做不到。

还有问题如题:如何在DLL线程中获取视频信息并发送
主进程调用DLL,DLL建立线程,在线程中建立窗体,然后实时获取视频数据,我用VideoCap控件这么做似乎也可以,但转了这么多道弯,而且用个控件总觉得碍手碍脚的,更重要的是VideoCap采用的VFW本来就有点过时了,而且这个控件很不灵活,而我这样用DSPack就出问题了,有没有直接调API来或其他不用控件的更灵活、更稳定的方式来解决线程中获取视频信息的问题。最后排除一下几个已经尝试过,不理想的方案,免得大家在回答时浪费时间
1、直接发送视频消息拷贝到屏幕,然后再抓屏幕传输(我不需要本地显示);
2、写视频到文件,然后发送文件(我需要内存读取);
3、连接到编码器再发送(我不能确定客户所有的编码器和解码器,也无法确定接收端是否有相同的解码器);
4、硬件视频采集卡(我没钱给我的用户一人买一个);

解决方案 »

  1.   

    我用.h263压缩视频,win98只要安装了netmetting 即可;还可以使用xvid ,opensources得,做到setup带上就行了,直接用api得话用vfw 最容易;
      

  2.   

    请问S.F.(chinasf.cnblogs.com)大虾,netmetting用的是什么协议传音视频数据?
    把你实现的协议栈给俺看看,我也想跟它连连看!楼主,你非要在dll里面捕获视频的话,还是用vfw吧!
      

  3.   

    vfw已经开始被淘汰了,而且DLL也不是限制DSPack的问题啊,当然,可能要穿透Delphi的VCL机制,不知道有没有用VC的