Software Requirements Specification: Open-Source Real-Time Video Player
Software Requirements Specification: Open-Source Real-Time Video Player
for
Version 1 approved
Prepared by Brian Hernandez, Mirasol Davila, Wendy Joya, Ashley Jetty, Israel
Lopez-Diaz, Tim Ellis, Rafael Mendoza, Jeffrey Luu
AT&T
December 6, 2020
/
Table of Contents
Table of Contents....................................................................................................... 02
Revision History......................................................................................................... 04
1. Introduction............................................................................................... 05
1.1. Purpose................................................................................................... 05
1.5. References.............................................................................................. . 06
2. Overall Description...................................................................................... 07
/
3.3. Software Interfaces................................................................................. 11
4. Requirements Specification........................................................................ 12
Appendix A: Glossary................................................................................................. 18
/
Revision History
/
1. Introduction
1.1 Purpose
The Software Requirements Specifications (SRS) document dives into our projects’ software
specifications. Where it will expand the knowledge of whomever reads this document to serve its
purpose to help understand the specifications. We will illustrate the purpose, external interface
requirements and nonfunctional requirements of the project.
The purpose of this document is to specify the requirements of ORVP. Specifically, the
requirements include the video players, the software used to create the players, libraries and metrics
implemented. We will specify the functionalities throughout this document.
• Objective:
• Maintain maintenance of how the video player keeps performing everytime runned
/
• Simulate a real-time network throttling
REPOS Repositories
1.5 References
● ExoPlayer: https://github.com/rc728m/ExoPlayer.git
● Exoplayer Demo: https://exoplayer.dev/demo-application.html
● Shaka: https://github.com/rc728m/shaka-player.git
● HLS.js: https://github.com/rc728m/hls.js
● HLS Demo: https://hls-js-dev.netlify.app/demo
● Video.js: https://github.com/rc728m/video.js.git
● Clappr Stats: https://github.com/clappr/clappr-stats
● Mux.js: https://github.com/videojs/mux.js#readme
● Chart.js: chartjs.org
● MyExcel: https://github.com/jsegarra1971/MyExcel
/
2. Overall Description
2.1 System Analysis
This software system runs independently of any other software system. To collect data using this
system we store it locally on the owner's computer. It's done by placing it in an csv file, plus some of the
other data is seen on the display window. The goal for this project is to implement a video player that
can have accessible functionality to all our users.
Technical hurdles:
1. At load-time, we should have a database that will hold all the data collected from each user with
security measures to keep the data private.
2. Using our webpage, we will have a reference of what kind of speed it’s supporting and best
when loading videos.
● User input
● Selection of video to run in the video player are pre-defined in the software
● Configurations
● KPI metrics implemented to ensure accuracy and best capabilities such as:
○ VST
○ Rebuffering Ratio
○ Video Quality
● Real-Time network throttling
● Spreadsheet collection done locally
/
The functions combined together help illustrate the relationships needed for the whole software. Our
goal for this software is to provide a high quality video player with minimal rebuffering time plus full
advantage of the functionalities.
● Developers:
● Users:
○ Users within the company, AT&T, etc.
○ General Public
Our primary demographics will be developers because this software is intended to be used as a testing
environment. Where videos are runned to see how fast they perform with fulfillment of the
functionalities implemented in the software.
/
● HLS Videos
○ Video players are HLS and DASH supported
■ HLS.js player is only HLS video supported
● Security Considerations
○ Data collected should only be used for testing purposes
● Broadband
○ WIFI Speed
○ IP Address
The main concern would be broadband because without internet connection the webpage wouldn't be
able to display the html file. It’s speed would affect the buffering ratio and video quality as well.
● VMAF
● Database to store all users data collected
○ Database such as a Server
/
3. External Interface Requirements
3.1 User Interfaces
Application will start up on a Google Chrome or Safari browser. Then they will see the General Overview
of the ORVP. With the location of the metrics and KPI’s on the right side of the screen. At the top, the
name of the Video player can be observed and if you look underneath the name there’s a toggle box
where you can find the different videos already pre-defined. The center of the screen is where the video
chosen will be displayed. At the bottom, data concerning bitrate shown in a real time linear graph where
it’s modifying as the video plays and network profiles. If an error occurs then an error message will
display.
Hardware Required:
10
/
○ For playing HD
11
/
4. Requirements Specification
4.1 Functional Requirements
Guidelines for functionality:
1. The software shall take a pre-set amount of videos to be chosen by the user.
2. The software shall perform analysis by recording its data.
3. The software may have an alternate button for alternating between HLS.js or Shaka
video player.
4. The software may be able to play both HLS and DASH videos even if they aren’t
supported by the player.
5. The software shall display the different KPI metrics while running the web page.
6. The software shall display the buffering graphs when video is playing.
7. The software should handle errors by returning invalid data.
8. The software should be able to maintain the video that was previously loaded even if
the web browser was reloaded.
● Network Profiles
● WIFI
Output Requirements:
● CSV files
● Data: such as the KPI metrics
The purpose of the inputs required is so that the software has some data to use and look for
while running. For the output requirements the data was written into CSV files and the data collected is
also put into the CSV file.
12
/
4.4 Design Constraints
The software has some constraints concerning the type of videos being imported on to
the video players. This has to do with the fact that not both players can support both HLS and
DASH videos. The design for this software was with the help of the AT&T team granting us
access to their repos and IP addresses. Other design constraints consist of data caps and data
constraints. This is because internet speed always varies from user to user. Internet traffic might
be heavy for one and the other could have less traffic which also depends on time zones and
locations. Lastly, security takes a big part in our design because data could be used apart from
just being for testing purposes.
13
/
5. Other Nonfunctional Requirements
5.1 Performance Requirements
● Web application requires you to run on Safari or Chrome.
● Web application requires the web browser to support HTML 5.
● To have access to all the functions in our web application, it is required to run on a desktop or
laptop.
14
/
5.5 Business Rules
The functionalities added on top of the open-source real-time video players are reserved under the
rights of AT&T.
15
/
6. Legal and Ethical Considerations
This section covers ethical and legal considerations that must be considered while developing,
testing, delivering, and publishing the Open-Source Real-Time Video Player (ORVP). Every one of our
team members must keep in mind the ACM code of ethics when working on and with the ORVP project,
however we have highlighted the most crucial sections for the ORVP. The topics covered will be touched
are the following: Data Collection Policies, Streaming Copyrighted Content, Security and Reliability.
ORVP collects data to operate effectively and provide the Host (As of 12/11/2020, AT&T) with
information that will be analyzed to help improve their streaming services and platforms. You provide
some of this data directly, such as when the user asks for access to the ORVP application, your IP Address
is used to grant you access for video playback. We obtain USER-AGENT information which includes
information about a user’s browser and the device requesting the ORVP application. Finally, Information
is being recorded when a user interacts with this application: such data will be given to the Host and is
crucial for the ORVP application, which goal is to provide Clients with improved services. We are aware
that mishandling data can result in unwanted information being published online, therefore whoever
hosts this application must disclose how they handle the data and provide its user the confidence to use
the application. The Host shall be responsible for any data collected, and compliant with any, county, city,
state, or country laws. Standalone, the ORVP application does not collect Names, Gender, Age, Social
Security Numbers, Addresses, ISP data, or any data that can be linked to a specific person.
When streaming or distributing any type of content we must take into consideration the laws
and protections that copyrighted content has. Motion content does not need to include a copyright
notice or be registered with the U.S. Copyright Office to receive copyright protection. Our application
standalone does not contain any Videos, but however it links to content provided by the Host of the
applications. As soon as a Host adds a link to any digital medium, they are responsible for complying with
the copyright protection laws. ORVP is not responsible for how a Host may or may not abuse such laws.
A host must comply with the laws set by the U.S. Copyright Office, and any future laws regarding the
distribution of video content over the World wide web. If a host does not take Copyright protection
laws, they are in direct violation of the law and can be fined by the Federal Bureau of Investigation if
accused and found guilty of white-collar crimes. All material used must have licensed approval of usage
as required by law.
Security is a big influencer when developing any web application. Although the project was built
on open source code and tested by third party groups and organizations, we must consider cyber
security and take preventative measures for cyber-attacks. All source code should be revised before
deployment, by the developers and the deployment teams. It is our responsibility that the application
must do what it is documented to do and nothing more. Any type of malicious cyber-attack must be
considered and prevented to our best ability. When working with open source material it is much harder
to find responsible parties if errors arise but nonetheless it is crucial to deploy well tested and secure
applications.
16
/
Finally, Reliability is kept in mind, we will not promise anything that can’t be accomplished or
done with the help of this application. The ORVP is intended to help build and strengthen streaming
services by providing real-time metrics and data based on simulated network conditions, created by
modifying HLS.js and Shaka Player, open source video players. The team is aware and is responsible for
providing data results, reports and explanations. In the case that our current host, AT&T, implements this
project to their applications or publishes this project as Open Source, the hosts are responsible for
analyzing the data and running their own set of tests to assure reliability and accuracy. We will provide
some metrics, and data accuracies, but they are to be analyzed and recalculated if needed.
17
/
Appendix A: Glossary
Reference Section 1.4
18