0513_FR.doc

1,367 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,367
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

0513_FR.doc

  1. 1. X-Stream TV Final Project Report Senior Project Session 2001-2005 Submitted By Atif Shah 2005-02-0031 Nehdia Sameen 2005-02-0124 Usman Dawood 2005-02-0197 Yasir Baghpati 2005-02-0275 Department of Computer Science Lahore University of Management Sciences
  2. 2. A report submitted to the Department of Computer Science in partial fulfillment of the requirements for the degree BSc (Honours) in Computer Science by Atif Shah Nehdia Sameen Usman Dawood Yasir Jawed Baghpati Lahore University of Management Sciences May 13, 2005 X-Stream TV i
  3. 3. Statement of Submission Submitted to: _______________________ Dr. Shahid Masud Primary Project Advisor _______________________ _______________________ Dr Tariq Jadoon Dr. Jehangir Ikram Secondary Project Advisor Secondary Project Advisor X-Stream TV ii
  4. 4. Acknowledgements We truly acknowledge the assistance of our Senior Project advisors – Dr. Shahid Masud, Dr. Jahangir Ikram and Dr. Tariq Jadoon for their comments, recommendations, and regular critique of our work that guided us through our project. We are also thankful to Dr. Asim Loan, Senior Project Coordinator, for his continual guidance and support during the development of this project. (Signed) Atif Shah 2005-02-0031 Nehdia Sameen 2005-02-0124 Usman Dawood 2005-02-0197 Yasir Jawed Baghpati 2005-02-0275 Date May 13, 2005 X-Stream TV iii
  5. 5. Abstract We have been unable to locate any software in the local market available to the small business/home user that allows the streaming of multimedia information from an external television source (e.g. TV antenna, cable, cassette/VCD/DVD players, etc.) over a TCP/IP network. Our product allows the end user to receive TV input (using a TV Tuner and a soundcard) and broadcast it to network client(s). Our product does not include client software (e.g. multimedia players, etc.), but provides a multimedia stream that is compatible with most popularly available client applications (e.g. Windows Media Player, WinAmp). To provide a viable product, we plan to include a real-time compression engine that compresses the audiovisual information to a variable bit rate that can be broadcast over a TCP/IP network without significant loss in quality. Potential applications for such software include the following: • broadcasting TV channels from a single cable connection to multiple network clients • broadcasting live or pre-recorded video feeds (such as presentations, lectures or documentaries) on an office or campus network • individual users can access their personal cable connection or video collection via a network X-Stream TV iv
  6. 6. Table of Contents STATEMENT OF SUBMISSION.......................................................................................................................II ACKNOWLEDGEMENTS................................................................................................................................III ABSTRACT.........................................................................................................................................................IV TABLE OF CONTENTS.....................................................................................................................................V LIST OF FIGURES.............................................................................................................................................IX LIST OF TABLES................................................................................................................................................X CHAPTER 1 INTRODUCTION..................................................................................................................................................1 1.1 BENEFITS........................................................................................................................................................1 1.2 OBJECTIVES .................................................................................................................................................2 CHAPTER 2 REQUIREMENTS AND ANALYSIS..................................................................................................................3 2.1 PRODUCT PERSPECTIVE...........................................................................................................................3 2.1.1 USER INTERFACES...........................................................................................................................................3 2.1.2 HARDWARE INTERFACES..................................................................................................................................3 2.1.3 SOFTWARE INTERFACES....................................................................................................................................3 2.1.4 COMMUNICATIONS INTERFACES.........................................................................................................................4 2.1.5 MEMORY CONSTRAINTS...................................................................................................................................4 2.1.6 OPERATIONS..................................................................................................................................................4 2.1.7 SITE ADAPTATION REQUIREMENTS......................................................................................................................4 2.2 PRODUCT FUNCTIONS...............................................................................................................................5 2.3 USER CHARACTERISTICS ........................................................................................................................5 2.4 CONSTRAINTS...............................................................................................................................................5 2.5 ASSUMPTIONS AND DEPENDENCIES.....................................................................................................6 2.6 SPECIFIC REQUIREMENTS.......................................................................................................................6 2.6.1 EXTERNAL INTERFACE REQUIREMENTS................................................................................................................6 a) User interfaces...........................................................................................................................................6 b) Hardware interfaces..................................................................................................................................7 c) Software interfaces....................................................................................................................................7 d) Communications interfaces.......................................................................................................................8 CHAPTER 3 DESIGN..................................................................................................................................................................9 3.1 MODULE DECOMPOSITION......................................................................................................................9 3.1.1 MODULE 1.0 – GET FEED...............................................................................................................................9 a) Module 1.1 Initiate Session.......................................................................................................................9 b) Module 1.2 Interface with TV Tuner + Sound Card..................................................................................9 c) Module 1.3 Get Audio/Video Stream.........................................................................................................9 3.1.2 MODULE 2.0 – ENCODE STREAM...................................................................................................................10 a) Module 2.1 Get Stream............................................................................................................................10 b) Module 2.2 Configure Encoder...............................................................................................................10 c) Module 2.3 Encode Stream......................................................................................................................10 3.1.3 MODULE 3.0 – NETWORK OUTPUT.................................................................................................................10 X-Stream TV v
  7. 7. a) Module 3.1 Interface with Network Card................................................................................................11 b) Module 3.2 Generate RTSP Packets........................................................................................................11 c) Module 3.3 Output to Network................................................................................................................11 3.1.4 MODULE 4.0 – GENERATE FEEDBACK.............................................................................................................11 a) Module 4.1 Get Statistics.........................................................................................................................11 b) Module 4.2 Tabulate Results...................................................................................................................11 c) Module 4.3 Generate Feedback...............................................................................................................11 CHAPTER 4 CHOOSING THE APPROPRIATE SDK.........................................................................................................12 CHAPTER 5 QUALITY ASSURANCE...................................................................................................................................13 5.1 OBJECTIVES................................................................................................................................................13 5.2 BACKGROUND............................................................................................................................................13 5.3 SCOPE............................................................................................................................................................13 5.4 REFERENCES...............................................................................................................................................13 5.5 TEST ITEMS.................................................................................................................................................14 5.5.1 PROGRAM MODULES .....................................................................................................................................14 5.5.2 JOB CONTROL PROCEDURES ............................................................................................................................14 5.5.3 USER PROCEDURES .......................................................................................................................................14 5.5.4 OPERATOR PROCEDURES.................................................................................................................................14 5.6 FEATURES TO BE TESTED......................................................................................................................15 5.7 FEATURES NOT TO BE TESTED.............................................................................................................15 5.8 APPROACH...................................................................................................................................................15 5.8.1 LIVE STREAMING..........................................................................................................................................15 5.8.2 FILE STREAMING...........................................................................................................................................16 5.8.3 FILE RECORDING...........................................................................................................................................16 5.8.4 INTERFACE TESTING.......................................................................................................................................16 5.8.5 PERFORMANCE TESTING.................................................................................................................................16 5.8.6 COMPREHENSIVENESS....................................................................................................................................16 5.9 ITEM PASS/FAIL CRITERIA....................................................................................................................17 5.10 SUSPENSION CRITERIA AND RESUMPTION REQUIREMENTS .................................................18 5.10.1 SUSPENSION CRITERIA .................................................................................................................................18 5.10.2 RESUMPTION REQUIREMENTS.........................................................................................................................18 5.11 TEST DELIVERABLES ............................................................................................................................18 5.12 TESTING TASKS........................................................................................................................................18 5.13 ENVIRONMENTAL NEEDS.....................................................................................................................19 5.13.1 HARDWARE...............................................................................................................................................19 5.13.2 SOFTWARE.................................................................................................................................................19 a) Operating system.....................................................................................................................................19 b) Communications software.......................................................................................................................19 5.13.3 SECURITY..................................................................................................................................................19 5.13.4 TOOLS......................................................................................................................................................19 5.13.5 PUBLICATIONS............................................................................................................................................19 5.14 RESPONSIBILITIES..................................................................................................................................19 5.14.1 SYSTEM TEST GROUP...................................................................................................................................20 X-Stream TV vi
  8. 8. 5.14.2 PROJECT ADVISORS......................................................................................................................................20 5.15 STAFFING AND TRAINING NEEDS......................................................................................................20 5.16 SCHEDULE..................................................................................................................................................20 5.17 RISKS AND CONTINGENCIES...............................................................................................................20 ATTACHMENT A: TASK LIST.......................................................................................................................21 5.18. TEST DESIGN SPECIFICATIONS.........................................................................................................22 5.18.1 XD1: LIVE STREAMING FROM EXTERNAL SOURCE............................................................................................22 Features to be tested....................................................................................................................................22 Approach refinements..................................................................................................................................22 Test identification.........................................................................................................................................22 Feature pass/fail criteria.............................................................................................................................23 5.18.2 XD2. STREAMING A PRE-EXISTING FILE ON THE SERVER...................................................................................23 Features to be tested....................................................................................................................................23 Approach refinements..................................................................................................................................23 Test identification.........................................................................................................................................24 5.18.3 XC3: PRE-EXISTING FILE............................................................................................................................24 Feature pass/fail criteria.............................................................................................................................24 5.19 TEST CASE SPECIFICATIONS...............................................................................................................25 5.19.1 XC1. VCD PLAYER..................................................................................................................................25 Test items.....................................................................................................................................................25 Input specifications......................................................................................................................................25 Output specifications...................................................................................................................................25 Environmental needs....................................................................................................................................25 5.19.2 XC2. DIGITAL CAMERA..............................................................................................................................26 Test items.....................................................................................................................................................26 Input specifications......................................................................................................................................26 Output specifications...................................................................................................................................26 Environmental needs....................................................................................................................................26 5.19.3 XC3. PRE-EXISTING FILE............................................................................................................................27 Test items.....................................................................................................................................................27 Input specifications......................................................................................................................................27 Output specifications...................................................................................................................................27 Environmental needs....................................................................................................................................27 5.20 TEST PROCEDURE SPECIFICATIONS................................................................................................29 5.20.1 XP1. EXECUTING ALL TEST CASES................................................................................................................29 Purpose........................................................................................................................................................29 Special requirements....................................................................................................................................29 Procedure steps............................................................................................................................................29 5.21 TEST INCIDENT REPORTS....................................................................................................................30 5.21.1 XI1. INCIDENT REPORT 1............................................................................................................................30 5.21.2 XI2. INCIDENT REPORT 2............................................................................................................................31 5.21.3 XI3. INCIDENT REPORT 3............................................................................................................................31 5.21.4 XI4. INCIDENT REPORT 4............................................................................................................................32 5.21.5 XI5. INCIDENT REPORT 5............................................................................................................................33 5.21.6 XI6. INCIDENT REPORT 6............................................................................................................................34 5.21.7 XI7. INCIDENT REPORT 7............................................................................................................................35 5.21.8 XI8. INCIDENT REPORT 8............................................................................................................................36 5.21.9 XI9. INCIDENT REPORT 9............................................................................................................................37 5.21.10 XI10. INCIDENT REPORT 10......................................................................................................................38 X-Stream TV vii
  9. 9. 5.21.11 X11. INCIDENT REPORT 11........................................................................................................................39 5.22 TEST SUMMARY REPORT.....................................................................................................................40 5.22.1 XS1. OVERALL SUMMARY REPORT................................................................................................................40 Summary......................................................................................................................................................40 Variances.....................................................................................................................................................40 Comprehensive assessment..........................................................................................................................40 Summary of results.......................................................................................................................................41 Evaluation....................................................................................................................................................42 Summary of activities...................................................................................................................................43 5.23 TEST RESULTS..........................................................................................................................................44 CHAPTER 6 DEPLOYMENT ..................................................................................................................................................55 CHAPTER 7 RESULTS AND CONCLUSION.......................................................................................................................56 CHAPTER 8 FUTURE WORK.................................................................................................................................................57 APPENDIX A WINDOWS MEDIA VS. MICROSOFT DIRECTSHOW..............................................................................58 APPENDIX B STREAMING TECHNOLOGY.........................................................................................................................62 X-Stream TV viii
  10. 10. List of Figures FIGURE 1: DIAL-UP MODEMS OR SINGLE-CHANNEL ISDN (28.8 TO 56 KBPS)..............................44 FIGURE 2: LAN, CABLE MODEM, OR XDSL (100 TO 768 KBPS)...........................................................45 FIGURE 3: DIAL-UP MODEMS OR LAN (28.8 TO 100 KBPS)..................................................................46 FIGURE 4: DIAL-UP MODEMS (28.8 KBPS)................................................................................................47 FIGURE 5: DIAL-UP MODEMS (56 KBPS)...................................................................................................48 FIGURE 6: LOCAL AREA NETWORK (100 KBPS).....................................................................................49 FIGURE 7: LOCAL AREA NETWORK (256 KBPS).....................................................................................50 FIGURE 8: LOCAL AREA NETWORK (384 KBPS).....................................................................................51 FIGURE 9: LOCAL AREA NETWORK (768 KBPS).....................................................................................52 FIGURE 10: 28.8 MODEM WITH SAVE TO FILE OPTION.......................................................................53 FIGURE 11: LOCAL AREA NETWORK (768 KBPS) WITH SAVE TO FILE OPTION.........................54 X-Stream TV ix
  11. 11. List of Tables TABLE 1: PROGRAM MODULES..................................................................................................................14 TABLE 2: USER PROCEDURES.....................................................................................................................14 TABLE 3: OPERATOR PROCEDURES.........................................................................................................14 TABLE 4: FEATURES TO BE TESTED.........................................................................................................15 TABLE 5: ITEM PASS/FAIL CRITERIA.......................................................................................................17 TABLE 6: TASK LIST........................................................................................................................................21 TABLE 7: VCD PLAYER TEST ITEMS.........................................................................................................25 TABLE 8: DIGITAL CAMERA TEST ITEMS...............................................................................................26 TABLE 9: PRE-EXISTING FILE TEST ITEMS............................................................................................27 TABLE 10: TEST ITEM ASSESSMENT.........................................................................................................41 TABLE 11: TEST ITEM EVALUATION.........................................................................................................42 X-Stream TV x
  12. 12. Chapter 1 Introduction The application being developed, X-Stream TV is an engine for streaming live multimedia over a network. The objective of X-Stream TV is taking a live feed from a TV Tuner and sound card, and streaming it over a network in real time. Its intended uses include video conferencing, live TV distribution, and live presentation viewing, etc. using a pre-existing network. Depending on usage, the live feed is obtained from a TV antenna, a video camera, or any other compatible audio/video device. X-Stream TV transmits the captured feed for display on a remote terminal. In order to reduce time lag, and distortion, while maintaining quality, X-Stream TV incorporates real-time encoding modules to manage the transmitted data size. Using streaming, multimedia servers allow clients the ability to play files before the downloading process is completed. The obvious benefit of this technology is that clients do not have to wait a long time for the complete file to download, but can instead start playback of audio/video data almost immediately. A developer or web designer can place specially formatted links within their website that reference network or internet locations that serve streaming multimedia content. When a client clicks on such a link, the multimedia server streams the content directly to the viewer’s PC, possibly via an embedded player on the website, or an external media player application. Not only does the viewer think that the website is streaming the content, the web server does not suffer network degradation, since the multimedia content is streamed to the client directly from a high-bandwidth dedicated server. This allows the integration of textual and graphical data on websites with high-quality, streaming audio/video content. X-Stream TV is an ideal application for a multimedia streaming server, since it allows its users to capture audio/video content from a variety of sources, encode it on the fly using any number of different compression levels, and stream it using the optimal network configuration to remote clients, particularly via an Ethernet LAN or potentially the World Wide Web. 1.1 Benefits Since X-Stream TV does not have a particular category of user in mind, it holds potential for both professionals and casual users, and further for leisure as well as work. Users can benefit from the venues for distribution that X-Stream TV provides, since (depending on network performance) a large number of users can log on to a shared server from various remote clients. Leisure-seekers separated geographically can all enjoy the same TV channel or televised performance, while executives can attend seminars virtually or presentations, or use videoconferencing. Various media are used in Internet, not only for the obvious purpose of entertainment applications, but for other applications such as video conferencing, video archives and libraries, remote learning, multimedia presentations, video surveillance, and of course, video on demand. X-Stream TV 1
  13. 13. 1.2 Objectives The main targets X-Stream TV shall achieve are: Frame resolution : Minimum 160 x 120 pixels Refresh rate : Minimum 4 fps Network requirements : Ethernet LAN or Internet Hardware requirements : 1 GHz processor, 256 MB RAM X-Stream TV is an independent product, and completely self-contained. At this time, it is not planned as part of any larger product. X-Stream TV references the Windows Media Encoder SDK library in order to encode the captured feed using an industry standard audio/video compression format, before broadcasting this data over the network. However, the Windows Media Encoder library helps encode the data according to specification provided by the product; X-Stream TV handles the capture, and eventual broadcast of the stream. X-Stream TV 2
  14. 14. Chapter 2 Requirements and Analysis 2.1 Product Perspective 2.1.1 User interfaces The X-Stream TV user interface will incorporate user friendliness, and a low learning curve. The immediate objective is to provide an interface appealing to both professional and casual users, and provides a high level of functionality regardless of prior computer experience and skill. X-Stream TV will only require initial user input to determine the following runtime configuration: • Audio source: Where X-Stream TV should capture audio feed • Video source: Where X-Stream TV should capture video feed • Connection type: How does the user connect to the network • Port: What port the server will be listening at • Streaming Filename: What file to be streamed, if any • Save to Filename: What file to save to while streaming, if any The server-side interface will allow the above settings to be modified. The client-side interface will be a web browser. The web browser on the client side will be able to access a web page on the streaming server via HTTP. Multimedia will be embedded in this webpage and the server will stream directly to the web browser in this manner. Considering the above requirements, users can utilize X-Stream TV with a high measure of success regardless of their skill or prior computer experience. A user will not have to alter the configuration for best results repeatedly, since only initial input from the user is necessary. On the client side, no special knowledge is required, as anyone with sufficient experience with Windows Media Player and any web browser will be able to use the system. 2.1.2 Hardware interfaces Due to its nature and requirements, X-Stream TV interfaces with a number of hardware components, which are as follows: • TV Tuner: Provides the live video feed • Sound Card: Provides the live audio feed • Data store: e.g. hard drive, main memory. Temporarily stores intermediate data • Network interface: e.g. LAN card or modem. Used to stream over the network. 2.1.3 Software interfaces X-Stream TV interacts with Windows Media Encoder SDK library in order to encode the captured audio/video data prior to broadcasting it over the network. The nature of this X-Stream TV 3
  15. 15. software interface is object-based. X-Stream TV references the appropriate libraries and components. When needed, it creates a reference of the encoder, and sets the appropriate configuration according to the parameters and settings, etc. X-Stream TV sends the referenced encoder the audio/video data. The encoder returns the compressed/encoded data and X-Stream TV streams this over the network.| At this time, X-Stream TV is being designed to work in conjunction with Windows Media Encoder (9 series), which is freely available for download from Microsoft at: http://www.microsoft.com/windows/windowsmedia/9series/encoder/default.aspx X-Stream TV is designed primarily for the Microsoft Windows operating system. It is designed specifically for use with Windows 2000 and XP (recommended). X-Stream TV is implemented in C# using the Microsoft Visual Studio .NET development environment. 2.1.4 Communications Interfaces The application broadcasts the encoded audio/video stream using the Real Time Streaming Protocol (RTSP) over a TCP/IP network. X-Stream TV generates RTSP packets on the fly, comprising of the MAC header, IP header, TCP header, and the encoded data. 2.1.5 Memory constraints X-Stream TV requires a large amount of high-speed memory for simultaneous encoding and streaming multimedia. The frames captured from the TV Tuner, and the clips captured from the sound card need to be integrated before being sent to the encoder for compression. Furthermore, the compressed data returned by the encoder also needs to be stored temporarily prior to streaming it over the network. No doubt, the referenced encoder has its own memory requirements for ideal performance. 2.1.6 Operations Various modes of operations are supported involving different amounts of compression over different frame rates. To maintain the jitter free quality of the stream the user can select the connection type. X-Stream TV sets the encoding standards according to the user-selected connection type. 2.1.7 Site adaptation requirements X-Stream TV will only require initial user input to determine the following runtime configuration: • Audio source: Where X-Stream TV should capture audio feed • Video source: Where X-Stream TV should capture video feed • Connection type: How does the user connect to the network X-Stream TV 4
  16. 16. • Port: What port the server will be listening at • Streaming Filename: What file to be streamed, if any • Save to Filename: What file to save to while streaming, if any Aside from these initial settings, X-Stream TV does not require any other form of site adaptation. In addition, X-Stream TV is self-adapting, i.e. it dynamically reconfigures itself to suit the available network resources. 2.2 Product Functions This section describes the basic functions that X-Stream TV will provide. Further details are provided in Chapter 3. 1. Capture audio/video feed from TV Tuner and Sound Card. 2. Reference and configure Windows Media Encoder SDK library. 3. Generate and broadcast stream. 4. Tabulate network statistics. 2.3 User Characteristics X-Stream TV is designed to enable computer users to get results in a quick, efficient, and hassle-free manner. As such, there is little requirement for user skill or expertise. It is assumed that the user is familiar with the Microsoft Windows OS, and has a modicum of experience using computers. Moreover, the user is expected to specify the appropriate hardware devices that X-Stream TV will interface with (i.e. TV tuner, sound card), and specify the type of connection the computer has to the network. The user also has the option to stream from a file by just specifying the filename and directory location during the initial configuration. Beyond this, X-Stream TV does not require the user to have any prior knowledge of network technologies and protocols, multimedia compression, audio/video codecs, etc. 2.4 Constraints The following factors are constraints on the development of X-Stream TV that are outside the development team’s sphere of control: • Regulatory policies: Distribution of certain types of content without obtaining permission (and a license) is illegal, especially for profit. In order to protect itself from potential claims, the development team will have to bundle an End User License Agreement with the product that releases X-Stream TV and its developers from legal responsibilities. • Hardware limitations: Due to its use of real time capture and encoding, X-Stream TV requires a fast processor (recommended clock speed of 1 GHz or above), and vast X-Stream TV 5
  17. 17. amounts of memory (recommended 256 MB of RAM or above). Simultaneous execution of other (background) processes further detriments the product’s performance. Moreover, limited bandwidth adversely affects the product’s ability to stream data without error and jitter. • Software limitations: Relies on referencing Windows Media Encoder SDK library and a working installation of this SDK and the application are necessary for the successful working of X-Stream TV. • Higher order language requirements: X-Stream TV is implemented in C# using with the Microsoft .NET framework. Currently, only Microsoft Windows OS supports the framework, so X-Stream TV is limited to operation on systems using Windows. • Reliability requirements: In order to be of any practical appliance, X-Stream TV must provide at least a minimum level of quality, i.e. a video resolution of 160 x 120 pixels at 4 fps. 2.5 Assumptions and Dependencies X-Stream TV runs on any system using the Microsoft Windows operating system. While it is designed specifically for use with Windows 2000 / XP, it should also run on earlier versions of the OS as well. X-Stream TV requires a working installation of Windows Media Encoder to operate. At this time, it is designed specifically for use with Windows Media Encoder (9 series), but may work with earlier and future versions of this product. Since X-Stream TV is implemented in C# using the Microsoft .NET framework, it is currently dependant on the Microsoft Windows OS. 2.6 Specific Requirements 2.6.1 External interface requirements a) User interfaces The X-Stream TV user interface will incorporate user friendliness, and a low learning curve. The immediate objective is to provide an interface appealing to both professional and casual users, and provides a high level of functionality regardless of prior computer experience and skill. X-Stream TV will only require initial user input to determine the following runtime configuration: • Audio source: Where X-Stream TV should capture audio feed • Video source: Where X-Stream TV should capture video feed • Connection type: How does the user connect to the network X-Stream TV 6
  18. 18. • Port: What port the server will be listening at • Streaming Filename: What file to be streamed, if any • Save to Filename: What file to save to while streaming, if any The server-side interface will allow the above settings to be modified. The client-side interface will be a web browser. The web browser on the client side will be able to access a web page on the streaming server via HTTP. Multimedia will be embedded in this webpage and the server will stream directly to the web browser in this manner. Considering the above requirements, users can use X-Stream TV with a high measure of success regardless of their skill or prior computer experience. A user will not have to alter the configuration for best results repeatedly, since only initial input from the user is necessary. b) Hardware interfaces Due to its nature and requirements, X-Stream TV interfaces with a number of hardware components, which are as follows: • TV Tuner: Provides the live video feed • Sound Card: Provides the live audio feed • Data store: e.g. hard drive. Temporarily stores intermediate data • Network interface: e.g. LAN card or modem. Used to stream over the network. c) Software interfaces X-Stream TV interacts with Windows Media Encoder SDK reference library in order to encode the captured audio/video data prior to broadcasting it over the network. X-Stream TV references the appropriate libraries and components. When needed, it creates a reference of the encoder, and sets the appropriate configuration parameters and settings, etc. X-Stream TV sends the encoder reference the audio/video data. The encoder returns the compressed/encoded data and X-Stream TV streams this over the network. At this time, X-Stream TV is being designed to work in conjunction with Windows Media Encoder (9 series), which is freely available for download from Microsoft at: http://www.microsoft.com/windows/windowsmedia/9series/encoder/default.aspx X-Stream TV is designed primarily for the Microsoft Windows operating system. It is designed specifically for use with Windows 2000 and XP (recommended). X-Stream TV is implemented in C# using the Microsoft Visual Studio .NET development environment. X-Stream TV 7
  19. 19. d) Communications interfaces The application broadcasts the encoded audio/video stream using the Real Time Streaming Protocol (RTSP) over a TCP/IP network. X-Stream TV generates RTSP packets on the fly, comprising of the MAC header, IP header, TCP header, and the encoded data. X-Stream TV uses a C# reference library provided by the Windows Media SDK to stream its encoded content to remote clients. Under normal circumstances, two media protocols are available to X-Stream TV using this library. They are: • Real Time Streaming Protocol (RTSP) • Microsoft Media Server (MMS) protocol Both these protocols provide controls to the user to manipulate the multimedia stream, featuring common operations such as pause, rewind, fast-forward, and stop. MMS is a proprietary application layer protocol that provides backward compatibility for older versions of Windows Media, e.g. the Windows Media Player available on Windows 98/2000/XP. The RTSP protocol allows these operations by employing the following two TCP/IP standards: • Real Time Control Protocol (RTCP) that delivers control messages, e.g. negative ACKS, and requests, e.g. resend, when using RTSP over UDP. • Real Time Protocol (RTP) that delivers data packets when using RTSP over TCP. As a last resort, if neither RTSP nor MMS, then X-Stream TV uses standard and universal HyperText Transfer Protocol (HTTP). X-Stream TV manages this use of multiple protocols using the “protocol rollover” effect. Protocol Rollover refers to X-Stream TV’s ability to stream content to remote clients using the protocol that is most suited to their software’s compatibility, firewall issues, and network performance. The preferred protocol is RTSP, or MMS for clients using older versions of Windows Media Player. Initially, the server attempts transport using RTSP over TCP or UDP, or MMS over TCP or UDP. If the server is unable to stream content at an optimal level, then it switches from RTSP or MMS to HTTP transports. The rollover effect can be curtailed by remote clients by blocking the use of certain protocols in their Media Player. A client may block the MMS protocol and force X-Stream TV to stream using HTTP, or vice versa, in this manner. For more information on RTSP, see Appendix B. X-Stream TV 8
  20. 20. Chapter 3 Design The decomposition description records the division of the software system into design modules. It describes the way the system has been structured and the purpose and function of each module. For each module, a preliminary description is provided. The decomposition description can be used to identify the major design modules of the software system for purposes such as determining which module is responsible for performing specific functions and tracing requirements to modules. The modules are grouped into major classes show the design hierarchy, and to assist in reviewing the decomposition for completeness. Further, the decomposition description allows identification of each software component, its purpose, and basic functionality. This design information together with other project information can be used in estimating cost, staff, and schedule for the development effort. 3.1 Module decomposition 3.1.1 Module 1.0 – Get Feed This module is responsible for setting up the streaming server. It will initiate the server by interfacing the system with the hardware (TV Tuner, Sound Card) and obtaining the required audio/video (frames) streams. The obtained streams are passed onto the Encode Feed Module (2.0). Module 1.0 is subdivided into the three modules that provide the required functionality. a) Module 1.1 Initiate Session This module will take appropriate input from the user to setup the server so that it is up and running, i.e. streaming the live feed over a network. b) Module 1.2 Interface with TV Tuner + Sound Card This module interfaces the system with the TV Tuner and Sound Card, and configures it according to the application’s requirements so that audio/video streams can be extracted from them. c) Module 1.3 Get Audio/Video Stream This module extracts the audio/video stream from the TV Tuner and Sound Card. X-Stream TV 9
  21. 21. 3.1.2 Module 2.0 – Encode Stream The functionality of this Module is to transform the raw feed obtained from Get Feed Module, into an encoded form according to the Windows Media Format. The module references compatible components and libraries available in the Windows Media Encoder SDK. After configuring the reference according to the user’s specifications, the encoder compresses the raw feed into a Windows Media Format stream. This extremely powerful library also enables users to create multimedia productions from devices attached to their computers, translate audio and video files into Windows Media Format, and save the Windows Media-based content to a local file, broadcast it to the Internet, or push it to a Windows Media server. However, at this stage, X-Stream TV relies on the Windows Media Encoder reference library for the compression of the audio/video stream. To achieve this functionality this module is divided into three parts: a) Module 2.1 Get Stream This sub-module receives the Audio/Video Stream from the Get Feed module, and passes it on to the Encode Stream sub-module. On the successful instantiation of this object a success flag is passed on to the next sub-module. b) Module 2.2 Configure Encoder After the successful instantiation of the previous sub-module, the Configure Encoder sub- module analyzes the initially provided user configuration to determine the precise configuration of the encoder reference. This correct reference is passed on to the Encode Stream sub-module. c) Module 2.3 Encode Stream The purpose of this sub-module is to encode the audio/video data obtained from the user- defined hardware or multimedia file. The Windows Media Format codec is used, since this is universally compliant with the Windows Media Player (used at the client-end), and the compression rate varies according to the configuration of the encoder reference. The output of this sub-module is the encoded data which is passed on to Module 3.0, Network Output. If the user has opted to save the stream in a multimedia Windows Media Format file, then the encoded data is simultaneously written to file on the server’s hard drive. 3.1.3 Module 3.0 – Network Output After the Encoded data has been buffered the next step is to make this available for the users on the network. This is the functionality of this module. It interfaces the system with the Network Interface Card, generates Real Time Streaming Protocol (RTSP) packets and outputs them to the network. To achieve this, the Network Output Module is divided into three sub-modules: X-Stream TV 10
  22. 22. a) Module 3.1 Interface with Network Card This module interfaces the system with the selected network card so that the encoded audio/video streams can be output to the network. On successful interfacing a success flag is passed onto the next sub-module. b) Module 3.2 Generate RTSP Packets This sub-module takes in the Encoded data as inputs and creates RTSP packets by attaching appropriate headers to segments of the Encoded data. These headers include the MAC, IP and TCP/UDP headers, besides other data. The packets that have been created are passed on to the next sub-module. c) Module 3.3 Output to Network The function of this sub-module is to output the RTSP packets, obtained from the sub- module Generate RTSP Packets, to the network. 3.1.4 Module 4.0 – Generate Feedback The purpose of this module is to measure network performance and determine the necessary measures to maintain Quality of Service. It performs this functionality by obtaining network statistics, and tabulating them for presentation to the user at the end of streaming activity. All these functions are achieved by the following sub-modules: a) Module 4.1 Get Statistics The purpose of this sub-module is to obtain statistics such as Current and Expected Bit Rate, number of clients, etc. These statistics are passed onto the next sub-module. b) Module 4.2 Tabulate Results This module tabulates the statistics collected in the previous sub-module at regular intervals during the streaming process in a user-friendly and easily interpreted format. This formatted table is passed on to the next module for display to the user. c) Module 4.3 Generate Feedback This module will generate a feedback for the system based on the pre-formatted table that it receives from the Module Tabulate Results. The purpose of this feedback is to present a complete record of the system’s performance to the user. X-Stream TV 11
  23. 23. Chapter 4 Choosing the Appropriate SDK To provide the multimedia compression functionality for the X-Stream TV server, we had to interface using a third-party reference library for C#. In the interests of providing compatibility to our immediate projected clientele, i.e. users at LUMS, and throughout Pakistan, we wanted a compression engine that would use audio and video codec compatible with the popular Microsoft Windows systems and applications. For this reason, X-Stream TV interfaces with a library provided by Microsoft for application developers. As described elsewhere in this document, this reference library is mainly for the encoding process wherein X-Stream TV compresses the audio and video feed received from the source into a stream-able format compatible with Windows Media Player at the client end. Microsoft currently provides two major SDKs for application developers, DirectShow and the Windows Media SDK. Either option provides a number of advantages, as well as drawbacks. It was imperative that we select the right SDK for use in X-Stream TV to ensure problem-free performance at the server, and universal compatibility at the remote client. DirectShow provides high-level access to multimedia manipulation and streaming using plug-ins and filters, including those other vendors. DirectShow offers a variety of extremely powerful video-editing tools, which provide the ability to create and edit Windows Media Format files, preview and stream audio/video in real-time, conversion of frame rates and sampling rates, and resizing/cropping of frames, etc. While DirectShow uses less processor resources, it has a tendency to create extremely large files unless using an extremely effective encoding filter/plug-in. On the other hand, the Windows Media SDK is available to developers hoping to integrate support for and manipulation of the Windows Media Format in their applications. It allows the reading, writing, and editing of Windows Media Format files, particularly the packaging of other multimedia formats into Microsoft’s ASF container for streaming to Windows Media clients. Windows Media SDK provides low-level access to the media stream, and benefits developers by generating small files for streaming and distribution over the internet or LAN. Initially, X-Stream TV was built around the DirectShow library, but in light of the above- mentioned information, it was extensively modified to interface with the Windows Media SDK reference library for its final version, since it offers greater compatibility for the Windows Media Format, uses compression technologies that are available by default with the Windows Media Player, and produces smaller files that are ideal for streaming over a network environment. For further information about Microsoft DirectShow, the Windows Media SDK, and the Windows Media Format, please refer to Appendix A. X-Stream TV 12
  24. 24. Chapter 5 Quality Assurance 5.1 Objectives A system test plan for X-Stream TV should support the following objectives: 1. To detail the activities required to prepare for and conduct the system test. 2. To communicate to all responsible parties the tasks that they are to perform and the schedule to be followed in performing the tasks. 3. To define the sources of the information used to prepare the plan. 4. To define the test tools and environment needed to conduct the system test. 5.2 Background Due to the unavailability of any software in the local market that allows the streaming of multimedia information from an external television source (e.g. TV antenna, cable, cassette/ VCD/DVD players, etc.) over a TCP/IP network, we decided to develop a system that would achieve this goal. Our product allows the end user to receive TV input (using a TV Tuner and a soundcard) and broadcast it to a network client(s). It does not include client software (e.g. multimedia players, etc.), but provides a multimedia stream that is compatible with Windows Media Player. It constitutes a real-time compression engine that compresses the audiovisual information to a variable bit rate that can be broadcast over a TCP/IP network without significant loss in quality. Potential applications for such software include the following: • broadcasting TV channels from a single cable connection to multiple network clients • broadcasting live or pre-recorded video feeds (such as presentations, lectures or documentaries) on an office or campus network • individual users can access their personal cable connection or video collection via a network 5.3 Scope This test plan covers a full systems test of the X-Stream TV Streaming Server. This includes comprehensively testing the streaming server and its features, as well as the client-side interface. In addition to features, the performance of the server will also be evaluated. 5.4 References Software Requirements Specifications (SRS) Software Design Document (SDD) X-Stream TV 13
  25. 25. 5.5 Test items 5.5.1 Program modules Table 1: Program Modules Program Module Filename Description XST01-01 Form1.cs Splash screen XST01-02 Form2.cs Configuration screen; allows server operator to set parameters for the server configuration and to set up a connection for streaming multimedia from a source XST01-03 Form3.cs Streams multimedia to clients while also displaying a preview of the video being streamed XST01-04 Form4.cs Displays session statistics XST01-05 stat.cs Class to hold statistics XST01-06 session.cs Class that contains statistics collected during any one session 5.5.2 Job control procedures N/A 5.5.3 User procedures The user procedures to be tested include the following: Table 2: User Procedures User Procedures Description XST02-01 Accessing the X-Stream TV webpage from a client on the LAN XST02-02 Viewing the audio/video stream through the Windows Media Player by clicking the link on the X-Stream TV webpage 5.5.4 Operator procedures Table 3: Operator Procedures Operator Procedure Description XST03-01 Selecting desired input source (hardware or file) XST03-02 Selecting desired output (configuring port, connection and/or file to record to) XST03-03 Stop/resume stream XST03-04 Viewing streaming statistics X-Stream TV 14
  26. 26. 5.6 Features to be tested Table 4: Features to be tested Test Design Description Specification Number XST04-01 Live streaming using various sources XST04-02 Recording a file XST04-03 Performance testing 5.7 Features not to be tested The following features will not be included in the system tests because they cannot be tested at this moment despite being supported by the application: • S-Video due to unavailability of compliant hardware • Unable to test the Video Tuner input due to unavailability of a TV antenna connection • No testing in a real-world environment due to unavailability of a dial-up or cable connection • No testing from an external network due to unavailability of an external IP address 5.8 Approach The test personnel will use the system documentation to prepare all test design, case, and procedure specifications. This approach will verify the accuracy and comprehensiveness of the information in the documentation in those areas covered by the tests. 5.8.1 Live streaming In order to test live streaming, we will demonstrate X-Stream TV with the following inputs: any multimedia device plugged into the TV Tuner card’s Video Composite input, e.g. digital camera, VCD player, etc. After connecting the source to the hardware, we will demonstrate streaming on client computers. 1. The X-Stream TV Streaming Server will be installed on a server computer on a LAN. 2. The client interface is a webpage which has been designed and set up on the server computer. 3. The HTTP server software being used is the native Windows XP server, i.e. Microsoft Internet Information Server. 4. Client computers on the same LAN will be able to access the X-Stream TV webpage. 5. Any multimedia source is connected to the server’s TV Tuner Video Composite. 6. The server is used to stream live multimedia from a connected multimedia source to the client computers, which access it through the Windows Media Player installed on them, using the mms:// URL presented on the X-Stream TV webpage. X-Stream TV 15
  27. 27. 5.8.2 File streaming In order to test file streaming, the input is any pre-existing multimedia file on the server. The remainder of the approach is virtually the same as that above. 1. The X-Stream TV Streaming Server will be installed on a server computer on a LAN. 2. The client interface is a webpage which has been designed and set up on the server computer. 3. The HTTP server software being used is the native Windows XP server, i.e. Microsoft Internet Information Server. 4. Client computers on the same LAN will be able to access the X-Stream TV webpage. 5. The server is used to stream multimedia from a saved pre-existing multimedia file on the server to the client computers, which access it through the Windows Media Player installed on them, using the mms:// URL presented on the X-Stream TV webpage. 5.8.3 File recording In order to test file recording, the following approach is to be taken: 1. The X-Stream TV Streaming Server will be installed on a server computer on a LAN. 2. Any multimedia source is connected to the server’s TV Tuner Video Composite. 3. The server software will receive input from the multimedia source, and while broadcasting the stream to clients, will simultaneously save it to the hard disk on the server computer in the Windows Media Video format. 4. The saved file may thus later be streamed to clients. 5.8.4 Interface testing In order to test the interface between the X-Stream TV Server and the clients, a webpage has been designed and placed on the server computer. The webpage will be accessed by the client computers, and it contains a pre-formatted URL that will launch Windows Media Player and play the streamed video. 5.8.5 Performance testing Performance will be evaluated against the following performance requirements (previously specified in the SRS): 1. Bandwidth: supports a bandwidth from 28.8 Kbps to 768 Kbps 2. Frame rate: minimum 4 fps, maximum as defined by the user’s TV Tuner card 3. Resolution: minimum 160 x120, maximum 320 x 240 4. Number of clients: 1 – 50 5.8.6 Comprehensiveness Each of the system features described in the Software Requirements Specification (SRS) will be tested. Briefly restated, these functions are as follows: 1. Capturing audio/video feed from a TV Tuner and Sound Card. 2. Configure the Windows Media Encoder. 3. Send audio/video data to the Encoder. X-Stream TV 16
  28. 28. 4. Receive the encoded data. 5. Generate and broadcast the multimedia stream. 6. Generate network feedback statistics. Each of the user procedures described earlier in this document will be tested at least once. Each of the operating procedures specified earlier in this document will be tested at least once. 5.9 Item pass/fail criteria The system must satisfy the following requirements for system pass/fail: Table 5: Item pass/fail criteria Module/ Pass/Fail Criteria Procedure XST01-01 Splash screen correctly displayed XST01-02 Correctly displays available audio sources, available TV Tuner inputs, and allows selection of a pre-existing file to stream; correctly allows port selection, displays available connection types and allows selection of an output file to save to while streaming XST01-03 Based on the options selected by the user, correctly selects and configures the input sources, receives the input, creates a broadcast, encodes the video and streams it from the hardware to clients; also displays a preview and measures and displays performance-related statistics XST01-04 Correctly displays session statistics XST01-05 Correctly stores statistics; will be tested on modules XST01-03 and XST01-04 XST01-06 Correctly stores statistics collected every five seconds, i.e. statistics collected for a particular session XST02-01 X-Stream TV webpage is correctly accessed through a browser on the user’s client XST02-02 Multimedia streams efficiently and easily, allowing the user to view multimedia through the Windows Media Player XST03-01 Input source is correctly configured and interfaced with the server software XST03-02 Output port is correctly configured, connection is correctly set up, and/or the output stream to a file is correctly set up XST03-03 The multimedia stream is started or resumed as desired XST03-04 Streaming statistics are correctly displayed and updated at all times; session statistics are displayed each time the multimedia stream is paused/ stopped XST04-01 Multimedia is streamed correctly with input provided by any source such as a VCD player or a digital camera XST04-02 The multimedia stream is correctly saved to a file on the hard disk X-Stream TV 17
  29. 29. XST04-03 The performance requirements as stated earlier in this document are met The system must also satisfy the following requirement: • User procedures must be consistent with the software being used on the client-side, i.e. Windows Media Player. 5.10 Suspension criteria and resumption requirements 5.10.1 Suspension criteria The inability of the server to correctly set up a connection and/or a much greater lag than expected (we have defined the upper limit to be 15 seconds) will cause suspension of all testing activities. 5.10.2 Resumption requirements For each new version of the system, any unexpected impact resulting from program modifications needs to be tested. Each test defined for each test item will be run on both the previous version of the system as well as the new version of the system, and then the results will be compared. 5.11 Test deliverables The following documents will be generated and will be delivered after test completion: Test documentation: System Test Plan System Test Design Specifications System Test Case Specifications System Test Procedure Specifications System Test Incident Reports System Test Summary Report Test data: (1) Input files will be placed on the server so that they may be streamed to the client. (2) Other multimedia sources such as a good quality digital camera, VCD player, DVD player, etc. (3) Output files (generated when the input is saved to a file while streaming it) will be saved to the server. 5.12 Testing tasks See Task List, Attachment A. X-Stream TV 18
  30. 30. 5.13 Environmental needs 5.13.1 Hardware The testing will be done using the following hardware configuration for the server computer: • Intel Pentium 4 HT CPU 2.8 GHz • 512 MB of RAM • 80 GB hard disk • PixelView TV Tuner card The client hardware is identical, except it does not have the TV Tuner card. 5.13.2 Software a) Operating system The operating system used to execute these tests is Microsoft Windows XP Professional Version 2002, Service Pack 2. b) Communications software The web server software being used to allow clients access to the X-Stream TV webpage is Microsoft Internet Information Server. On the client side, the native Windows Media Player will be used to access streams being provided by the server. 5.13.3 Security User authentication is not being handled; access is open to all clients that can access the network on which the server is running. Authentication is handled by the underlying network itself. 5.13.4 Tools No external test tools are being used. One of the features of the X-Stream TV server is to generate statistics on the fly regarding the performance quality of the server. 5.13.5 Publications The following documents are required to support systems testing: • Software Requirements Specification (SRS) • Software Design Document (SDD) • Task List, Attachment A 5.14 Responsibilities The following groups have responsibility for segments of the testing. X-Stream TV 19
  31. 31. 5.14.1 System test group Group 0513 will be carrying out all testing procedures. 5.14.2 Project advisors The group’s senior project advisors will provide assistance to the group in the following activities: • Reviewing the test design specifications • Executing the online tests • Checking output screens and reports 5.15 Staffing and Training Needs There are no special staffing or training needs as the X-Stream TV Streaming Server runs on any Windows XP machine and interfaces with clients running Windows XP and running the native Windows Media Player. Any user who is comfortable using Windows XP and Internet Explorer will have no trouble using the server. 5.16 Schedule See Task List, Attachment A. 5.17 Risks and contingencies If the testing schedule is significantly impacted by system failure, the group will abandon all testing to perform extensive debugging. If hardware problems impact system availability, the group will schedule their activities using other computers provided by the ITSS. The first production runs of the X-Stream TV Streaming Server must be checked out in detail before the final demonstration, and any checks in error must be corrected manually. X-Stream TV 20
  32. 32. Attachment A: Task List Table 6: Task List Task Predecessor tasks Special skills Effort Finish date (1) Prepare test plan. Complete project Windows 4 23/04/05 requirements analysis (SRS), Media design document (SDD), and Encoder, implementation code. C#, .NET framework (2) Prepare test Task 1 – 3 24/04/05 design specifications. (3) Prepare test case Complete corresponding test – 3 24/04/05 specifications. designs (Task 2) (4) Prepare test Complete corresponding test – 3 24/04/05 procedure cases (Task 3) specifications. (5) Collect Task 4 – 1 24/04/05 multimedia inputs for test cases. (6) Execute test Task 5 Knowledge of 4 24/04/05 procedures for each IIS test item. (7) Record and Task 6 – 4 24/04/05 resolve test incident reports. (8) Repeat tasks (6)- Task 6, Task 7 – 1 24/04/05 (7) until all test procedures have succeeded. (9) Write the system Task 8 – 2 25/04/05 test summary report. (10) Present all test Task 9 – 1 02/05/05 documentation and test data to the project advisors. X-Stream TV 21
  33. 33. 5.18. Test design specifications 5.18.1 XD1: Live streaming from external source Features to be tested The features to be tested are: 1. Capturing audio/video feed from the TV Tuner and Sound Card. 2. Configure the Windows Media Encoder. 3. Send audio/video data to the Encoder. 4. Receive the encoded data. 5. Generate and broadcast the multimedia stream. 6. Generate network feedback statistics. Approach refinements In order to test live streaming, we will demonstrate X-Stream TV with the following inputs: any multimedia device plugged into the TV Tuner card, e.g. live digital camera, VCD player, etc. After connecting the source to the hardware, we will demonstrate streaming on client computers. 1. The X-Stream TV Streaming Server will be installed on a server computer on a LAN. 2. The client interface is a webpage which has been designed and set up on the server computer. 3. The HTTP server software being used is the native Windows XP server, i.e. Microsoft Internet Information Server. 4. Client computers on the same LAN will be able to access the X-Stream TV webpage. 5. Any multimedia source is connected to the server via TV Tuner Video Composite. 6. The server is used to stream live multimedia from a connected multimedia source to the client computers, which access it through the Windows Media Player installed on them, using the mms:// URL presented on the X-Stream TV webpage. In addition to the above, we are using the following method: 1. Stream to one client for one minute. 2. Record the actual frame rate and the bandwidth in use. 3. After one minute, access the stream from another client simultaneously. 4. Record the new actual frame rate and the bandwidth in use. 5. Every five seconds, the program generates the current bit rate and the expected bit rate. Stop the stream after two minutes, and observe the sessions statistics that are returned. 6. Plot a graph against time elapsed showing the fluctuation of the actual bit rate as opposed to the expected bit rate. Note that after one minute, another client has been added. Test identification The test cases to be used here are as follows: X-Stream TV 22
  34. 34. • XC1: VCD player The external input source used will be a VCD player, and it will be used to play high- quality video that will subsequently be streamed. • XC2: Digital camera The external input source used will be a digital camera, and it will be used to capture and stream live video. Feature pass/fail criteria • XST01-02: Correctly displays available audio sources, available TV Tuner inputs, and allows selection of a pre-existing file to stream; correctly allows port selection, displays available connection types and allows selection of an output file to save to while streaming • XST01-03: Based on the options selected by the user, correctly selects and configures the input sources, receives the input, creates a broadcast, encodes the video and streams it from the hardware to clients; also displays a preview and measures and displays performance-related statistics 5.18.2 XD2. Streaming a pre-existing file on the server Features to be tested The features to be tested are: 1. Set up a pre-existing file on the server as an input source. 2. Configure the Windows Media Encoder. 3. Send audio/video data to the Encoder. 4. Receive the encoded data. 5. Generate and broadcast the multimedia stream. 6. Generate network feedback statistics. Approach refinements In order to test file streaming, the input is any pre-existing multimedia file on the server. The remainder of the approach is virtually the same as that above. 1. The X-Stream TV Streaming Server will be installed on a server computer on a LAN. 2. The client interface is a webpage which has been designed and set up on the server computer. 3. The HTTP server software being used is the native Windows XP server, i.e. Microsoft Internet Information Server. 4. Client computers on the same LAN will be able to access the X-Stream TV webpage. 5. The server is used to stream multimedia from a saved pre-existing multimedia file on the server to the client computers, which access it through the Windows Media Player installed on them, using the mms:// URL presented on the X-Stream TV webpage. In addition to the above, we are using the following method: X-Stream TV 23
  35. 35. 1. Stream to one client for one minute. 2. Record the actual frame rate and the bandwidth in use. 3. After one minute, access the stream from another client simultaneously. 4. Record the new actual frame rate and the bandwidth in use. 5. Every five seconds, the program generates the current bit rate and the expected bit rate. Stop the stream after two minutes, and observe the sessions statistics that are returned. 6. Plot a graph against time elapsed showing the fluctuation of the actual bit rate as opposed to the expected bit rate. Note that after one minute, another client has been added. Test identification The test cases to be used here are as follows: 5.18.3 XC3: Pre-existing file A pre-existing file will be placed on the server and used as an input source for the server. Feature pass/fail criteria • XST01-02: Correctly displays available audio sources, available TV Tuner inputs, and allows selection of a pre-existing file to stream; correctly allows port selection, displays available connection types and allows selection of an output file to save to while streaming • XST01-03: Based on the options selected by the user, correctly selects and configures the input sources, receives the input, creates a broadcast, encodes the video and streams it from the hardware to clients; also displays a preview and measures and displays performance-related statistics X-Stream TV 24
  36. 36. 5.19 Test case specifications 5.19.1 XC1. VCD player Test items The test items to be tested by this test case are, primarily: Table 7: VCD Player Test Items Program Module Filename Description XST01-02 Form2.cs Configuration screen; allows server operator to set parameters for the server configuration and to set up a connection for streaming multimedia from a source XST01-03 Form3.cs Streams multimedia to clients while also displaying a preview of the video being streamed XST01-04 Form4.cs Displays session statistics XST01-05 stat.cs Class to hold statistics XST01-06 session.cs Class that contains statistics collected during any one session Input specifications • The input for this test case will be a selected VCD that will be played through the VCD player and streamed to clients over the selected connection. • The audio source chosen here is SoundMAX. • The TV tuner input selected here is Video Composite. • Any connection type may be chosen. • The port chosen is 5110. Output specifications The output is a multimedia stream which may be received by any client that accesses the X- Stream TV webpage. Environmental needs The testing will be done using the following hardware configuration for the server computer: • Intel Pentium 4 HT CPU 2.8 GHz • 512 MB of RAM • 80 GB hard disk • PixelView TV Tuner card The client hardware is identical, except it does not have the TV Tuner card. X-Stream TV 25
  37. 37. The operating system used to execute these tests is Microsoft Windows XP Professional Version 2002, Service Pack 2. The web server software being used to allow clients access to the X-Stream TV webpage is Microsoft Internet Information Server. On the client side, the native Windows Media Player will be used to access streams being provided by the server. 5.19.2 XC2. Digital camera Test items The test items to be tested by this test case are, primarily: Table 8: Digital Camera Test Items Program Module Filename Description XST01-02 Form2.cs Configuration screen; allows server operator to set parameters for the server configuration and to set up a connection for streaming multimedia from a source XST01-03 Form3.cs Streams multimedia to clients while also displaying a preview of the video being streamed XST01-04 Form4.cs Displays session statistics XST01-05 stat.cs Class to hold statistics XST01-06 session.cs Class that contains statistics collected during any one session Input specifications • The input for this test case will be a digital camera which will capture video that will be streamed live to clients. • The audio source chosen here is SoundMAX. • The TV tuner input selected here is Video Composite. • Any connection type may be chosen. • The port chosen is 5110. Output specifications The output is a multimedia stream which may be received by any client that accesses the X- Stream TV webpage. Environmental needs The testing will be done using the following hardware configuration for the server computer: • Intel Pentium 4 HT CPU 2.8 GHz • 512 MB of RAM • 80 GB hard disk • PixelView TV Tuner card The client hardware is identical, except it does not have the TV Tuner card. X-Stream TV 26
  38. 38. The operating system used to execute these tests is Microsoft Windows XP Professional Version 2002, Service Pack 2. The web server software being used to allow clients access to the X-Stream TV webpage is Microsoft Internet Information Server. On the client side, the native Windows Media Player will be used to access streams being provided by the server. 5.19.3 XC3. Pre-existing file Test items The test items to be tested by this test case are, primarily: Table 9: Pre-existing File Test Items Program Module Filename Description XST01-02 Form2.cs Configuration screen; allows server operator to set parameters for the server configuration and to set up a connection for streaming multimedia from a source XST01-03 Form3.cs Streams multimedia to clients while also displaying a preview of the video being streamed XST01-04 Form4.cs Displays session statistics XST01-05 stat.cs Class to hold statistics XST01-06 session.cs Class that contains statistics collected during any one session Input specifications • The input for this test case will be a pre-existing file lying on the server. • The audio source chosen here is SoundMAX. • The TV tuner input selected here is Video Composite. • Any connection type may be chosen. • The port chosen is 5110. Output specifications The output is a multimedia stream which may be received by any client that accesses the X- Stream TV webpage. Environmental needs The testing will be done using the following hardware configuration for the server computer: • Intel Pentium 4 HT CPU 2.8 GHz • 512 MB of RAM • 80 GB hard disk • PixelView TV Tuner card The client hardware is identical, except it does not have the TV Tuner card. X-Stream TV 27
  39. 39. The operating system used to execute these tests is Microsoft Windows XP Professional Version 2002, Service Pack 2. The web server software being used to allow clients access to the X-Stream TV webpage is Microsoft Internet Information Server. On the client side, the native Windows Media Player will be used to access streams being provided by the server. X-Stream TV 28
  40. 40. 5.20 Test procedure specifications 5.20.1 XP1. Executing all test cases Purpose This test procedure is defined to explain how a complete system test will be run. Each of the tests designed in the earlier section will be run here. Special requirements Make sure that Microsoft Internet Information Server is installed and correctly configured on the server. Make sure that Windows Media Player is installed on all clients so that they can view the streaming media through their web browsers. Procedure steps 1. Set up: Connect an external source to the TV Tuner card. 2. Start: Select an audio source and the TV Tuner card input, or select a file to stream from. Choose a port to stream to and a connection type. 3. Proceed: Observe statistics during streaming; you can also stop and resume the stream from the server while streaming is ongoing. 4. Measure: Every five seconds, the software records the current bit rate and the expected bit rate. Session statistics are generated for each session between the start and stop. These will be observed, recorded and plotted on graphs. 5. Shut down: Stop the stream by clicking the Stop button and exit the program using the Exit button. 6. Restart: Repeat these steps for each of the test cases XC1, XC2 and XC3 as needed. X-Stream TV 29
  41. 41. 5.21 Test incident reports 5.21.1 XI1. Incident report 1 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box Connection type: Dial-up Modems or Single-channel ISDN (28.8 to 56 Kbps) Expected results Frame rate: 30 fps Bandwidth: 28.8 to 56 Kbps Actual results Number of clients: 1 Frame rate: 28 fps Bandwidth: 20-25 Kbps Number of clients: 2 Client 1 Frame rate: 25 fps Bandwidth: 20-25 Kbps Client 2 Frame rate: 20-25 fps Bandwidth: 20-25 Kbps Anomalies None Attempts to repeat The test was run twice to get an unbiased result. Testers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati Observers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati X-Stream TV 30
  42. 42. 5.21.2 XI2. Incident report 2 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box Connection type: LAN, Cable Modem, or xDSL (100 to 768 Kbps) Expected results Frame rate: 30 fps Bandwidth: 100 to 768 Kbps Actual results Number of clients: 1 Frame rate: 8 fps Bandwidth: 97 Kbps Number of clients: 2 Client 1 Frame rate: 8 fps Bandwidth: 97 Kbps Client 2 Frame rate: 7 fps Bandwidth: 96.5 Kbps Anomalies None Attempts to repeat The test was run twice to get an unbiased result. Testers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati Observers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati 5.21.3 XI3. Incident report 3 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box X-Stream TV 31
  43. 43. Connection type: Dial-up Modems or LAN (28.8 to 100 Kbps) Expected results Frame rate: 30 fps Bandwidth: 28.8 to 100 Kbps Actual results Number of clients: 1 Frame rate: 15 fps Bandwidth: 45-90 Kbps Number of clients: 2 Client 1 Frame rate: 15 fps Bandwidth: 70-90 Kbps Client 2 Frame rate: 14.7 fps Bandwidth: 70-100 Kbps Anomalies None Attempts to repeat The test was run twice to get an unbiased result. Testers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati Observers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati 5.21.4 XI4. Incident report 4 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box Connection type: Dial-up Modems (28.8 Kbps) Expected results Frame rate: 30 fps Bandwidth: 28.8 Kbps X-Stream TV 32
  44. 44. Actual results Number of clients: 1 Frame rate: 28 fps Bandwidth: 54 Kbps Number of clients: 2 Client 1 Frame rate: 28 fps Bandwidth: 56 Kbps Client 2 Frame rate: 24.5 fps Bandwidth: 55 Kbps Anomalies None Attempts to repeat The test was run twice to get an unbiased result. Testers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati Observers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati 5.21.5 XI5. Incident report 5 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box Connection type: Dial-up Modems (56.6 Kbps) Expected results Frame rate: 30 fps Bandwidth: 56.6 Kbps Actual results Number of clients: 1 Frame rate: 25-29 fps Bandwidth: 35-40 Kbps X-Stream TV 33
  45. 45. Number of clients: 2 Client 1 Frame rate: 17 fps Bandwidth: 15-35 Kbps Client 2 Frame rate: 25-29 fps Bandwidth: 32-35 Kbps Anomalies None Attempts to repeat The test was run twice to get an unbiased result. Testers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati Observers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati 5.21.6 XI6. Incident report 6 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box Connection type: Local Area Network (100 kbps) Expected results Frame rate: 30 fps Bandwidth: 100 Kbps Actual results Number of clients: 1 Frame rate: 27-29 fps Bandwidth: 108-110 Kbps Number of clients: 2 Client 1 Frame rate: 28.9 fps Bandwidth: 36-110 Kbps Client 2 X-Stream TV 34
  46. 46. Frame rate: 4-15 fps Bandwidth: 15-55 Kbps Anomalies None Attempts to repeat The test was run twice to get an unbiased result. Testers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati Observers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati 5.21.7 XI7. Incident report 7 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box Connection type: Local Area Network (256 Kbps) Expected results Frame rate: 30 fps Bandwidth: 256Kbps Actual results Number of clients: 1 Frame rate: 24.9 fps Bandwidth: 241-245 Kbps Number of clients: 2 Client 1 Frame rate: 24.9 fps Bandwidth: 228-231 Kbps Client 2 Frame rate: 24.9 fps Bandwidth: 225-240 Kbps Anomalies X-Stream TV 35
  47. 47. None Attempts to repeat The test was run twice to get an unbiased result. Testers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati Observers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati 5.21.8 XI8. Incident report 8 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box Connection type: Local Area Network (384 Kbps) Expected results Frame rate: 30 fps Bandwidth: 384 Kbps Actual results Number of clients: 1 Frame rate: 24.9 fps Bandwidth: 372-374 Kbps Number of clients: 2 Client 1 Frame rate: 24.9 fps Bandwidth: 350-370 Kbps Client 2 Frame rate: 24.9 fps Bandwidth: 350-370 Kbps Anomalies None Attempts to repeat The test was run twice to get an unbiased result. X-Stream TV 36
  48. 48. Testers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati Observers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati 5.21.9 XI9. Incident report 9 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box Connection type: Local Area Network (768 Kbps) Expected results Frame rate: 30 fps Bandwidth: 768 Kbps Actual results Number of clients: 1 Frame rate: 20-23 fps Bandwidth: 460 Kbps Number of clients: 2 Client 1 Frame rate: 24 fps Bandwidth: 440-463 Kbps Client 2 Frame rate: 24.7 fps Bandwidth: 445-465 Kbps Anomalies None Attempts to repeat The test was run twice to get an unbiased result. Testers Atif Shah Nehdia Sameen Usman Dawood X-Stream TV 37
  49. 49. Yasir Baghpati Observers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati 5.21.10 XI10. Incident report 10 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box Save to file checkbox checked Connection type: Dial-up Modems (28.8 Kbps) Expected results Frame rate: 30 fps Bandwidth: 28.8 Kbps Actual results Number of clients: 1 Frame rate: 14-20 fps Bandwidth: 20-23 Kbps Number of clients: 2 Client 1 Frame rate: 29 fps Bandwidth: 54 Kbps Client 2 Frame rate: 28 fps Bandwidth: 20-22Kbps Anomalies None Attempts to repeat The test was run twice to get an unbiased result. Testers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati Observers Atif Shah X-Stream TV 38
  50. 50. Nehdia Sameen Usman Dawood Yasir Baghpati 5.21.11 X11. Incident report 11 Inputs Audio source: select appropriate source from the combo box Video source: select appropriate source from the combo box Save to file checkbox checked Connection type: Local Area Network (768 Kbps) Expected results Frame rate: 30 fps Bandwidth: 768 Kbps Actual results Number of clients: 1 Frame rate: 15-20 fps Bandwidth: 460 Kbps Number of clients: 2 Client 1 Frame rate: 21-23 fps Bandwidth: 460-465 Kbps Client 2 Frame rate: 24.9 fps Bandwidth: 290-400 Kbps Anomalies None Attempts to repeat The test was run twice to get an unbiased result. Testers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati Observers Atif Shah Nehdia Sameen Usman Dawood Yasir Baghpati X-Stream TV 39
  51. 51. 5.22 Test summary report 5.22.1 XS1. Overall summary report Summary After completing the system test, we have concluded that the X-Stream TV streaming server is working properly as far as all major functionality is concerned. The test items were the following: 1. General system features • Live streaming • Recording a file • Performance 2. Modules • Splash screen (Form1.cs) • Server configuration (Form2.cs) • Streaming video with preview (Form3.cs) • Session statistics (Form4.cs) • Statistics class (stats.cs) • Session statistics collection (session.cs) 3. User procedures • Accessing the X-Stream TV webpage • Watching streaming video through Windows Media Player 4. Operator procedures • Selecting an input source • Selecting an output port, connection, and/or file to record to • Start/stop streaming as needed Variances No major changes were made to any test item vis-à-vis the design specifications. Superficial changes were made including more specialized error-checking (as regards exception handling) and interface improvement and design. Comprehensive assessment Each of the modules, system features, user procedures and operator procedures defined earlier were tested thoroughly. X-Stream TV 40

×