Video capture and streaming from Webcam

Posted on 2002-06-07
Last Modified: 2013-11-13
I'm currently trying to write a piece of software that will capture video from a webcam, and stream this over a LAN to other computers on the network.

So far, I've managed to write code that will capture an AVI file, and code that will send this AVI to any other machine that requests it. However, I need to take this a step further and make this a real time process, letting other users on the LAN watch the video live, as it happens.

After a little research, it seems that I must capture the AVI to memory, rather than to a file. The OCX I was using doesn't support this, so I feel like I'm back to square one. Thus the first part of my question, can anyone recommend an OCX that will let me save the file to ram instead?

Now, when it comes to streaming, I know little more than it's usually (or possibly always?) done with the UDP protocol. Again, this shouldn't prove to be a problem, since I'm quite comfortable with the use of the winsock control for TCP and UDP communication.

However, I still need to figure out:

1) How to capture the AVI to RAM
2) How to prepare this stream / retreive the data to be sent via the winsock control

Full points will be given to anyone who can offer me relative code, otherwise I will drop the points available and allocate them to anyone who can point me to another site with references to this subject that prove useful in the final solution.

Thanks in advance,

Stephen Sherlock
Question by:stesherlock

Expert Comment

ID: 7064157
Have a look at the Windows Media packes on the MS sites.

Windows Media Encoder is free to download, and works very well.  I have many servers spread across the country streaming 28kbps HTTP programs 24x7x365

If you can't get WME to recognise your Webcam drivers, you may be better off getting a low cost compatible encoder card (many listed on WME site) and going that way.  The quality and reliability will be well worth the difference.


Expert Comment

ID: 7064289

Author Comment

ID: 7064620
I'm afraid neither of those suggestions appear to acheive my desired result.

I need to be able to code this feature into an existing project to provide additional functionality, so the MS WME is out of the question (unless I've overlooked something on the site? Some more accurate links would be appreciated if this is the case).

The second method seems to only capture shots at certain intervals, which is again not really what I'm looking for since the video will ideally be real time, around the 15-25 FPS mark.

Thanks for trying.
Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why


Author Comment

ID: 7066022
I may be wrong, but I've just downloaded the DirectX SDK again, and this DirectShow side of things seems to look promising.

Has anyone had any expereience with DirectShow from VB? Any relevant code would be greatly appreciated.

Author Comment

ID: 7068555
Since I believe the way to go with this is now to use DirectShow, I'm going to delete this question and post another with a different "topic" that may promote more interest.


Accepted Solution

Un1 earned 250 total points
ID: 7145138
Did you try the AVPhone controls?

Author Comment

ID: 7146798
Well, since it was the AV Phone control that I ended up using (and forgot about this question in the process :() I'll give the points to UN1 for being the first to suggest it...

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
passing parameter in sql procedure 9 63
vb6 connector to mongodb 2 84
Way to decrease size of apk file 9 69
VBA - If Bookmark = "XXBOOKMARKXX" then 15 28
If you haven’t already, I encourage you to read the first article ( in my series to gain a basic foundation of R and R Studio.  You will also find the …
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question