
nomail at thank
Jul 6, 2009, 10:41 AM
Post #6 of 13
(584 views)
Permalink
|
Rhodri James kirjoitti: > On Mon, 06 Jul 2009 07:10:38 +0100, jack catcher (nick) > <nomail [at] thank> wrote: > >> Tim Roberts kirjoitti: >>> "jack catcher (nick)" <nomail [at] thank> 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 320x240 [at] 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
|