Dear monks,
I just bought a webcam but I am not satisfied with it because as it was not delivered with streaming software.
I thought that Yahoo! Messenger or MSN Messenger would be fine to transmit live video to my friends, but for a couple days now the Yahoo server dropped 90% of my frames (the rate was greater than 1 frame every 15 seconds) and let's not even talk about MSN Messenger - the "bigbrotheroverbloatedsystemslowdownertrash" chat application - that takes the guts out of my old AMD K6 380 (yes, 380MHz!) laptop...
As a perl monk and as a perl hacker, my conclusion is that I have to develop myself an application that serves video as well as it is possible. Please don't tell me that to get a fast TCP/IP layer I should turn to Linux since I already know this. My requirement is to develop for the Windows platform. And in my mind, Perl is the language of choice when dealing with network transfers.
I thought that I may find in your posts some helpful information to get started on this project.
The three most important software modules that I foresee are the following:
- Video streaming server
- Video streaming client
- Video grabber
By video streaming, don't get me wrong, I am not saying that I want to replace .rm or .asx formats... My "video stream" would simply be a sequential transfer of JPEG files captured one by one from my webcam.
Having queried Perlmonks and the web, I found out that apparently there exists a Win32::Scanner module on CPAN but I am wondering if it really gets the job done because I am not sure my webcam offers a TWAIN interface... Does somebody know if instead there exists a perl interface to the VFW (Video for Windows) API? I used VFW in the past and I am sure my webcam can be accessed through it. That would get me done for the video grabber.
Now, for the streaming client and server, I thought about using UDP transfer because it is faster than TCP and it does not matter if sometimes a frame is lost due to network problems. What do you think about this? Since there are so many modules available, could you tell me which CPAN module you would use to create this part?
After I get those basic components working, I will probably want to create a small client interface (with Win32::GUI probably) and I will think about making the transfer invisible to software and hardware firewalls, that is switch to HTTP transfer and try to transform the application into an Internet Explorer plugin. I would really like to get some comments on that part as well.
Any comments appreciated!
brother Gaggio+
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.