Rhodri James kirjoitti:
On Mon, 06 Jul 2009 07:10:38 +0100, jack catcher (nick) <nom...@thank.you> wrote:

Tim Roberts kirjoitti:
"jack catcher (nick)" <nom...@thank.you> wrote:
I'm thinking of using Python for capturing and showing live webcam stream simultaneously between two computers via local area network. Operating system is Windows. I'm going to begin with VideoCapture extension, no ideas about other implementation yet. Do you have any suggestions on how short delay I should hope to achieve in showing the video? This would be part of a psychological experiment, so I would need to deliver the video stream with a reasonable delay (say, below 100ms).
You need to do the math on this. Remember that a full 640x480 RGB stream
at 30 frames per second runs 28 megabytes per second.  That's more than
twice what a 100 megabit network can pump.
You can probably use Python to oversee this, but you might want to consider
using lower-level code to control the actual hardware.  If you are
targeting Windows, for example, you could write a DirectShow graph to pump
into a renderer that transmits out to a network, then another graph to
receive from the network and display it.
You can manage the network latency by adding a delays in the local graph.

Thanks Tim, you're correct about the math. What is your main point about DirectShow: that it is generally faster and more reliable than doing the job high-level, or that one could use coding/decoding in DirectShow to speed up the transmission? I think the latter would be a great idea if the latency were tolerable. On the other hand, I'd like to keep things simple and do all the programming in Python. I've got no experience with DirectShow, but I guess the filters need to be programmed in C++ and called from Python?

Another option might be to use resolution 320x...@15fps.

Does the webcam just deliver frames, or are you getting frames out of
a decoder layer?  If it's the latter, you want to distribute the encoded
video, which should be much lower bandwidth.  Exactly how you do that
depends a bit on what format the webcam claims to deliver.

Well, getting already encoded video from the webcam sounds almost like a free lunch (which it probably is not). At least I wouldn't want to get too long a delay because of the encoding.

I haven't got the webcam(s) yet, and I guess I can basically purchase any ones I find suitable for getting the job done. Any recommendations?
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to