You are on page 1of 31

Video Conferencing Technology

Outline
Goal Existing Tools and Problems VCT Features Technology Used High-level Design Implementation Testing

Goal of VCT
The main goal of VCT is to create a web based video conferencing site that allows users anywhere in the world to join realtime streaming video chat rooms without installing any software

Existing Tools
iChat is a video chat application from Apple. Mac Os has built-in iChat pluggin. Windows users can use iChat by installing AOL instant messenger oVoo is a video conferencing tool. Download and install oVoo software. Currently supports only Windows platform. Stickam is a social networking site that allows users to post their live videos,pictures,start video conferencing. Adobe acrobat connect pro is a web conferencing tool from Adobe. It allows remote desktop sharing, slide sharing, web conferencing.

Problem with existing tools


Requires users to download and install additional software Platform dependent Complex user interface High cost

Features of VCT
No need of additional software download and installation Browser based video conferencing Platform independent Simple user interface

Features of VCT
Create new public or private chat rooms See list of chat rooms with users count Private chat room requires users to enter password

Create chat room

Enter password

Private chat room list

Features of VCT
Live video chat with friends See list of attendees in chat room Invite your friends to the chat room by sending an email Friends can join your chat room without creating a VCT user id

Chat room page

Send email

Features of VCT
See list of users who has VCT account View users online or offline status

List of users with online offline status

Features of VCT
Users can record video message and send the link to friends
Record video message

Send email

Features of VCT
Users can play video message by clicking the link in email

Play video message

Technology Used
XHTML is a markup language used to create front-end of the web page. PHP is a server side scripting language used to create dynamic web pages
Authenticates VCT users in login Creates new VCT user account in signup Allows Flex applications to access MySQL database

MySQL is the back-end database used to store VCT user accounts Adobe Flex is used to create client-side applications that interact with Flash Media Server (FMS)
Flex is combination of MXML and ActionScript MXML used to create the layout of user interface of the application ActionScript used to create interactivity to user Interface Flex applications are compiled into SWF and embedded into XHTML

Apache HTTP Server is used in VCT to host XHTML ,SWF files, PHP scripts Adobe Flash Media Server

Adobe Flash Media Server


VCT uses Adobe Flash Media Server as the back-end server for real-time video conferencing Adobe Flash Media Server is a streaming media server that supports one-way and multi-way streaming applications VCT also uses FMS for recording and playing video messages Adobe Flash Media Development Server that supports multi-way streaming is freely available in the Adobe web site

VCT Design
Web Server

Flash Media Server


Web browser

HTTP

RTMP

VCT consists of three main components: Web Server Web browser with Flash player plug-in Flash Media Server RTMP is Real Time Messaging Protocol

VCT design diagram

VCT High Level Page Flow Diagram


back New User

Login

Signup

On successful authentication Dash board

Join public room

Find users

Create chat room

Public chat room

Join private room

Password Private Chat room Video Message

VCT page flow diagram

VCT Login implementation


Web Browser
http://localhost/Login.php GET Login.php POST LoginSubmit.php query

Apache Web Server


PHP script

Execute scripts

result

MySQL database

HTML output from PHP

VCT login implementation diagram

LoginSubmit.php script authenticates the user and if login succeeds, it loads Dashboad.php Dashboard webpage has SWF embedded in it

VCT Sign-up implementation


Web Browser
http://localhost/Signup.php GET Signup.php POST query

Apache Web Server


PHP script

Executes scripts

result execute scripts

MySQL database

SignupSubmit.php

HTML output from PHP VCT sign-up implementation diagram

Sign-up allows VCT users to create new records in the MySQL database

VCT Dashboard Implementation


Web Server

Flash Media Server


Web browser

swf

HTTP

RTMP

VCT dashboard page implementation diagram

Dashboard webpage has SWF embedded in it Web Server sends SWF over HTTP to the web browser Flash player plays SWF and makes connection to FMS

VCT instances
Dashboard initially connect to master instance of FMS application When users joins chat room connection to individual room instance is made Users in each chat room are completely unaware of users in the other chat rooms Instances allows different group of people to access same application without interacting with other group

VCT active instances in FMS console

VCT shared objects


VCT uses remote shared objects for storing chat room names and users list Remote shared objects are managed and stored by the server and are used for storing, messaging, and synchronizing data Updates made to the remote shared object are received in real time to all connected clients Remote shared objects can be either persistent or non persistent

VCT shared objects

Applications Folder
Application Name Folder

sharedobjects Folder

_definst_ Sharedobjectname.fso file

instanceName
Sharedobjectname.fso file

VCT shared object storage structure

VCT shared objects


VCT uses shared objects for storing chat room names chat room users list private room password

VCT active shared objects in FMS console

VCT streams
VCT transmits audio and video streams between Flash client and FMS for video conferencing The FMS server allows users to publish or play streams. User publishes live webcam streams to FMS server and other users subscribes to the published stream Stream names should be unique

VCT streams

VCT active streams in FMS console

Sequence diagram for creating a chat room

VCT create chat room implementation

Sequence diagram for joining chat room

VCT join chat room implementation

VCT Find Users


Flash Player
Sends user data request

Web Server
query

Flex

PHP sends back data

PHP
Gets result

MySQL

VCT find users implementation

Flex application sends user data request to back-end PHP script PHP scripts execute the request and queries MySQL database MySQL sends result to PHP which then processes the result PHP scripts sends data back to Flex in XML format

VCT Video Messaging


Applications Folder Application Name Folder

Streams Folder

_definst_ Stream name .flv file

instanceName Stream name .flv file

Video message storage structure

Streams published for recording are stored in FMS application as Flash Video files (flv) VCT uses stored flv file for playing video message

Usability Testing
VCT is tested among different age groups In the age group of 4-15, I need to guide them to use VCT. But once I walked through steps, they got easily adapted with the tool In the age group of 16-50, they learned the tool fast. They suggested some enhancements to the tool like richer user interface, enhanced authentication etc. In the age group of 51- 65, they found it difficult to create new user accounts and login to web site. They liked the method of joining a chat room without logging in

Usability Testing
Usability
10

Usability Rating

8 6 4 2 0 0 10 20 30 40 Age 50 60 70 80

Usability testing graph

Graph shows usability rating versus age Usability rating peaks between the age of 35-40

Performance Testing
Total Server Bandwidth
Server Bandwidth(KBits/s)
7000 6000 5000 4000 3000 2000 1000 0 1 2 3 4 Number of Users

Bandwidth graph

Server bandwidth (BW)=(P*N)*S, P is number of publishers, N is number of subscribers and S is streams encoded at constant kbps