473,890 Members | 1,357 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Writing Video conference software for Windows

Hi,

I need to write a software that allow to see the desktop and hear the
microphone capture of a remote PC across a network. I need to do that
for a unviresity assignement. The software must run on Windows. Since
I like Python very much I am thinking to write that software in
Python. Do you thinkit is a good choice? Are there libraries for audio
compression (OGG or MP3 or maybe GSM or something like realaudio) and
video compression (btw what can be some good libraries to transmit
images of a desktop in a bandwidth-efficent way?). What about capture
of audio and screen? (Probably i will need some Win32 system call,
there are bindings in Python, aren't they?)

If I needed to write some Python modules in C, would it be difficult?

Can some language like C# or C++ may be better?

Thnx
PAolo

--
if you have a minute to spend please visit my photogrphy site:
http://mypic.co.nr
Sep 19 '06 #1
7 5460
If you're going to need win32 system access use the win32all python
extension (very, very good extension). Do you need single frame image
capture, or constant video stream? PIL can be used for the first, it
might also be usable for video, I'm not sure. For sound, python comes
with some built in libraries, but you should also take a look at
pysonic http://www.cs.unc.edu/Research/assist/developer.shtml. For the
bandwidth efficiency issue, what type of connection are you using? The
socket module is quite capable of transmiting whatever data you have,
so unless you're thinking of implementing some mini bittorrent like
network in an attempt to save bandwidth I don't know what you can do
about that. There's an extension called IPqueue which might give you
somewhere to start for packet/bandwidth manipulation. Check out The
Vaults of Parnassus, which has a lot of stuff (including ogg/mp3
converters last time a check). Big question, is this supposed to act
like a remote desktop, or just show what's happening? Start by
searching Google, it's very useful.

Paolo Pantaleo wrote:
Hi,

I need to write a software that allow to see the desktop and hear the
microphone capture of a remote PC across a network. I need to do that
for a unviresity assignement. The software must run on Windows. Since
I like Python very much I am thinking to write that software in
Python. Do you thinkit is a good choice? Are there libraries for audio
compression (OGG or MP3 or maybe GSM or something like realaudio) and
video compression (btw what can be some good libraries to transmit
images of a desktop in a bandwidth-efficent way?). What about capture
of audio and screen? (Probably i will need some Win32 system call,
there are bindings in Python, aren't they?)

If I needed to write some Python modules in C, would it be difficult?

Can some language like C# or C++ may be better?

Thnx
PAolo

--
if you have a minute to spend please visit my photogrphy site:
http://mypic.co.nr
Sep 19 '06 #2
19 Sep 2006 09:42:51 -0700, Jordan <jo************ @gmail.com>:
If you're going to need win32 system access use the win32all python
extension (very, very good extension). Do you need single frame image
capture, or constant video stream? PIL can be used for the first, it
might also be usable for video, I'm not sure.
Well I need something like 5-10 fps. An issue is the comression
method: MPEG and friends aren't good (I think) for compressing stuff
with sharp borders. Maybe I could use A sequence of PNG images, but it
isn't a great solution.

For sound, python comes
with some built in libraries, but you should also take a look at
pysonic http://www.cs.unc.edu/Research/assist/developer.shtml. For the
bandwidth efficiency issue, what type of connection are you using? The
socket module is quite capable of transmiting whatever data you have,
so unless you're thinking of implementing some mini bittorrent like
network in an attempt to save bandwidth I don't know what you can do
about that. There's an extension called IPqueue which might give you
somewhere to start for packet/bandwidth manipulation. Check out The
Vaults of Parnassus, which has a lot of stuff (including ogg/mp3
converters last time a check). Big question, is this supposed to act
like a remote desktop, or just show what's happening? Start by
searching Google, it's very useful.
Well the bandwidth issue is most of all related to video compression
(see above). Well maybe 256 kbps would be nice.

It should just show what's happening.
PAolo
Sep 21 '06 #3

Paolo Pantaleo wrote:
Well I need something like 5-10 fps. An issue is the comression
method: MPEG and friends aren't good (I think) for compressing stuff
with sharp borders. Maybe I could use A sequence of PNG images, but it
isn't a great solution.
You probably want to use is VideoCapture for capturing digital video
from e.g. USB webcameras (videocapture.s ourceforge.net) , Twisted for
asynchronous sockets (twistedmatrix. com), and PyMedia for video and
audio codec (pymedia.org). For GUI and graphics there are a number of
candidates, e.g. PyGTK or PyGame.

Video conference is an I/O bound task (except for the audio/video
codec), and you will consequently gain nothing by using C++ over
Python. The only part that is CPU-bound part (where C++ could
theoretically be better) is the media codec, but you can leave that to
PyMedia's C extensions. Python will most likely not be the bottleneck!

Sure, you could use C++ instead. However, you would quickly be
frustrated with Windows' extremely complex native APIs. E.g. DirectShow
for digital video capture, Winsock for asynchronous sockets,
Microsoft's multimedia APIs for codec, and perhaps MFC for GUI. Using
Python is a good advice!

Sep 21 '06 #4
I need to write a software that allow to see the desktop

That would be the VNC protocol. Don't reinvent the wheel.

VNC is relatively efficient in that it only updates the portions of the
screen that changed.

Maybe this project could be your starting point.
PyVNC
http://bdash.net.nz/blog/2005/07/17/...on-vnc-client/
and hear the
microphone capture of a remote PC across a network.
I need to do that
for a unviresity assignement. The software must run on Windows. Since
I like Python very much I am thinking to write that software in
Python. Do you thinkit is a good choice? Are there libraries for audio
compression (OGG or MP3 or maybe GSM or something like realaudio)
PyMedia can record and it works for mp3 and oggs.
and video compression (btw what can be some good libraries to transmit
images of a desktop in a bandwidth-efficent way?).
See above. You can lossy compress images in VNC.
(Probably i will need some Win32 system call,
there are bindings in Python, aren't they?)
The above modules should take care of everything. BTW, PIL can take
screen shots if you want to do this manually.

You need to create a streaming server for audio. Take a look at Edna, a
streaming MP3 server. http://edna.sourceforge.net/

Also of interest ... Twisted and Shtoom.

And finally... since you are on Windows - you can just try using the
NetMeeting ActiveX control through Python. It already does everything
you want.

Disclaimer: While I tinkered with many of the above, I have not used
most of the above projects recently. These are just leads for you to
explore.

Sep 22 '06 #5
Thnx everybody for the precious help :)

Someone said about VNC... I'll take a look, but since it is an
exercise I need to do it, I can't just say someone else arelady did
that :)

Everything seems quite useful. I forgot two specifications:

1. Screen should be split in small squares and only the changing
squares must be transmitted (Ok it shouldn't be too difficult)

2. The comunication must be in multicast

I will spend some time testing the resources.

PAolo
Sep 22 '06 #6
2006/9/22, Paolo Pantaleo <pa***********@ gmail.com>:
Thnx everybody for the precious help :)

Someone said about VNC... I'll take a look, but since it is an
exercise I need to do it, I can't just say someone else arelady did
that :)

Everything seems quite useful. I forgot two specifications:

1. Screen should be split in small squares and only the changing
squares must be transmitted (Ok it shouldn't be too difficult)

2. The comunication must be in multicast
Twisted supports multicast ( example
http://aspn.activestate.com/ASPN/Coo.../Recipe/425975)
>
I will spend some time testing the resources.

PAolo

--
if you have a minute to spend please visit my photogrphy site:
http://mypic.co.nr
Sep 22 '06 #7
Someone said about VNC... I'll take a look, but since it is an
exercise I need to do it,
Exercises typically need you to implement, not invent (leave that for a
thesis or a dissertation). Rather than invent VNC, you could just
implement it on your own from the specs.

http://realvnc.com/docs/rfbproto.pdf
I can't just say someone else arelady did that :)
No. But you can build upon it :-). Few construct software from the
scratch.

Sep 22 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
2149
by: Stefan Tietke | last post by:
Hi all, for a realtime simulation of a video installation we want to use Quicktime to read video data from a file or stream and process the data in a realtime Gameblender model. We are trying to simulate a large-scale, low resolution media facade using individuell video pixels to control lamps mounted into the facade.
3
3197
by: DMS | last post by:
I need to create some specifications and budget request for a workstation (G5) and all necessary hardware and software for authoring online college courses. The course material would contain short bits of streaming video and audio, short bits of animation, text and webforms. (I don't have to consider serving the output) This has to be done before someone is hired to do the authoring. What software or specialized hardware would anyone...
385
17432
by: Xah Lee | last post by:
Jargons of Info Tech industry (A Love of Jargons) Xah Lee, 2002 Feb People in the computing field like to spur the use of spurious jargons. The less educated they are, the more they like extraneous jargons, such as in the Unix & Perl community. Unlike mathematicians, where in mathematics there are no fewer jargons but each and every one are
0
1609
by: Marcel - IDUG Europe 2005 | last post by:
Hi DB2 users, ========================================================================================= We just created a blog dedicated to our upcoming IDUG 2005 Europe Conference (24-28 October 2005, Estrel Hotel & Convention Center Berlin, Germany). http://idugeurope.blogspot.com
1
10337
by: Lonewolf | last post by:
Hi everyone, pls forgive me for my lack of knowledge and skills if my question sounds very stupid. I am trying to implement a video conferencing software and I am currently looking at a few set of technologies, among them WMP, RealMedia, H.323 and XviD (not sure if it is suitable for streaming even) . I would like to seek the advice of those experts on the following questions, 1) What is the best technologies to be used, in terms of...
2
2428
by: Chrysan | last post by:
Is it possible to use asp.net(web-page) to develop Video conference application? And, all user interfaces are in web-page including the video received and sent, all being displayed on web-page, not window-form. Possible?
5
3448
by: Juliano.net | last post by:
How can I capture audio and video so I can send them through the internet? I want to create a web conference application.
0
1797
by: Richard Jones | last post by:
Call for Papers --------------- Open Source Developers' Conference 2007 - Brisbane, Australia "Success in Development & Business" OSDC is a grass-roots conference providing Open Source developers with an opportunity to meet, share, learn, and of course show-off. OSDC focuses on Open Source developers building solutions directly for customers and other end users, anything goes as long as the code or the development
0
1129
by: eGenix Team: M.-A. Lemburg | last post by:
Hello, eGenix is looking into organizing a one day conference specifically for companies doing business with Python, Zope and Plone. The conference will likely be held in or close to Düsseldorf, Germany, which is lively medium-sized city, with good airport connections world-wide and specifically to all major European cities, so it's easy getting there and ideal for a one day event.
0
9979
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10828
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10925
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9638
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
7171
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5854
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
6052
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4682
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
4276
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.