How to create a virtual webcam with the Kinect (needing our own hook too)?

Proposed How to create a virtual webcam with the Kinect (needing our own hook too)?

  • Friday, May 04, 2012 10:00 PM
     
     

    This thread talks about a way he's managed to use the Kinect as a webcam - http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/4ee6e7ca-123d-4838-82b6-e5816bf6529c

    I have yet to try it as it seems people are having trouble with it and he says it only works with the old Windows SDK 2 beta and not the current non-beta release.

    The problem with using a separate program to access the Kinect, like that or e2esoft KinectCam, is that we need to access the Kinect from our C# program as well.

    We are using the skeleton feed to do our own calculations for a robot. We want our program to somehow also provide the color stream as a virtual webcam (to be used on Skype etc). Since we're initializing the Kinect within the program, we also have to provide the feed because no 2 programs can call the same Kinect from what I understand.

    How would we go about doing this?

    Thanks,

    Roy

All Replies

  • Tuesday, May 08, 2012 12:11 PM
     
     

    You need to use microsofts add-on which uses kinect in microsoft robotics studio if thats the program your using and then you can perform calculations on the data all you want because the add-on allows the kinect to be used for robotics projects. I think it provides the streams from the kinect but you need to perform some calculations yourself because they are not built into the kinect sdk.

    P.S. Im working on a solution for scotts v1 webcam not working and the wdk guy that replied in directshow forum to me said that scotts code should work but is inefficent or not guarenteed to work everytime. I will see if i can come up with that link again but you might find it in a google search before I get back depending on how fast you need it.


    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda. Blog - http://jefferycarlsonblog.blogspot.com/



    • Proposed As Answer by The Thinker Tuesday, May 08, 2012 12:14 PM
    • Edited by The Thinker Tuesday, May 08, 2012 12:14 PM
    • Unproposed As Answer by The Thinker Wednesday, May 09, 2012 12:12 PM
    •  
  • Tuesday, May 08, 2012 1:54 PM
     
     Proposed

    newest versions of robotics studio does include kinect v1 support as stated here:

    http://msdn.microsoft.com/en-us/robotics/aa731520

    just make sure prequisites are installed before using the kinect features.


    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda. Blog - http://jefferycarlsonblog.blogspot.com/


    • Proposed As Answer by The Thinker Tuesday, May 08, 2012 1:54 PM
    • Edited by The Thinker Wednesday, May 09, 2012 12:12 PM
    • Unproposed As Answer by The Thinker Wednesday, May 09, 2012 12:12 PM
    • Proposed As Answer by The Thinker Wednesday, May 09, 2012 12:13 PM
    •  
  • Tuesday, May 08, 2012 4:33 PM
     
     
    You could also use The Graph Edit and Filter to your Kinect cam
  • Wednesday, May 09, 2012 12:11 PM
     
     

    Graphedit is what i tryed its for testing filters only not programming robots. Sorry about my post above it does include kinect support built into latest update. OP the above should answer your question sorry about any confusion.


    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda. Blog - http://jefferycarlsonblog.blogspot.com/


    • Edited by The Thinker Wednesday, May 09, 2012 12:12 PM
    •  
  • Saturday, May 12, 2012 12:26 AM
     
     

    Seems as though I did a pretty bad job in asking my question.

    We already have been using the Kinect to instruct our robot to do a lot of movements. We now wanted to use the Kinect stream as a webcam as well.

    The reason I commented on the robot, is that I wanted to mention that we aren't JUST using the stream for the webcam, and we need to use both in our program. But it seems as though someone on the team found how to write the stream to file and then used the DirectShow program to pull it out of the file.

  • Saturday, May 12, 2012 1:32 AM
     
     Proposed

    I think the Kinect can have a rgb stream going at same time as the robotics software is calling data because rgb is different from depth data.  I think you should still be able to call Kinect depth stream in code but I think your thread op you posted access's first available Kinect so it's using it but doesn't use any depth data just displays the depth image or rgb depending on which filter you got of scott's. Also, to access rgb/depth stream in code try http://kinectcontrib.codeplex.com which are visual studio templates that have a vb.net and c# versions of Kinect depth and rgb streams but the templates are very basic for new kinect beginner


    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda. Blog - http://jefferycarlsonblog.blogspot.com/



    • Proposed As Answer by The Thinker Saturday, May 12, 2012 1:33 AM
    • Edited by The Thinker Saturday, May 12, 2012 1:37 AM
    •  
  • Saturday, May 12, 2012 1:41 AM
     
     
    If the depth filter locks the depth data you might have problems but i dont think that will be the case.

    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda. Blog - http://jefferycarlsonblog.blogspot.com/


    • Edited by The Thinker Saturday, May 12, 2012 1:41 AM
    •  
  • Monday, May 14, 2012 3:27 PM
     
     

    Seems as though I did a pretty bad job in asking my question.

    We already have been using the Kinect to instruct our robot to do a lot of movements. We now wanted to use the Kinect stream as a webcam as well.

    The reason I commented on the robot, is that I wanted to mention that we aren't JUST using the stream for the webcam, and we need to use both in our program. But it seems as though someone on the team found how to write the stream to file and then used the DirectShow program to pull it out of the file.

    Hello =)

    We're trying to do a similar thing. Can you post the source of streaming to a file and the Directshow program? It would really help us a lot!

    Best Regards, Kibsgaard

  • Tuesday, May 15, 2012 12:27 PM
     
     
    Yes scotts filter above has some efficiency problems and thats probably why it doesnt work in v1 but if you look hes posted the directshow filter source which is commented if you want to change it and fix his errors for your project.

    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda. Blog - http://jefferycarlsonblog.blogspot.com/

  • Friday, May 18, 2012 9:23 AM
     
     
    Yes scotts filter above has some efficiency problems and thats probably why it doesnt work in v1 but if you look hes posted the directshow filter source which is commented if you want to change it and fix his errors for your project.

    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda. Blog - http://jefferycarlsonblog.blogspot.com/

    The problem with Scott's filter in our case, is that its in C++ and we're in C#.

    Would really appreciate if you (Royal2000H) could elaborate on your solution to the problem and maybe post some source? :D We're doing a lot of stuff with the Kinect and Emgu OpenCV in C# and the output of the application should ideally be to a webcam.

    Thanks ^^ 

  • Saturday, May 19, 2012 12:14 AM
     
     Proposed

    Hi Kibsgaard and Royal200H

    i seem to have the same interest i'm sure so do others would be great if someone could share a solution

    Thanks Bill

    • Proposed As Answer by The Thinker Saturday, May 19, 2012 1:26 AM
    •  
  • Saturday, May 19, 2012 1:26 AM
     
     
    DirectShow.net can be used in c# but the DirectShow forum recommended coding in c++. So most people their talk about frame loss when done from dotnet. I'm not afraid to use c++ and do realize its initial setup is long but once you start it becomes easier. I have some help from wdk forum guys so if someone has directshow programming experience or how to setup video cards in c++ I will try fixing Scotts filter for v1. I got Scotts v1 filter to work in amcap and vlc media player so far

    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - "Sherlock holmes" "speak softly and carry a big stick" - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda. Blog - http://jefferycarlsonblog.blogspot.com/

  • Saturday, June 02, 2012 10:02 AM
     
     

    Hi All 

    I seem to have it working in C# with the help of  http://www.e2esoft.cn/downloads/vcam/VCamSDK_v3.2.zip

    Can even connect to the Virtual video device multiple applications at the same time and i use it to stream WebRTC.

    Only problem for me till now is the price of the SDK :(  but maybe that is no issue for others good luck !!!

    Bill