There are many things that can be done and improved. Unfortunately I do not have a lot of time. To help prioritize features you can click here to vote what you need most.
Features
- Broadcast video in real time from your smartphone to a PC
- View the screen and control the smartphone from a PC. Easily navigate the menu, write messages, see who is calling without reaching the phone
- Data can be transmitted using Bluetooth or any Internet and Networking technology of the smartphone like WiFi, CSD, GPRS, 3G etc.
- Broadcast to friends using HTTP Web Camera. A demo of this web interface is located here : virtual http webcam
- Create you own Web camera by using any FTP-enabled host to relay you images with FTP Uploader (available in v1.2).
- Control exposure of the camera for day/night mode, initiate autofocus in normal/macro mode, enable/disable flash
- Control compression of images balancing quality with bandwidth/frame rate
- Adjust boradcast quality balancing less errors/real time or force a throughput limit
- Use most of the camera's capture modes defined by resolution and video/sequential photographs
- Broadcast what you can see to other PC's over the Internet
- Record the broadcast, either to view the separate frames or to create a video clip
- Display a viewfinder on the phone if you can not see the PC monitor
- Fast or bicubic resize of player screen to compensate capture size
- Free and open source
Screenshots
Symbian application screenshots, UIQ3 - P990i
PC application screenshot.Main Window.
PC application screenshot.Settings Window.
PC application screenshot.
Connection configuration Window.
Development aspects
The project consists of two applications. One is meant for Symbian OS and written in a slightly modified version of C++ along with other platform specific interface and resource definition language. The IDE used is Carbide C++ Express, based on Eclipse, this version is free of charge. The IDE also generates files to build the project from the console with ARM compiler. For video streaming it uses MJPEG compressed by Symbian's JPEG library, however I intend on porting libjpeg for better performance.
The PC counterpart is written in Java, version 6 is required. For bluetooth communication Bluecove library is used (it is also free and open source).
The protocol was designed for this application, it unifies RTP/RTCP/RTSP protocols in a single specification and it also provides loss-less buffered streaming over TCP together with UDP real-time broadcasting. It is also simpler but less extensible.