Net-­HD

romesquelchΛογισμικό & κατασκευή λογ/κού

17 Νοε 2012 (πριν από 4 χρόνια και 8 μήνες)

226 εμφανίσεις

1

HD
-
Net


Future


LIVE HD TV over the web, HD movies online streaming


NGN technologies



What do we have at present?


YouTube
-

Videos in HD quality


Few another sites with more or less same technology


No streaming online


Problems?


Internet bandwidth doesn’t suit the needs


720
p HD live video stream needs ~
2.5
Mbit/sec


Average connection speed is about ~
2.0
Mbit/sec


Time
-

we don’t want to waste it in eternal waiting


Online movies in HD quality?




HD
-
Net


Global Goal of the project


HD Streaming over the web w/o changing
bandwidth


Secondary Goals


Development of prototype of software for
experimental purposes


Server/Client based application


Manager application for multiple Clients


Half
-
Real Time VOD streaming experiments



Basic structure of application:



HD
-
Net

Manager

Client/s

creates

Server

request

1.
Manager starts

2.
Manager creates instances of Clients

3.
Clients send a movie

requests with specified
parameters

4.
Server

finds requested references

5.
Server

returns demanded movie


stream

Global
Networking

communication

HD
-
Net

Tutorial:


Introduction


To run this project requires NetBeans and VS IDE’s


It also requires a dom
4
j.jar as external library


Basic entities are:


Client


Java implemented


Server


C# implemented


Client Manager


Java implemented


This presentation explains uses and implementation
of Client and Client Manager


This presentation uses screenshots of
NetBeans

IDE






Tutorial:


Client


Main form

HD
-
Net



URL


link to movie



Control options



Log for Data Transfer Observation



Hides this form (means it is still
working when hidden)



frame from which movie will be
played(represents time)



Edit option for this instance of client



Address of server



Port of the server for client to
connect

HD
-
Net

Tutorial:


Manager


Main Form


General Form




URL


link to movie checkbox



Random URL option from created
earlier list


checkbox



Select randomly specified number
of Clients



Choose a command from the drop
list for all of the selected Clients



Execute chosen command for
selected Clients



Load and run XML file with
scenario



Opens Form of selected Client



Log Textbox
and Show/Clear
options for current session log

HD
-
Net

Tutorial:


Manager


Main Form


Editing server settings




Set server IP address



Set port through which Clients connect to server

HD
-
Net

Tutorial:


Manager


Main Form


Editing server settings




Open a list of URL’s from text file



Save existing URL list to text file

2
) Enter number of Clients


3
) Choose one of the options :

b)Delete existing
Client & add new one

4
) To view list of created Clients :


Press drop list

1
) Press EDIT then
NetHD

CLIENT

a)Add new Client

HD
-
Net

Tutorial:


Manager


Main Form


Creation of multiple Clients

1)
Press “Edit” then “URLs list”

2)
In next form add a link of URL

3)
In the “logs” window possible to use
that the URL added successfully

4)
To see the added URLs press dropped
list.


HD
-
Net

Tutorial:


Manager


Main Form


Editing URL list


Cengine



class that contains all logical functions



Cgui



class that responsible for graphical interface



Cmain



Start point for GUI



Cnetwork



class that is responsible for networking components



Cscreen



represents log box with data shown during transmission



Cvideo



class that responsible converting data to video file




RandomGUID



class that generates a unique ID for Client instance



SetingsGUI



Graphical form for setting “Host” and “Port”


HD
-
Net

Packages explanation
-

basics


Client

HD
-
Net

Packages explanation
-

basics


Log


Main


LogHD


data structure that remembers all events with application



MainFrame



basic start point for the project, brings up a screen




EditNetHDClientsWindow



Graphic window that


responsible of creating new Client



EditURLslistWindow



Graphic windows for adding URLs links



FileManager



Graphic window for file chooser



Mengine

-

class that contains all logical functions of manager



Mgui



Graphic window of manager



Mmain

-

Start point for GUI



NetHDServerSetingsWindow

-

Graphical form for setting “Host” and
“Port” of server.


HD
-
Net

Packages explanation
-

basics


Manager

HD
-
Net

Code explanation
-

basics


Client


Main functions

Play pressed
:
Cgui.Class

called


Methods invoked in order of appearance

1.
Cengine.setFrame
(frame)


Sets current Client offset frame from which movie will starts

2.
Cengine.Play
(URL)


Cnetwork.connect
()
-

Connects to server


Cnetwork.setMessage
(
msg
)


Prepares a message for a server


Cnetwork.GetVideoStream
()
-

Gets video from server for this
instance of Client

HD
-
Net

Code explanation
-

basics


Client


Main functions

Pause pressed
:
Cgui.Class

called


Methods invoked in order of appearance

1.
Cengine.pauseSave
()


Sets flag request to status REPEATED


Cengine.pauseTime
()


saves time when movie stopped


Cengine.getLastPackage
()


saves last package to restore point

HD
-
Net

Code explanation
-

basics


Client


Main functions

Stop pressed
:
Cgui.Class

called


Methods invoked in order of appearance

1.
Cengine.Stop
()


If Client was receiving data then


Cnetwork.sendMessage
(stop)


message with “stop” sent to
server


Cnetwork.disconnect
()


kills connection with the server

HD
-
Net

Code explanation
-

basics


Manager


Main functions

Scenario Execute pressed
:
Mgui.Class

called


Methods invoked in order of appearance

1.
Mengine.scenarioExecute
()


Function
trys

to read from XML file


If successfully then program executes scenario

HD
-
Net


Manager


Main function :

This Manager created for manage Clients.

Execute button pressed :


_
engine.setURL
();
-

take
urls

links

Checking one of two options :

1)
_
engine.selectFirstsClients
(Take “All” clients);


or

2
) _
engine.selectFirstsClients
(Take num of client);


LogHD.addLog
();
-

add information to “Information vector
-

LogHD
”.


this.setLog
();


print all changes on screen log.


HD
-
Net


Manager


Main function :

This Manager created for manage Clients.

_
engine.executeSelected
(take info from
Comand

ComboBox
)

{


this function have Switch for
3
options : PLAY, STOP ,PAUSE.



checking on of two options : Random or No


Creat

new Client ;


client.SetNetHDserver
(_host, _port);
-

set host & port


data for client
whos

took from Server Settings



client.start
();
-

start new Thread/ Client with all describe data.

}