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