TITLE: ENHANCED MEDIA PLAYER WITH SILVERLIGHT PLATFORM
In the current situation, World Wide Web is important source for acquiring knowledge and providing entertainment for the public. For learning and acquiring knowledge we need a source for providing the content. The main source for providing the related data to user is media player, which can be used as an interface for learning and also for listening the music, watching movies and videos which are related to any area. If that media player is not providing the required information then it is a big problem for the user who uses the internet. Many media players in the current scenario look very rich and do not give the satisfied user experience. Some of the problems which are faced by the media player are: Most important problem is buffering, quality of the video, no audio and video synchronization etc. This is the case with the users who use high bandwidth internet connections. If this is the case with the high bandwidth internet connections then what about the scenario with the users who use low bandwidth internet connections and low processors. These are the problems which I personally faced while I am using internet. So, this motivated me to take this project.
For solving this problem, a new media player should be designed in such a way that it should solve all the problems which are mentioned above. So the main aim of the project is to create a media player which is loaded into the web page easily i.e. size of the video is very less. It should display high definition quality video without any interruption. Main and important issues is buffering problem so, the video which is playing in the player should not stop even if the user is connected to a low bandwidth internet connections.
Software technologies which are used in this project are:
- Microsoft Visual Studio 2008 with Service Pack 1
- Microsoft Expression studio 3
- Net Frame work 3.5
- Silverlight 4
- IIS Smooth Streaming
Hardware technologies which are required are:
- Windows XP, Vista, 2003 Server, 2008, Linux, Mac operating system
- Internet explorer, Mozilla Firefox, Opera etc web browsers
- 80 GB hard drive
- 1 GB of RAM
- 2.4 Ghz of processor
Methodology of the project is followed as classic life cycle model which is a traditional model. In this model all the modules are achieved step by step one after the other. The main disadvantage of this model is that it cannot move backward after one phase has been completed. The detailed information is provided in the further part of the documentation.
Design and implementation is the next phase which is carried out in the project. In the design phase, Initially drawing of the media player is created using expression design and after the design is finalized then it is imported to expression blend and realistic features are added by applying colors, buttons etc. Later code for the functions is written by using the visual studio 2008. Videos are encoded in the expression encoder and later IIS smooth streaming video is created. This technology which is required, this function enables continuous streaming even with slow internet connections.
All the requirements which are mentioned in the aims and objectives are achieved. Media player is created which plays on any operating systems. Smooth streaming is achieved (which plays continuous videos without any streaming problems). It also looks rich in appearance.
In this section, it is going to explain about the main problem in the current scenario and its impact and it is also going to explain why I was motivated to select this project. The main key factors and the goal which is intended to be attained are discussed in the aim and objectives section. Some of the methodologies are implemented and are discussed in the next section and finally Structure of the thesis is explained in detail about the presentation of the report and also explains each and every section briefly.
1.1 Main Problem
In the current situation internet is the important source for learning and it is also an important source for providing entertainment such as games, movies etc. and the main problem here is about the media players. Whenever we want to watch any movie or any video tutorials from the website it consumes a large amount of time for downloading the media player itself and another problem is streaming. It takes many hours for buffering the video or a movie. An example is shown in the picture below:
From the above picture it is clearly observed that, it is taking a lot for buffering and video stops each and every minute and starts buffering. If this is a case with the high bandwidth internet connections, then what about the users who use less bandwidth connections.
The above problems are the reasons made me think to design a media player which runs even with low bandwidth internet connections which shows HD quality video continuously without and streaming problems. While I was searching for the technology on which the player is to be designed, Silverlight is the new technology made me inspired. It is the only technology which supports IIS7 smooth streaming on which video can run continuously without any streaming problems even with the low bandwidth internet connections.
1.2 Goal and Objectives
Main aim of the project is to create a web based media player which runs on cross browser, cross platform which supports IIS7 Smooth Streaming videos with adjustable bitrates.
- Create a media player with very light weight
- Which looks very rich supported by any browser
- IIS7 Smooth Streaming
- All the major file formats are supported
- User friendly and user experience
1.3 Project Methodology
The main criteria of the project to design a web based media player so, it is designed based on traditional life cycle model known as water fall model which involves sequences of steps from analysis to maintenance phases.
- Initially feasible study of the work has been done
- When the feasible study has been completed then, the next phase is to analyze the requirements of the project, if there are any specifications they need to be discussed.
- After all the analysis has been completed and all the estimations are done then comes the design phase in which outer appearance of the product is drawn by using selected tools and software.
- After the design has been finalized, then it is given the realistic experience by coding the design and giving the functions. All these coding is done by using XAML (Extensible markup language) which is the extension of XML in Visual Studio 2008.
- Next stage is testing and integration phase. After the coding is completed for each module it needs to be tested by various methods. All the bugs are removed and if there are any software errors they need to be identified and rectified. If there are any features, then they can be integrated.
- After the testing phase, product is delivered to client before the deadline. Maintenance of the product is provided. The below picture shows the methodology of the project:
1.4 Major Constraints
Time the most important constraint when compared with other two constraints. For completing a project time management is very important task. Each and every milestone is achieved only with proper management of time. As time is not reversible, proper management is required.
Cost is also one of the important factors among the constraints. As the cost increases the quality increases and time can be reduced for achieving the project.
Quality of the product depends upon the above two constraints. If the time and quality are properly managed then quality product is achieved.
1.6 Thesis Structure
1.1 Main Problem
Main problem in the current situation and what is it motivated to select this project are explained in this section.
1.2 Goal and Objectives
Actual aim and the targets which are need to be attained while the product is designed.
1.3 Project Methodology
This part explains about the methodology used in the project to design the player.
1.4 Major Constraints
How the project is related to the three constraints and what makes the project successful by balanced constraints.
2. PROJECT ESTIMATES
2.1 Project Resources
2.1.1 Minimal Hardware Requirements
Hardware requirements which are required by the project to develop software
2.1.2 Minimal Software Requirements
Software requirements which are required by the project to design a software
3.1 Background of the subject
Background of the media players and some of the features are explained
3.2 Specific Issues and its study
What are specific issues and what is the scenario between the current media players in the market
3.2 Technologies Utilized
Technologies used in designing and why those technologies are utilized.
3.3 Analyzing the current scenario (Case study).
Case study on media player developed on Silverlight platform.
4. RISK MANAGEMENT
4.1 Scope and Intent of Activities
Scope of the risk to happen while the project is in progress
4.2 Risk Management and its role
Explains about the Risks and its important in the project
4.3 Description of the Risks
Types of risks and its description
4.4 Risk Table
4.4.1 Probability and Impact for Risk
Impact of risks and its percentage when they are raised.
5. DESIGN, DEVELOPMENT AND IMPLEMENTATION
5.1 Design Requirements
5.2 UML diagrams
5.3 Data Flow Diagram
5.4 System Implementation
How the implementation is done in a step by step procedure.
8. TESTING AND ANALYSIS
6.1 Unit Testing
6.2 Integration testing
6.3 User testing
9. CONCLUSION AND RECOMMENDATIONS
2. PROJECT ESTIMATES
2.1 Project Resources
2.1.1 Minimal Hardware Requirements
- 3.6 G.hz processor
- 80 Gb hard disk
- 1 Gb of Ram
- Graphic card
2.1.2 Minimal Software Requirements
- Windows XP , Windows Vista, Linux or MAC operating systems
- Visual Studio 2008
- Net framework 3.5
- Silverlight plug-in installed on the system
- Any browsers such as internet explorer, Mozilla firefox, opera, safari, Camino, Epiphany etc.
- Microsoft Expression Studio 3
- Expression Blend 3
- Expression Encoder 3
- Expression Design 3
A media player is defined as an interface which controls the audio and video files of a computer.
3.1 Background of the subject
In this section, background for the media player from the last eleven years is produced. It also shows clearly, how the development in the web based media players has taken place every year. A simple statistics is shown in the picture below, about the development in each and every year.
Initially in the year 1990, Microsoft has introduced a web radio toolbar which is added as a new feature in internet explorer 5 web browsers. It helped the users to find the radio stations and listen through the browser. At that time Lycos.com is the famous web based radio search engine in which five channels are launched with excellent sound quality. It uses real player G2 for playing the songs. The player is used as streaming from the shoutcast server or making the own computer as the server by installing the shoutcast program. Web radio has some advantages over the previous media player but it also has some defects.
In the year 2000, Microsoft and yahoo combined and created a media player which works on web. It gave a tough competition in the market with the other companies. Yahoo player is similar like Microsoft's and real networks released products. It has some features just like jukebox which stores the files and manages them when required. Yahoo player can stream the audio and video files and it can also plays from CD which is in the mp3 format. It also has web browsing features like other players. Changes are made internally for the player but the external appearance looks similar to the Microsoft's media. Yahoo player needs to have Internet explorer web browser and Windows media player installed on the computer.
In the year 2002, Microsoft has enabled a new feature in which the user can view the videos, listen to the music and download them from the web sites. Whenever the music is downloaded from the internet, there is a log file stored in the computer. The user cannot remove the log file from the player. Whenever the user downloaded the file from the internet id number is automatically download and stored in the system. Whenever the user wants to listen the track after some time, it can play directly as it is already saved as log.
In the year 2004, Microsoft has introduced MSN TV and media player which can play media player compatible files such as music, movies, pictures and other files to view on the television from the internet or from the local network computers. This technology runs only in the enhanced version of the MSN TV services. It has a special feature in which videos such as sports, news, entertainment stuff which are updated daily, can play on their televisions whenever they require. In this service, the user can listen upto 200 radio stations and an email account is created with 2 GB of space and other secondary email accounts with spam protection.
In the year 2007, Microsoft has launched Silverlight technology in which RIA is developed and the user can experience the HD quality videos. It is also an idea that they need to create tools which can give the same user experience when the user is in offline or online. And adobe is also introduced a new concept of flex which as a rich internet application tools. After the Silverlight has been introduced it took place a large amount of the versions and the current version of the Silverlight is version 4. And some of the development history of the Silverlight is given below in the table. Changes took place year by year in the technology and the previous history is shown as:
Silverlight 4 has advanced technology which support deep zoom technology, smooth streaming and very rich features of the media. It made developer to run their applications on cross browser and also it supports cross platform.
3.2 Specific Issues and its study
The main reason for developing the project is due to media players in the current situation, this problem has been solved by the selecting the Silverlight technology and creating a player and also allowing the website to play IIS smooth streaming videos. In the case study below, it is explained clearly that, even NBC Universal has faced the same situation before they moved to the Silverlight technology. After they developed the player supporting the smooth streaming, they reached their expected quality by producing HD quality live streaming, video player is very attractive and it is recognized as one of the best design. From that technology, I have taken the idea of creating the player. They have solved the same problem by shifting the technology from Adobe Flash player to Silverlight media player. Even though they have spent lot of investment in designing the web site with other platform, designers could not provide the sufficient quality for displaying video, rich features, equal distribution of network infra structure, continuous streaming and performance of the site is monitored. Many of the case studies have been observed and made research on them, from the research work it is noted that in the present market, there is no other technology which supports IIS smooth streaming other than Silverlight. Even if they support same type of technology with the other platforms, they are very expensive and not that user friendly and does not provide high quality of the user experiences when used.
3.3 Technologies Utilized
.NET Framework 3.5:
Microsoft introduced .NET Framework to enhance the operations of applications. Its objective is to integrate various programming languages and services. It has been designed to make improvements in code reuse, resource management, security, deployment and code specialization. It includes all the technologies that helps in creating and running robust, Scalable and distributed applications. .NET offers a complete suite for developing and deploying applications. This suite consists of .NET Products, .NET Services and.NET Framework.
.NET Products: We know that Microsoft has already introduced Visual Studio .NET which is a weapon for developing Visual C# and C++.These products will allow us to create applications that will easily interact with each other. For interaction these .NET products use Extensible Markup Language (XML) for exchanging data between each other.
.NET Services: Microsoft has come up with services called MY SERVICES. These services depends on Microsoft Passport Authentication service, which is called as HOTMAIL in Web applications. These services allow us to access data by linking address books, calendars, phone books.
.NET Framework: It is the platform on which we can design, deploy, and develop applications. It is the core of the .NET infrastructure. .NET Framework encapsulates most of the basic functionalities such as debugging and security services
The .NET Framework consists of three main components duchy as common language runtime (CLR), the .NET Framework Base Classes, and the user defined interfaces.
Advantages of .NET Framework:
Some of the advantages of .NET Framework are:
Consistent programming model: The .NET Framework provides an object oriented model across languages. This object model can be used to perform several tasks, such as reading from and writing to files, connecting to databases, and retrieving data.
Multi-platform applications: There are several versions of windows most of which run on x86 CPU's. Some versions like Windows CE and 64-bit Windows run on non-x86 CPU's as well. A .NET application can execute on any architecture that is supported by the CLR. In future, a CLR version can even be built for non windows platforms
Multi-language integration: .NET allows all languages to be integrated. for example, it is possible to create a class in VC# that is derived from a class implemented in VB.NET. To enable objects to interact with each other regardless of the language used to develop them, a set of language features has been defined in CLS. This specification includes basic language features.
Automatic resource management: While creating an application, a programmer may be required to write code for managing resources such as files, memory, network connections, and database resources. The CLR automatically tracks resource usage and relieves a programmer of the task of manual resource management.
Ease of deployment: one of the goals of the .NET Framework is to simplify application deployment. .NET applications can be deployed simply by copying files to the target computer. Microsoft's Component Object Model (COM) had been used for creating components. However, COM suffers from various problems related to deployment.
The above mentioned qualities are some of the important reasons of choosing the framework. In the advanced version of the framework i.e. Framework 3.5 many new features have been added which helps the developer in creating interactive designs. These are the requirements which are needed for designing the media player. .Net framework 3.5 plays the key role for this project. It is not visible for the user but it plays the major role from the backend.
Silverlight is a web development a tool which is used by Web developers and Graphics designers. It can be used in various types of applications. By using Silverlight, media and graphics are created and developers can change the language and manage the code. This is a technology which is similar to Visual Studio and code can be written in this technology. It used expression blend for designing and layout.
It is a platform in which different technologies are combined as a single platform from which the developer can select the tools and also the required language which is required for developing software. Some of the features are listed below:
Silver Light having multiple technologies is very much useful as single development platform takes our needs give best deal as right tool.
1. Windows Presentation Foundation is a technology which is the internal part of the Silverlight which helps a lot in creating the user interface. This technology helps in creating graphics, animation, media, rich client features etc. very easily and in a better way when compared with the HTML. XAML provides syntax for creating the elements which are required.
2. Java Script which is known as the universal scripting for browsers and Silverlight gives the extensions for this scripting and it also provide control over UI. It includes working and managing with WPF elements.
3. The main advantage about Silverlight is it supports cross brows and cross platform. So, the application can run in any of the browsers in any of the operating systems. This relieves the tension for developer and he does not worry about the user.
4. An application can be build in any of the languages such as Python, C sharp , visual basic for accessing the .Net Framework.
5. Tools such as visual studio and expression studio can be used to design Silverlight application very easily and very quickly.
6. When the code is written in ASP. Net and JS, Silverlight is an option which can smoothly combines with the code and complete its functions by providing its support.
7. WCF, SOAP, AJAX applications are created and they are connected by Silverlight and they can receive XML, or JSON, or RSS data. Silverlight is a technology which supports hyper text transfer protocol by TCP and it also supports in development of multicast applications.
8. Language integrated query LINQ is provided by the Silverlight technology and program data access is supported by LINQ if the syntax and objects are written in .Net Framework supported languages.
Above mentioned features and qualities of the Silverlight made the developer to select this technology. It has many of the advantages when compared with the current technologies in the market. By the reach work done and case studies, it is known that many companies had invested a huge amount of money for developing their web applications but they failed to give the required quality. But, when the company has shifted to Silverlight platform, they are satisfied by the services which are provided by the technology. It provides fast streaming without any buffering problems.
XAML is considered as the declarative language. It is known as Extensible Application Markup Language which is the extension of Extensible Markup Language (XML). Objects and set of objects can be initialized; it shows the relation between multiple objects by using conventions which can support the type extensions. XAML has a facility in which as user interface elements and those elements can be manipulated by the code behind it by adding the response to the events etc when objects are declared in XAML.
XAML has a feature in which, different tools and roles can exchange their sources in between them without any data loss. As an example a code written in Visual Studio can change its appearance by Expression Blend.
XAML is the language which is supported by the Silverlight application. It is also a powerful language and also a declarative language in which we can define objects, write functions and execute them in a web browser.
Use of IIS server in the project:
IIS is known as Internet Information Services, which comes with windows operating system and is installed by control panel. The main of the IIS in this project is to make the computer as web server on which the code is executed. For an example, if a website is designed and want to run that website in the in the local server, then IIS is installed. For other operating systems there are other forms of web servers. For an example for Linux operating system, Apache web server is installed. Web server takes the request from the user, executes it and again responds back to the user and it supports protocols such as SMTP and send emails through it. If the player has the facility of sending any response to the user then SMTP is used. Server extensions such as front page is also one of the part of IIS web server and we can use some features like form handler, counter etc. By default IIS feature is given by the Operating system and when the feature is enabled, then we can use the server and experience the services provided by it. Later we can upload it to the remote server.
3.4 Analyzing the current scenario (CASE STUDY):
Sunday night football is broadcasted by NBC Universal to millions of fans through interactive player which is created on Silverlight platform. Broadcast is produced in HD quality.
NBC television is broadcasting NFL Sunday Night Football from several years which have taken an important position in the collection of its programs. NBC has attracted 16 million viewers on an average per week since it has gained the dealership from the ESPN sports. In the year 2009, Sunday night football dominated all the prime time ratings and stood in the first place consistently in the prime time slots. It is the critical time for advertising.
Later in the year 2007, company has decided to provide the live coverage on the television as well as online. The agreement has taken with the on air broadcasting by given name as Sunday Night Football Extra. The main idea behind this project is to give two screen facility so that the viewers can experience the broadcasting thoroughly.
Improving the quality of the broadcast:
NBC has broadcasted its coverage of NBC Sunday Night Football through a player build on Adobe Flash technology. This is done for the first two years of the web broad casting. Due to the inabilities in the previous technology it adjusts the bit rate according to the streaming video. By this the viewers with the low bandwidth internet connections and low performing computers face many problems such as, taking very long periods for buffering, stuttering, very low quality of the video etc.
Previously the scalability of the network was very low and now the NBC should ensure that the network supports large amount of the audiences.
NBC does not want to deliver only the video streaming on to the web. It wants to add some interactive features such as expanded Digital video controls (DVR) and some of the features like slow motion video, instant replays, live chats and twitter from the commentators.
NBC wanted to increase the flexibility and sophistication on advertising during the broadcasting the Sunday Night Football extra. It needed to enhance the way the advertising is broadcasting. They need to be delivered dynamically rather than static. Only targeted ads need to be published during the broadcast.
NBC has chosen Microsoft Silverlight technology with IIS Smooth Streaming which runs on Windows 2008. Before selecting this technology NBC has implemented many technologies but they did not get the out as they required. By implementing this technology they reached their achievements and standards by providing high quality video online, scalability etc.
In this technology when the client request for the video file, then the file is made into fragments but the actual video is safely stored in the server. Then these fragments are sent to the clients system through http and depending upon the client's network conditions the bit rate changes accordingly. Due to this there are no buffering problems for the client and the client can watch the live streaming with HD quality video.
Developments team and facts of NBC video player:
By this technology they have monitored the performance which the video is broadcasted. They have integrated pulse management controlling with the application which they have designed and by this function they have a control over quality of the video, viewer list who are watching the broadcast, performance of the resources and trouble shooting is performed immediately when the problem is faced in transferring the live broadcast. Below picture shows the details study of the case study which tells us about the overall performance of the case study.
4. RISK MANAGEMENT
4.1 Scope and Intent of Activities
In this phase, we need to plan and design a structure from which the software has to be free from bugs and errors. If is almost impossible to create a software which is error free but we can reduce the errors to maximum. To complete the project within the deadline, we need to make a plan or a chart that explains the problems which can affect the development of the project. The main aim of this phase is to create a plan and learn how to solve the risk or avoid a risk when is faced. In order to do so, we need to prepare a chart which could be the possible risks while the development of the project, manage them if they are raised and try to prevent them by taking special care while developing that particular module. To avoid the major risks in the project, client has to spend time with the developer and if there are any changes in the functions of the software, or if he wants to add any additional requirements or if he wants to remove some of the functions from the software then, this the correct phase. Otherwise this could be the major impact on designing the software.
4.2 Risk Management and its role
People who involve in the project are responsible for the risk. So, it is their obligation to manage the risk. If they take proper care in the initial stages of developing the software, then many of the risks can be prevented.
Some of the techniques which can avoid the risks are;
1) In the development stage risks can be avoided by checking the schedule in the regular intervals, size of the product is to maintained, estimations regarding the further resources etc can avoid the risks in development stage.
2) By collecting all the requirements from the client in the initial stages can avoid the risks.
3) By collecting all the requirements of the product, developer can prevent risk. In this section we are going to see some of the risks which are encountered during the development process assuming that the client is university
4.3 Risks and its description
Business Impact risk: If the product which is developed does not work, or if the client's business has a major impact by the designed product, or it the product does not satisfy the client's need, or if the clients business fails due to this project then this is considered as the business impact risk.
Client Risk: This type of risk can be avoided by the client. If the client spends most of the time with the developer and attends the meetings regularly without skipping and explains the complete need for him, then maximum number of the risks is avoided. It is one type of risk which can be avoided from the client side.
Risks in Development: This type of the risk can be avoided if the resources and the equipment are correctly provided by the client. If they are not provided then the product does not reach the required quality for the client. This makes failure of the software. Providing the resources are not only the issue, they need to be supplied as per requirement.
Risk with Developer: This type of risk is completely based upon the developer's skills, ability, experience in using the software and spending time. If the developer is not skilled and experienced to utilize the tools properly then the delivery date will be postponed and the process can be failed due to postponements. If the sincere effort is not applied by the developer then there are maximum chances for the software to fail. This type of risk is considered as the most important risk while the software is developing.
Risks while processing:
This is type of risk regarding the quality of the product designed. If the standards do not reach the quality expected by the user then the project is considered as failure. There are some other reasons like if the client does not provide the exact needs for his company or if the developer did not understand the need of the customer and utilize the software in improper way, then this type of risks are faced.
Size of the product to develop:
This is a type of the risk which is raised due to misunderstanding between the client and the customer. If the size of the product is not described by the client, then the developer faces a lot of major problem during the design or if the size is mentioned but due to misunderstanding the developer may design different size or due to insufficient resources could not finish the project etc. could be the main reasons for raising this type of risks.
Risks with Technology:
This risk is raised if the developer is using the using the software which is already used or the software which is going to be disused is used in designing the software. As in the current generation, technology changes day to day customer need to update his requirements. In designing the software if the customer request to use the software which is about to disused then developer needs to tell the customer and convince him to use him advanced technology
4.4 Risk Table
Risk table which is showed below, explains the risks which may rise during the development of the process and it is also explained that how much the project has its impact by raising the risk is also showed in the project.
5. DESIGN, DEVELOPMENT AND IMPLEMENTATION
5.1 Design Requirements
VideoWindow - This is a main key element in which audio and videos are played and this should be named as MediaElement node. In this area we add clipping masks, time lines etc. but it should have at least one MediaElement with the same name.
PlayPauseButton - This button is created in a canvas by grouping the play pause button and they are named as mention above and logic should be written behind it and we can also add some additional animations and also some time lines such as hiding and showing symbols..
PlaySymbol - It is the main play symbol and its function is to play file when it is pressed.
PauseSymbol - It is a symbol which is created to pause the media when it is pressed.
PlayPauseButton_MouseEnter/MouseLeave/MouseDown - If the time line is named for the mentioned elements then, these elements starts working when they are pressed otherwise they are going to perform some default functions.
StopButton - Symbol for stopping the media file.
Timeline - It is the time which shows the playing progress of the media
TimeSliderDecoration - it is an element which shows the complete progress of the media file.
TimeSlider - it is a progress growing meter
TimeThumb - This is an arrow shaped button which shows the progress of the current media file and by dragging it, user can adjust the position of the media file.
VolumeSlider - it is an element which controls the volume function.
VolumeThumb - This button which is shaped as arrow and it indicates the current position of the volume. User can adjust the volume by dragging it.
VolumeUpButton/VolumeDownButton - This button's functions increase the volume if the up button is pressed and decrease when minus button is pressed. This function is for the users who do not want to use the progress bar
MuteButton - Mute button is a self explanatory button and when it is pressed volume of the player should become mute.
CurrentTimeText - It displays the current time of the audio/video file while it is progressed.
ChapterArea - The area which displays markers which are created in the video file ( dvd -style playback)
FullScreenArea - the full screen experience and it is a root node
Above listed are the main key functions which need to include while designing the media player. Generally some small and important things to be noted while designing the player, such as color combinations should be very descent and skeleton of the player should be very rich. When the full screen button is pressed the player should open its full screen mode and when escape button is pressed then it should return back to its normal position. While the player is in full screen mode all the controls should be displayed and respond when the user control.
Softwares which are using in the designing of the project such as expression studio 3, visual studio 2008 etc. all those softwares should be licensed and full version softwares. It should be important that the expression studio should support IIS smooth streaming feature which encodes the video into the smooth streaming format.
5.2 UML diagrams
Class diagram: It is described as the object oriented relationship between the classes and objects which are used in the design of the product. The filed which is present in the top column of the box a class name and the second column elements in the same box are considered as the objects and the below elements are considered as the functions. In the below class diagram media player class has the one to one relationship with the controls and window class. Window can be extended to normal window and full screen mode.
Sequence diagrams explains about the validation of the design architecture, interfaces between the objects and also the logic behind the project by showing the sequence of actions that should be performed one after the other. By drawing a sequence diagram, dynamic view of the whole system design is identified but it is difficult to identify with static diagrams. Sequence diagram gives you a clear picture how the user starts the media player, after that opens the window, manages the controls etc.
5.3 Data Flow Diagram
5.4 System Implementation
This is one of the main and important parts of the project it gives life for the design which is finalized in the above phases.
IIS7 web server on Windows Vista:
Initially it is very important to check whether IIS7 server is installed into the system. If it is not installed then it needs to be installed and the below pictures shows how the server is installed into the system.
Before the server is installed it needs to be sure that the system has administrative rights and by default the system do not have any rights if it has logged as User. The needs to be invoked as the built in administrator account either from the command prompt or a message is automatically displayed as shown in the below picture when computer logged in as user.
1) Click start button, go to control panel and in control panel, select the options called programs and at the left side menu list, there is an option called turn on or off windows features. Select that option and a new window opens as shown in the below figures.
2) A message is displayed asking permission to use the program which is selected. Click allow button and it opens a new window.
3) In the new window an option called Internet Information Services is seen, expand the option and select the default option.
4) If any of the tools need to installed, then expand the option as shown in the above figure and tick the box which is adjacent to the option. In this case, Web Management tools need to be installed. So, expand the option by clicking on the plus symbol beside to it and selects the required options and click ok.
If any additional features are required, then click the features which are required by the program and then click the button ok. Now the installation of the server begins and it takes some time for installation to complete. We can see the installation by the progress indicator.
After the installation is completed, progress window closes and the control panel window is shown. This indicates that the installation of the IIS server is completed and it can be used by typing http://localhost/
Web platform installer:
Installing the web platform into the system upgrades with many inbuilt functions such as
- Latest version of the web server and it can also upgrade to newly released web extensions such as IIS Media extensions.
- SQL Database with database engine and database tools
- .Net framework
- Visual Web Developer
- Web applications such as ASP.Net, PHP, Word press
It is a very tiny file which can be downloaded from the Microsoft website and install it within seconds. Some of the pictures below explain clearly how the installation is performed after the setup is download from the internet.
After the web platform is installed into the computer we can selection the options from the What's New button as shown in the picture below. Select the check boxes whatever the features need to installed and then press Install button.
For the media applications which are required for the project, select the options which is present at the bottom left side and it opens a new window. It can change the most common features from the web platform. Select the option "Media" from the list and select the preferred language from the drop down list and click ok button.
Media player Design and Coding:
Initially after the design has been finalized and all the softwares which are required for implementation of the design has to be installed on to the system such as Expression Studio 3 , .Net Framework 3.5, Visual Studio 2008 with Service pack 1 which is required for coding.
After all the required softwares has been installed on to the system, Expression Blend 3 is opened for designing the media player such as the outer appearance of the player, screen which plays the video, navigation controls like play button, pause button, next button, previous button, stop button, progress bar etc.
To design a media player, initially select the rectangle from the tools window and draw a rectangle with the fixed dimensions which are necessary for a player. We can change the dimensions from the properties window. For the current player, dimensions are set as 500 as width and 400 as height.
While designing a player it is to be noted that grid layout is the better choice because different videos has different sizes and when that video is playing in the player, the dimensions changes automatically according to the video size. If the player is created using grid, then we can lock the size as fixed. So, that the player does not change its size dynamically. We can see lock shaped symbols which are present at four dimensions. If it is locked, then it indicates that the dimensions are fixed.
After the outer part of the player is created, it needs to be create a frame in which a media player. So, for creating that part select the rectangle from the tools list and draw a rectangle which is shown in the below figure with fixed dimensions. After the rectangle is drawn, name it as playlist selector. As the media player in that part, it is named as playlist selector. The other line which is shown in the picture is size constraint, in which the chapter areas or chapters are displayed as the thumbnails. User can select the chapter from that area to view that particular video.
After the Chapter area and the area for the media plays are created then we need to create navigation buttons. For creating a navigation buttons, create a stack panel and later the navigation buttons are inserted into the panel as shown in the figure below.
Control buttons are created as shown in above picture and for each and every button appearance needs to be good. For creating a rich look for buttons gradient colors are used. Code for creating all the buttons and the volume button is shown in the below picture. Codes for creating the buttons are generated from the visual studio 2008. As this is the Silverlight project, code is written in XAML language and we can also generate the code in C sharp.
Above is the code written in XAML for creating the stack panel and buttons. Changing the button's appearance for giving rich appearance is done in the properties panel in expression blend.
After the buttons are created, next it needs to have a progress bar in which the downloading status is shown. Beside the progress bar a time panel need to implement in which the current block portion and total video duration need to be displayed. By this feature user can be able to view the source video duration and the current position of the progress bar. Progress bar is also created in the stack panel with specified grid alignments.
After the progress bar and duration block, the external design of the media player is created and the next part is to play Smooth Streaming video into a media player. For creating IIS7 Smooth Streaming we can generate video in expression encoder 3. It is not possible for trial version software to create smooth streaming. Software needs to be full version and licensed version with IIS 7 Smooth Streaming compatibility.
Media player which we created needs to be copied into encoder. In the encoder select the template which we have uploaded. Select a media file which needs to be encoded as smooth streaming video. After the video is selected, we can add the "metadata", "output", "enhance" etc.
In the metadata we can insert the fields like title, author, copyright, version, credits, and description etc. before encoding the video. By filling the metadata, it can say that all the copyrights are reserved. It takes several minutes to encode into smooth streaming video. After the encoding is completed it creates .ism file along with group of supporting files as shown in the figure below:
We can observe that some video files with different qualities have been created with default page. Media player plays in the default page in any browser, any platform. Depending upon the bandwidth of the connection, quality of the video changes due to which the streaming is continuous without any buffering problems. All the other files which we can observe in the picture are supporting files for the media player.
Creating IIS Smooth Streaming Presentations:
Smooth Streaming presentations are generated and created in IIS Manager. It is used to display the streaming presentations in a directory. To create the smooth streaming presentations open IIS Manager in the connections pane open the sites menu, from that select Amazing Caves home. In the "feature view" pane under "server components" select IIS Smooth Streaming presentations.
A new window is opened which shows the complete summery of the video and audio bit rates which are shown in the below picture.
We can observe that the video bit rates are about 1664 Kbps, 1241 Kbps and audio bit rate as 64 kbps.
Final Output with Streaming Graphs:
Below picture shows the final output of the media player after the coding is completed and smooth streaming videos are encoded.
Media player shows some graphs while it is playing, colors are indicated as Red color line indicates the current bit rate, Blue color indicates now downloading bit rate, Green color line indicates the frame rate, Orange color line indicates the bandwidth.
Limiting Bandwidth to particular bit rate:
While the player is running within the local host, then there are no expenses paid to it but if we are playing the video from a remote server then it costs for uploading and downloading. It is also paid for the bandwidth used. In order to reduce the expenses we can cut the maximum bit rate and limit it to a certain bit rate. Even it is a high bandwidth internet connection the video's bit rate is limited to a fixed value.
In order to limit the bit rate open the connections pane, then in the server connections click " smooth streaming presentations" then a new window opens with the summary of the video. To the right side of the window, in the Actions pane click "Edit Smooth Stream".
A window open with all the bit rates for the video and it also shows that highest bit rate is 1644 kbps. We can delete that bit rate to that the maximum bit rate is now 1241 kbps. In this way we have limited the highest bit rate to 1241 kbps from 1644 kbps.
By pressing the remove button at the right side of the window, it deletes the selected bit rate. After deleting the highest bit rate, now the video plays with highest bit rate as 1241 kbps. Due to limiting the bit rate, cost is reduced. Below picture shows the highest bandwidth at 1644 kbps with blue color line.
6. TESTING AND ANALYSIS
6.1 Unit Testing
Unit testing is the one of the important testing performed after the implementation part. The main idea behind the unit testing is to take a small piece of the software code, separate it from the code and test it whether it behaves exactly as its function is written or the out which the developer is expecting. Before the code is combined with the other modules it is tested individually whether the interfaces between the code works exactly as written by developer or not. Many of the software are tested by unit testing and maximum number of the bugs is identified.
For the unit testing to be performed it requires drives and stubs to be included. The role of drivers is to simulate the calling unit and the role of the stub is to simulate the called unit. While unit testing is performed it consumes lot of time for developer so, he may assign the unit testing to a low level priority. By doing this operation unit testing cannot be performed as it is designed. Even though it consumes lot of time it gives results which are indisputable. Unit testing allows in reducing the difficulties by finding the errors which are present in most complex part of the code. As the each unit of the code has to be tested, test coverage is updated in regular intervals of time.
When we consider the current project it can be tested with unit testing or the integrated testing depending upon the resources available for developer to perform the testing. If the sufficient resources are available the stubs and drivers are written and they are simulated for each and every unit in the project. While the testing is performed and there are important units in which they need to be integrated. Assume that integrating the two units are cost effective and while the testing is performed an error can occur in different places such as it could be in unit 1, or unit 2, or in both of them, the interface in between both the units or sometime the error may be in the testing process. It is the most difficult part to identify the error in the integrated part. As there is a choice of re utilizing the drivers and stubs which are written, so whenever the code is changed it can be tested at any time. Unit testing is performed for the current project and some of the errors were found during testing and they are rectified as per individual unit.
8.2 Integration testing
Integration testing is considered as the coherent extension of the unit testing. In this part of testing the units which are tested by the unit testing are again tested. The units which are already tested are combined with the other units and the between the two units is tested. The units which are combined together are known as component. The main idea of the integration testing is to test components ( one or more than unit units combined) and modules which are created by us. In a step by step process all the modules are tested if they come under a single process. If there is more than one process, they should be tested in making pair and should not test all the processes at once.
By performing the integration testing, it discovers the problems when units are integrated and by planning and testing each unit it confirms the practicality before the units are combined. It is a known fact that whenever an error is encountered while both the units are combined then it relates to interface in between the units.
Integration testing can be performed in any of the methods but the three strategies are used in common. They are
Top down approach: In this process of integration testing, the modules which are present in the highest level are tested first and by performing this task the logic at the higher level and the data flow is tested, due to which the utilization of the drivers are reduced. In this approach, stubs make the testing process more complicated. Low level logic is tested in the later session of the process. One of the main disadvantages of the top down approach is, it has poor functionality for early release.
Bottom up approach:
In this process of integration, the modules which are present in the lower level are tested first and by testing this task the logic at the lower level and the data flow is tested, due to which the utilization of the stubs are reduced. In this approach, drivers make the testing management more complicated. Higher level logic is tested at the later stages of the development process. As same as the top down approach, it has the poor functionality for the early release.
Umbrella approach is known as the third approach of the integration testing. In this process functional data and control flow paths are tested. In this approach inputs are integrated with the bottom up approach and later outputs are integrated with top down approach. Both the approaches are explained above. The main advantage of for this method is, it supports the early release of the functionality. Disadvantages of this approach are that it is less taxonomic when compared with top down and bottom up approaches. In the umbrella approach use of drivers and stubs are reduced.
Most of the people think that, user testing is very costly and it is a very difficult process which consumes a lot of time. It is considered that the test should be conducted on the web design projects which has huge budget. But it is not true. Perfect results can be achieved if the project is tested by 5 people and running small tests.
Problems in the software can be found by using a small formula which has k users.
N (1-(1-M) k)
N = Total number of user problems in the design
M = It is proportion to user problems recognized while the user testing is performed by single user.
k = number of users
Increase in proportion of usability problems found as a function of number of users tested
From the above graph, we can observe that with zero number of users we can get zero defects.
When the first user tests the product (single test user), the perceptivity is already know by the designer. Three fourth of the mistakes has already solved by the designer, all he has to know is about the usability of design which is implemented. It is known that the difference between zero and little bit of defects.
When the second user tests the product, it is noticed that the second user explains the same points as the first user explained. So, some points are overlapped but there is difference between each and every people. Therefore, we can notice that the second user notices some points which are new and they did not observed by the first user. By this we can observe that the second user's report has some perceptivity but not as much as the first user's report.
When the third user tests the data, many of the common things are observed and some points are observed twice but as the persons are different, third user also generates some new information but that information may not be as many points as first user and the second user.
If the testing is performed by more and more users, same things are repeated multiple times by every user. It is not necessary to keep listening the same things every time when it is tested by the users by this designer is prompted to go back to the starting point and eliminate the user problems. When the product is tested after the fifth user, almost everything is repeated by the users and it is considered as waste of time and money. There are no new points recognized.
When the user testing is performed for the current project some of the points observed as, the quality of the video is very high quality, continues streaming without any interruption and main advantage is that, in most of the player when full screen is exited then video stops and starts buffering from that point. In this case there are no buffering problems. Audio quality is very clear and we can hear even a small instrument sounds also. He observes a small defect near the volume button. When the volume is muted, and again when it is unmute the volume has to continue at the same level when it was muted but it increasing to the maximum volume.
7. CONCLUSION AND RECOMMENDATIONS
Finally, after the implementation of the project the main aims and objects such as designing of a media player on Silverlight platform is successful. It has reached all the requirements which are stated in the initial phases. Now the media player plays HD quality videos online without any buffering problems. At present the media player is running on the local server so, there are no advanced options integrated into the player. IIS Smooth Streaming technology is implemented while the videos are created. Due to which video can play in any of the bandwidth connections. Video plays according to the client's internet connections. While the project is under the research phase, some issues raised such as, taking a lot of time for research on the topic but nothing important matter found. This process continued for three to four days, later a technique for research is found and the process continued easily from that phase. While the coding is under process many bugs and errors raised and functions did not respond as they have written. This is due to the methods which are written are placed wrong in the code. Later it was identified when the code is reviewed from the beginning. This made some time consumption but finally all the bugs are removed and all the functions worked normally. A case study has been written, which uses the similar technologies which are used in the current project but, it is developed for a big organization which broadcast the live streaming.
Enhancements which can be done in the future are: It is player on the remote server and make it available to all the viewers, New skins are added and make it more rich looking, additional features such as live broadcasting is also implemented which maximum scalability and high quality. Finally, it is conclude that all the aims and objectives which are mentioned are achieved successfully.
1) "Essential Silverlight 3 by Ashraf Michail released on October 2009, ISBN 13: 9780321554161, ISBN10: 0321554167"
2) "Silverlight 3 Programmer's Reference by J.Ambrose Little, Jason Beres, Grant Hinkson, Devin Rader, Joe Croney. Published on 14/08/2009 by John Wiley and Sons Ltd. ISBN 13: 9780470385401, ISBN 10: 0470385405."
3) "Microsoft Silverlight 3: A Beginner's Guide by Shannon Horn. Published on November 2009. ISBN: 9780071590433"
4) "Introducing Microsoft Silverlight 3 by Laurence Moroney. Published by Microsoft press US. ISBN: 9780735625730"
5) "Foundation Expression Blend 3 by Victor Gaudiso. Published on 22 June 2009. ISBN-10: 1430219505, ISBN-13: 9781430219507"
6) "Creating Amazing User Interface in C#, WPF and XAML by Andrew Moore on November 2007 by Wrox Press, Inc. ISBN 13: 9780470258712, ISBN: 0470258713."
E-Books and Journals
1) "Flex vs. Silverlight vs. AJAX vs. JavaFX" a journal published by GS Journals - Flash computing http://gsjournals.wordpress.com/2009/01/15/flex-vs-silverlight-vs-ajax-vs-javafx\\"
2) "IIS Smooth Streaming and its development published by Microsoft official website http://msdn.microsoft.com/en-us/library/ee958035%28VS.90%29.aspx\\"
3) "Video player and its customization by Jeremy Osborn from Aquent graphics institutions. http://expression.microsoft.com/en-us/dd565843.aspx\\"
4) "Complete study of XAML by MSDN http://msdn.microsoft.com/en-us/library/cc189054%28v=VS.95%29.aspx\\"
1) NBC universal -case study which is posted on 2 Feb. 2010 "http://www.microsoft.com/Casestudies/Case_Study_Detail.aspx?casestudyid=4000006602//"
2) An article published on user testing "http://www.useit.com/alertbox/20000319.html//"
3) "Unit testing referenced in Microsoft official website,http://msdn.microsoft.com/en-us/library/aa292128%28v=VS.71%29.aspx//"
4) "Integration testing referenced in Microsoft official website http://msdn.microsoft.com/en-us/library/aa292197%28VS.71%29.aspx\\"
5) "Online tutorials on Microsoft Expression Blend by Dante Gagne http://expression.microsoft.com/en-us/cc188684.aspx\\"
6) "About IIS Smooth Streaming and Developing streaming http://msdn.microsoft.com/en-us/library/dd159743%28Expression.30%29.aspx\\"
7) "Silverlight and its showcase. Different types of applications on Silverlight platform http://www.silverlight.net/showcase/\\"
1) Enhancing Silverlight video experiences with contextual data by Jit Ghosh in MSDN Magazine on IIS Smooth Streaming. March 2010 Issues. http://msdn.microsoft.com/en-us/magazine/ee336025.aspx