Overview
The PPSHOW2 application suite consists of four different components: a client for
S60, a GUI application for OS X, a QuickTime component for OS X and a video
server for Linux. A J2ME client can also be used instead of the S60 client.
The dataflow between these components is depicted in figure 1, giving a
rough illustration of how they can be connected.
The main connectivity properties of the componens are as follows:
• The S60 client can send one stream of data over either Bluetooth or
TCP/IP (over WLAN, 3G or GPRS).
• The OS X GUI application can receive one stream over Bluetooth or
TCP/IP and relay it over TCP/IP. The stream could thus be chained
between many computers running the OS X application.
• The QuickTime components receives one data stream each from the running
PPSHOW2 GUI application over unix domain sockets.
• The video server can receive many streams at the same time, over TCP/IP.

All these components communicate using the PPSHOW2 protocol. Even though
the same content stream can be forwarded over many connections, each connection
in the chain is still considered a completely separate session. Only the
actual content is forwarded, but e.g. authentication data and other non-content
packets are local to the session.
All components are designed to be as usable as possible without requiring
the other components. E.g., the S60 client can send data straight to the video
server if it has access to the internet. The OS X GUI application and QuickTime
component can be used even though no video server is available. The video
server can be used without any drupal web front end.
Application for Symbian S60 phones
The S60 client is used to record video and stream it to a receiving computer. It can encode data in a few different formats (raw YUV, abbreviated JPEG, MPEG for the video frames and AMR and µlaw for audio) and send them over Bluetooth or TCP/IP (over GPRS/EDGE/3G och WLAN). The lite version omits the MPEG encoder, reducing the size of the package.
Java based phone application
The J2ME client captures frames as JPEG still images and streams over both Bluetooth and TCP/IP. It doesn't support audio.
Mac OS X
The OS X gui application can be used to receive a PPSHOW2 stream (over Bluetooth or TCP/IP), preview it, record it to a local file, serve the content as a multiplexed ogg/theora stream over http. The application can also relay the content to the video server (e.g. for a setup where the computer has faster/cheaper network connections than the phone).
The gui application also relays the content stream to a QuickTime component, which can be used as a video/audio source in other applications. One potential use case is to use the phone as a webcam in Skype.
Windows, Linux, others
There is currently no implementation of the desktop application for operating systems other than Mac OS X. Hence, you can NOT use PPSHOW2 to turn your mobile phone into a personal webcam on these platforms.
Server
The video server listens for TCP/IP connections, and receives one or more content streams from mobile and/or desktop based broadcasters. These are archived as ogg/theora and relayed over HTTP to clients.
The video server itself does not have a GUI, but it provides XML feeds about the current live and archived streams over HTTP. The feeds can be used by a web interface, such as the set of Drupal modules.
For authentication of incoming streams, it can use a local password file or the user database of a Drupal website.
The video server is developed primarily for Linux and is not tested on other platforms.
Web
The PPSHOW2 web interface consists of a set of modules for the Drupal CMS. It displays video provided by your PPSHOW2 video server to your web audience. It optionally creates a "node" for each video so that you can take advantage of Drupal features like commenting and voting.
You can also use the base functionality of the web interface as a standalone PHP application - useful when you don't have an SQL database available. |