Dual Server Video Streaming
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
index_files
.gitattributes
.gitignore
README.txt
bufferTimeParse.py
dual.mp4
dualTimeParse.py
index.html
pauseNPlay.as
single.mp4
tcpClientDual.py
tcpClientSingle.py
tcpServer.py
timeParse.py
udpClientDual.py
udpClientSingle.py
udpServer.py
uiGenerator.py

README.txt

Project: Dual Server Video Streaming
Group: ECE No.9 2012-2013
Author: James Zhao, Yu-chung Chau, Varoon Wadhawa
Date: June,2,2013
Copyright (c) 2013 All Right Reserved
Description:

The purpose of the project is to reduce the buffer starvation during video streaming. The dual server video streaming is a project that connects dual servers that alternetely tranfer video files into the client. Then it simulates the transfer of the log files and imports into actionScript and simulates/recreates the playback video with pause-and-play script. Adobe Flash made the experimental video with two cases(Single server connection and dual server connection).The back end code was developed with Python, and the front end code was developed using Python, actionScript, HTML and JavaScript.

List of source code and usage:

bufferTimeParse.py - parsing code used for parsing the logs generated by the server and dual client codes. 
Grabs the logs and outputs a text file with columns of time intervals and the number of chunks in that time interval.
How to run: python BufferTimeParse.py <inputLog> <outputLog>

dualTimeParse.py - parsing code used for parsing the logs generated by the server and dual client codes. 
Grabs the logs and outputs a text file with columns of time intervals and the number of accumulated bytes in that time interval.
How to run: python DualTimeParse.py <inputLog> <outputLog>

tcpClientDual.py - client code for tcp dual case. Run on aspitrg1 and currently configured to connect to aspitrg3 and aspitrg4.
Uses asynchronous sockets to request and download movie from both servers. Run after running server code on aspitrg3 and aspitrg4.
Generates two logs one for each socket of the timestamps and number of accumulated bytes.
How to run: python tcpclientdual.py 

tcpClientSingle.py - client code for tcp single case. Run on aspitrg1 after running tcp server code on aspitrg3 or aspitrg4. 
Download movie from specified server and generates one log of timestamp for each chunk. 
How to run: python tcpclientsingle.py <serverIPaddress>

timeParse.py - parsing code used for parsing logs generated by single client codes. 
Grabs the logs and outputs a text file with columns of time intervals and number of chunks.
How to run: python timeparse.py <inputLog> <outputLog>

udpClientDual.py - client code for udp dual case. Run on aspitrg1 after running udp server code on aspitrg3 and aspitrg4. 
Currently configured to connect to aspitrg3 and aspitrg4. Uses asynchronous sockets to download from both servers with a specified delay.
Generates two logs one for each socket connection containing time intervals for each downloaded chunk.
How to run: python udpclient_dual.py 

udpClientSingle.py - client code udp single case. Run on aspitrg1 after running udp server code on aspitrg3 or aspitrg4. 
Request and downloads the specified movie. Generates a specified log file containing timestamps and size of chunks received
How to run: python udpclient_single.py <serverIPaddress>

uiGenerator.py - ui code for generating dynamic graph from logs placed onto the website html file. 
How to run: python ui_generator.py 

index.html - webpage template for demo
	
pauseNPlay.as - ActionScript is the play and pause script that controls the automatic manufactored buffer starvation. That use the log files from the servers transfering

udpServer.py - udp server code for all udp test cases. Run on aspitrg3 or aspitrg4. Gets client file request and checks to see if file exists. 
If exists it will start sending the file in chunks.
How to run: python udpServer.py

tcpServer.py - tcp server code for all tcp test cases. Run on aspitrg3 or aspitrg4. Once client establish connection, the file begins transmission. 
The code is configured to serve "A Walk in the Clouds.mp4." 
How to run: python tcpServer.py