University of Calgary PRISM: University of Calgary's Digital Repository

Science Science Research & Publications

2019-04-25 iStream: A Research Platform for Video Streaming

Stelter, Kaylee

Stelter, K. (2019). iStream: A Research Platform for Video Streaming. 1-10. http://hdl.handle.net/1880/110276 bachelor thesis https://creativecommons.org/licenses/by-nc-nd/4.0 Unless otherwise indicated, this material is protected by copyright and has been made available with authorization from the copyright owner. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission. Downloaded from PRISM: https://prism.ucalgary.ca iStream: A Research Platform for Video Streaming

Kaylee Stelter, Mea Wang Department of Computer Science University of Calgary {kaylee.stelter, meawang}@ucalgary.ca

Abstract video quality and compression ratios [28]. The multitude The ever-rising demand and popularity of video stream- of platforms which offer video streaming content also ing technologies combined with the broadening and in- presents considerable variations in network quality (e.g., creasing prevalence of related research has developed a cellular, Wi-Fi, Ethernet, or SDN networks, or any com- significant need for a highly flexible, scalable, and practi- bination thereof). Alongside end-to-end streaming pro- cal platform on which to test new research ideas. iStream, tocols, such as Dynamic Adaptive Streaming over HTTP a video streaming research platform, was carefully de- (DASH), the end-user experience is concluded with video signed to meet the needs of researchers, reduce redundant playback on the client-side. Video players take an ar- development time, and provide immediate visual feed- ray of forms dependent on supported platforms, video file back to aid in research testing. The platform provides a types, and content characteristics. unique solution with its modular design and integration of Existing and ongoing research in this area has been fo- a myriad of essential video streaming components. These cused on individual video-streaming components. Video components include a video server with a curated video encoding has seen development of codec technologies dataset, network emulation capable of generalised, end- such as H.265/HEVC, which was developed to meet the to-end network characterisations, and side-by-side video ever-increasing demands for high-quality online video playback and statistical output via an intuitive user in- streaming and services [4]. Innovations in wireless terface. With its completion, iStream will provide an effi- technologies such as Worldwide Interoperability for Mi- cient, practical, and impactful addition to video streaming crowave Access (WiMAX), Long Term Evolution (LTE), research. and fourth-generation (4G) networks seek to provide sig- nificant improvements to data rates and quality of service Key words: Video streaming, network emulation, network [13]. The end-to-end streaming protocol DASH has seen simulation, research testbed. numerous innovative proposals in areas such as parallel 1 Introduction HTTP [3], variable segment duration [10], and rate adap- tation [12]. Video players such as VLC media player [25] 1.1 Motivation and Youtube HTML5 Video Player [29] undergo regular Video streaming traffic is projected to constitute more updates. than 80% of Internet traffic by 2022 [5]. A typical stream- This divided approach lacks the consistency, flexibil- ing system involves video encoding and storage by con- ity, and reusability that a more inclusive approach offers. tent providers, network quality of service (QoS) provi- Consistency between testing of research ideas provides sioning by Internet Service Providers (ISPs), content de- valuable comparability analyses and increased assurance livery (i.e., end-to-end streaming protocol), and video of improvements between differing tests. The redun- playback on the client-side. Video encoding is a di- dancy of repeated development of specialised research verse process largely dependent on the needs of content platforms between tests, researchers, and organisations providers and end-users, restrictions imposed by ISPs, could be drastically reduced through use of a more en- as well as hardware and network capacities. For video compassing platform offering a broad set of features. streaming content, encoding may be done offline or on- line; furthermore, online encoding (i.e., live encoding) 1.2 Approach provides additional challenges for video-encoding as the To address the identified need for a comprehensive ap- encoder must be powerful and efficient enough to keep proach to video streaming research, iStream - a video up with a constant stream of video data while maintain- streaming research platform which features the afore- ing desirable performance [28]. As well, a variety of mentioned components of a typical streaming system - video codecs exist with varying characteristics related to has been developed. More specifically, iStream consists of a video dataset, a video server, a network emulation mer research project, significant integration coding and module, a DASH-capable video player, and a highly- modification of the module was required for integration configurable front-end. The video dataset was compiled into iStream. Further detailed explanations of the above- to include a diverse set of video characteristics, namely, mentioned system components can be found in Section 3, resolution, bitrate, etc. For the end-to-end streaming pro- Methodology. tocol (i.e., video transfer), the integrated video player is compatible with a wide-array of formats, including the 2 Related Work industry-standard MPEG-DASH. For the video server, a Network simulation and emulation are key components locally-hosted Apache server was used. The network em- of the iStream platform. Thus, the components of our ulation module is able to emulate varying end-to-end net- system rely on the network module for communication work conditions (namely, bandwidth and delay) both over and integration with other modules. The accurate and time and across network types (e.g., cellular, Wi-Fi, Eth- scalable simulation and emulation of varying network ernet, etc.). Finally, for the DASH-capable video player characteristics is integral to the network module and over- and interface, VLC Player was embedded into a Python all system functionality. A general network characteri- GUI application. sation must be achievable; thus, the accurate represen- The modular design of iStream enables researchers to tation of differing network types (i.e., mobile networks, swap implementations of different components. For ex- WiFi networks, etc.) should be possible through alter- ample, the current simple QoS network emulation mod- ation of the imitation network’s parameters. A review ule, coined DummyNet, can be swapped with alternative of previous work related to network simulation and net- implementations to allow for emulation of more complex work emulation will be explored, with a focus on the rele- network topologies (i.e., a custom a Mininet [11] imple- vancy of these works to the iStream platform. In addition, mentation would allow for SDN-technologies and node- there has been some exploration into creating testbeds level network characterisations to be integrated into the or frameworks for adaptive video streaming, and these platform). Additionally, the video player and video server works will also be highlighted. modules are completely interchangeable with custom- 2.1 Network Simulation developed modules or through the integration of existing open-source solutions. The DummyNet network emula- There have been several solutions which attempt to ad- tion module also provides the ability to manage many dress the need for scalable network simulation. Modeling concurrent connections on a single-threaded program, and Tools for Network Simulation by Wehrle et. al [27], thus increasing the scalability of the iStream platform. contains a thorough examination of several well-known The video player module can support a myriad of video network simulators and simulation tools. Among these formats. Thus, different codec families, formats, and are OMNet++[16] and NS-3[15]. OMNeT++ itself is not quality levels are supported. With iStream, researchers a network simulator, but rather, provides a modular and and developers of video streaming systems can quickly extensible C++ library and framework which allows for develop and verify research ideas. The platform can also the development of network simulators with node-level facilitate the analysis of how different components of the network characterisations [27]. Wehrle et. al assert that system influence each other. OMNeT++’s highly generalised design has allowed it to be used in a wide variety of successful applications, many 1.3 Contributions of which are network simulations [27]. They make an iStream, through its modular and extensible design, pro- interesting and relevant note that OMNeT++’s real-time vides a solid foundational platform for video streaming event scheduler can be augmented to allow for captured research. The design and implementation of the plat- packets from real network devices to be inserted into a form’s fundamental infrastructure was the focus of this simulation [27]. The breadth and complexity of the tools, project. This includes the design, development, and test- in addition to the abundance of available extension frame- ing of the video player module, GUI front-end module, works, provided by OMNet++ requires significant famil- and the integration coding providing connection between iarisation; furthermore, usage of these tools would add the video player module and GUI module, GUI mod- notable development time to network module construc- ule and network emulation module, and network emu- tion, as well as introduce unnecessary complexity for our lation module and video player module. The curation of DummyNet. As well, although OMNeT++ has the mod- the video dataset and the installation, configuration, and ifiability to include elements of emulation, its main tools communication to the locally-hosted server was also im- and frameworks were designed for simulations. plemented. As well, although the DummyNet network NS-3 is a network simulation tool used for academic emulation module was previously developed as a sum- research in networking, and provides node-level network characterisation [27]. Wehrle et. al [27] mentions a shift as node-level network characterisations, -defined in networking research towards testbeds and network vir- networking, etc., through future development or integra- tualization because of the realism emulation provides; tion of other network emulation modules. The iStream thus, a design objective for NS-3 has been to provide platform’s focus on adaptive video streaming and simul- options for supporting emulation and virtualization [27]. taneous modular extensibility demonstrates its practical- Regardless, NS-3 remains primarily focused on network ity and usefulness within adaptive video streaming, but simulation, and the hybridisation of simulation and emu- also its broader applicability over existing networking lation is not a pertinent feature for our platform. Both testbed solutions. OMNeT++ and NS-3 provide highly flexible and scal- 2.3 Adaptive Video Streaming Testbeds able network simulation capabilities. Each also provides the means to incorporate network emulation elements, Several research testbeds focused on adaptive video although providing more of a simulation/emulation hy- streaming have been developed with the purpose of in- bridisation than standalone emulation tools. With these creased ease of testing and comparing research hypothe- considerations in mind, network emulation is reinforced ses and algorithms. Research and development by Her- as being critical to our platform in providing the realism nandez et. al [8] in SVCEval-RA: an evaluation frame- for network characterisation and network traffic flows be- work for adaptive scalable video streaming, proposes a tween server and clients that is required. simulation framework for adaptive video streaming us- ing the H.264/SVC video encoding standard. This frame- 2.2 Network Emulation work utilises the NS-2 network simulator to create a real- Work conducted by Wang et. al outlines the design, de- istic simulation environment in which performance eval- velopment, system analysis, and necessity for an emu- uations of network protocols for adaptive video streaming lation framework designed specifically for peer-to-peer can be evaluated [8]. SVCEval-RA features an adaptive (P2P) multimedia streaming systems. Their proposed procedure which adjusts the bit rate of a traffic source, by framework, referred to as Crystal, is touted as providing a adding or removing SVC layers from the video stream, practical and efficient platform on which to test P2P algo- based on estimations of the available bandwidth [8]. They rithms in a realistic and scalable environment [26]. They demonstrated the usefulness of their proposed solution justified the development of their project as a result of the with a simulation study involving the evaluation of rate identified necessity for a framework which would reduce adaptation under a variety of network scenarios (i.e., the complexities of implementing a system for the de- bandwidth variations) [8]. velopment and testing of new protocols, coinciding with Zabrovskiy et. al [30] also propose an adaptive video the multitude of new P2P streaming systems being de- streaming evaluation framework with their work on Ad- veloped [26]. Similarly to the OMNet++ and NS-3 sim- ViSE. Their framework was designed specifically for the ulation tools, the Crystal framework features node-level automated testing of media players for adaptive video network characterisation [26]. The Crystal framework’s streaming over HTTP in web or HTML5 environments design also features an API for researchers to integrate [30]. The proposed AdViSE system consists of a web their own algorithms for testing. As well, the perfor- server hosting video content, a network emulation server mance, scalability, and usability of Crystal were empha- with a customised Mininet [11] environment, a Selenium sised as critical features of the framework. One approach server for running adaptive media players, and a web used to test their framework was the implementation of a management interface for conducting experiments [30]. BitTorrent-like P2P streaming protocol, Vanilla, into their Zabrovskiy et. al [30] state that AdViSE was developed system as a case study for the practicality and usability of with the goal of providing a flexible system which al- the system [26]. lows the rapid integration of new adaptive media players The focus of the Crystal framework on P2P applica- for comparison based on video streaming parameters and tions, as opposed to our platform’s focus on adaptive Quality of Service/Quality of Experience metrics. video streaming, reveals a significant distinction between Similar to the work conducted on AdViSE, Stohr and the two emulation testbeds; furthermore, the differences Frommgen¨ [20] present a large-scale emulation frame- in the characteristics and functionality required between work for the comparison of DASH players and algo- the foci (i.e., media player integration and live playback, rithms. Stohr and Frommgen’s¨ intent was to show the video encoding and storage, etc.) warrants a dedicated re- highly impactful significance of DASH-player choice and search platform. The modular-nature of the iStream plat- configuration on the quality of adaptive video streaming form also allows for interchangeability of components; [20]. A media player execution environment was devel- thus, the platform is able to support generalised network oped to provide a controlled and comparable environment characterisation through our DummyNet module as well for DASH-player evaluation, and was integrated with a monitoring module which captures and analyses various tains a highly configurable, scalable network emulator. targeted metrics (e.g., initial playback delay, total stalling The client module is responsible for requesting and re- duration, average playback bit rate, etc.) [20]. Three ceiving video files, as well as video playback. The inter- established open-source DASH players, with contrasting face module contains a GUI front-end to create a cohesive configurations and adaptation algorithms, were chosen and practical interface for interacting with the platform, for evaluation: DASH.JS, Google’s Shaka Player, and and a communicative back-end which provides integra- AStream [20]. It was highlighted that the choice of the tion between all components of the system. target buffer size alongside DASH player configuration appeared more significant than that of adaptive algorithm 3.1 Provider Module choice [20]. The provider module brings together a curated video The aforementioned testbeds developed by Zabrovskiy dataset and video server. As can be seen in Figure 1, the et. al [30], and Stohr and Frommgen¨ [20] focus on the provider module consists of a locally-hosted Apache Web testing of adaptive video players, which provides use- Server which can be queried to request video files from ful insight into testbed design and development. Her- the local video dataset. The server utilises the default nandez et. al’s [8] SVCEval-RA framework focuses on Apache configuration on Ubuntu 18.04 [23], and handles a simulation, as opposed to emulation, environment. The the transfer of video files from the local dataset and in- iStream platform, in contrast to these existing testbeds, teraction with the client and network modules. The lo- offers a novel implementation through its focus on the cal Apache Web Server and dataset was chosen due to testing and comparison of adaptive algorithms via emu- its simplicity of setup and familiarity, however, alterna- lation; moreover, our distinct platform provides a com- tive simple solutions such as SimpleHTTPServer [18] or plete framework of integrated modules: a video dataset, Nginx [14] were also viable options. The video dataset a video server, a network emulation module (capable of contains a set of videos sourced from openly-available generalised, end-to-end network characterisations), and a public domain sample videos [19], in an array of formats, GUI front-end for driving experiments. resolutions, and video length/size. 3.2 Network Module The network module is comprised of an interchange- able network emulation module, DummyNet, which of- fers generalised, end-to-end, network emulation capabil- ities. This interchangeability provides iStream with de- sired flexibility and modifiability by supporting a highly- configurable network characterisation which provides an extensive range of use cases and applicability for the plat- form.

Figure 1: iStream Overview

3 Methodology An overview of the iStream platform can be seen in Fig- ure 1. The platform was developed for compatibility with Ubuntu 18.04 and is coded in Python 3. Ubuntu and Python 3 were chosen due to their familiarity, widespread usage, available required packages, and performance. The provider module is responsible for the video dataset and Apache video server. Thus, the provider module pro- vides the data which drives the platform. The network Figure 2: DummyNet Overview module integrates the provider and client modules, han- dles communication between server and client, and con- 3.2.1 DummyNet formats and streaming protocols, as well as its compat- DummyNet provides a highly configurable and scalable ibility with both Python and PyQt5. This compatibility proxy which can utilise network trace files or statisti- greatly increased the ease of integration with the GUI, cal distributions for shaping network parameter varia- which was developed using PyQt5, and the remaining tions (i.e., network delay, loss rate, and bandwidth). An modules of the platform, all of which were developed in overview of the module’s design can be seen in Fig- Python. Other available video players include PyPlayer ure 2. The module features usage of a simple asyn- [9] and PyQt’s built-in media player [21]. VLC Player chronous server infrastructure utilising the Twisted event- was chosen over these players because of its aforemen- driven network framework [22], allowing scalability and tioned benefits, alongside its simplicity to integrate into performance on a single-threaded, concurrent program. existing code. The development of this module presented The DummyNet module has been designed and devel- unique challenges, as two side-by-side video player wid- oped to act as a both a standalone module and integrated gets were embedded into an existing window containing part of the iStream platform, providing increased flexibil- various other GUI elements. The synchronised initiali- ity in usage. DummyNet provides a generalised network sation of video playback and distinct network configu- characterisation – one in which the overall network be- rations of each video required careful consideration for haviour (end-to-end) is emulated rather than focusing on integration with the network module. the behaviour of the internal structures and operations of the network (node-level complexity). Usage of the mod- ule requires detailed configuration of various desired net- work characteristics, and operations shape incoming traf- fic to match those desired properties prior to forwarding the traffic to its specified target location. The DummyNet module is able to provide an exten- sive range of emulated network conditions. For exam- ple, networks with restricted bandwidth such as mobile or WiFi, or networks with unstable connections and result- ing high data loss. A notable standalone subcomponent of the DummyNet module is a traffic generator which is able to send constructed traffic over multiple concurrent TCP connections. This subcomponent can be used to aid in testing for connectivity or data transfer issues before real network connectivity is available or supported. Pop- ular existing solutions were considered for direct-use or Figure 3: iStream Front-End - Splash Screen integration into our system, but ultimately lacked appro- priate features (e.g., iPerf3 [6] and SourcesOnOff [24] lacked configurability, D-ITG [1] lacked trace file sup- 3.4 Interface Module port, and Bit-Twist [7] featured overly complex low-level The interface module is a Python desktop application packet construction. with a which provides increased An important note on the integrated DummyNet mod- accessibility to the platform and allows for immediate vi- ule is that it is a customized implementation of a previ- sual feedback on implemented configurations. The GUI ously developed module. Due to the challenging integra- was designed using the Adobe XD design and prototyping tion of the network module with the communications of tool [2], and developed using PyQt5 and its included UI the video player, the DummyNet module is currently able design software, Designer [17]. This module also fea- to emulate bandwidth and delay fluctuations for a net- tures the integration and automation of the other modules work characterisation. Representation of data loss over of the system (i.e., manipulation and routing of the video unstable network connections is planned for future devel- file URL through the video player and network module, opment of the platform. and the creation of network emulators via configuration 3.3 Client Module files in the network module), as well as video playback via the client module’s video player. The client module is comprised of a DASH-capable video player integrated into the GUI of the interface module. 3.4.1 Front-End VLC Player [25] was chosen for its popularity, open- The interface module front-end is presented in Figures 3, source nature, and expansive range of supported video 4, and 5. In Figure 3, the splash screen provides pertinent Figure 4: iStream Front-End - Configuration Screen information including an overview of the platform’s pur- files have not been malformed, and execution of the mod- pose and highlighted features, as well as a link to docu- ule via command-line). The interface back-end will be mentation and source code. Figure 4, the configuration discussed in further detail in Section 3.4.2. screen, is where experiment configurations are named, Once the experiment has been fully configured, it can loaded, and saved. Side-by-side comparison of two ex- be initialised by clicking the Start button. Figure 5, the periments is featured on iStream, thus the experiment running experiment screen, is where live experiments can configuration window is intuitively split in two to reflect be observed once an experiment is initiated. Side-by-side this. Each half can be configured independently, provid- dual video playback is displayed along with the chosen ing the desired ease of comparability of running experi- output metrics below each corresponding video (current ments. There are five configuration tabs, each related to metric choices include Configured Bandwidth, Config- a specific component of the iStream platform: the Video ured Delay, and Configured Loss Rate, as per the Dum- Source and Client tabs contain settings for the client mod- myNet network emulator). Experiments can be paused ule and configuration of the video player, the Network tab and resumed, and there is future implementation plans contains settings for the network module and configura- to allow researchers to save generated output from ex- tion of emulated network characteristics, the Metrics tab periments to a user-specified location. This assemblage contains settings for the configuration of output metrics of a researcher-friendly environment, dual video play- that display during a running experiment, and finally, the back for instant comparability, highly-configurable net- Server tab will contain settings for server configuration work characterisations, and user-defined output metrics settings in future development. distinguishes iStream as a viable and pertinent addition All of the described configuration settings are dis- to video-streaming research. tinctly customisable between experiments, can be saved or loaded for future reuse or reference, can be copied 3.4.2 Back-End from one configuration half to another, as well as be The interface module back-end is comprised of functions cleared completely. The detailed configuration screen which facilitate communication between the components masks a complex underlying back-end which is con- of the system and the GUI. An overview for the back-end structed from user-entered values and provides a much design can be found in Figure 6. As can be seen in the fig- more efficient and intuitive method for setting up experi- ure, the interface module utilises the GUI to retrieve ex- ments (for example, raw configuration of the DummyNet periment configuration details set by the researcher and module outside of iStream requires the editing of several sends this information to the video player and network advanced configuration files, assurance that configuration interfaces. Within these interfaces, the provided configu- Figure 5: iStream Front-End - Running Screen

and retrieving live output metrics from the network mod- ule. This integration between system components is in- tegral to the functionality of the platform, and provides a critical communication relay both between and within modules.

4 Results and Discussion The completion of this project has demonstrated that the iStream platform is able to successfully perform as both a usable and beneficial addition to video streaming re- search. Thoughtful and careful design allowed for pro- Figure 6: iStream Interface Back-End Overview ductive development and a functioning foundational plat- form. A case study was conducted using the platform in order to demonstrate its capabilities and functionality, as ration details are manipulated into forms compatible with well as offer a means of qualitatively analysing its useful- the network and client modules. For the network mod- ness, potential, practicality and performance. ule, this involves the creation of detailed configuration 4.1 Case Study files which are provided at execution to define operating The aim of the case study is to demonstrate the iStream parameters, log file creation, network characterisations, platform’s effectiveness in presenting the effect a network and required traffic routing parameters (i.e., source and with restricted bandwidth has on video playback quality. destination network addresses and ports, transfer proto- cols, etc.). For the client module, this involves the formu- 4.1.1 Configuration lation of a video URL which instructs the video player A brief overview of the configuration used is as fol- to request the designated video file through the network lows. For simplicity, the left-hand configuration will be emulation module’s proxy. Once the video player inter- referred to as Experiment 1, and the right-hand configu- face and network interface have completed their config- ration will be referred to as Experiment 2. The video file urations, the interface module can initialise all required used in both experiments was of a standard resolution of back-end processes in the network and client modules. 1280x720 pixels, was sourced from the local dataset, and This back-end communication is also responsible for was 30 seconds in length. The network configuration of controlling video playback during a running experiment, Experiment 1 was configured to run on a network with a Figure 7: Case Study Preview bandwidth of 100Mbps, while Experiment 2 was config- Bandwidth restriction in a network on represents just ured to run on a network with a bandwidth of 0.5Mbps. one possible factor which affects video playback qual- These bandwidths were chosen in order to emulate an es- ity. Large network fluctuations, network delays, or more sentially unrestricted bandwidth alongside a bandwidth complex configurations involving multiple factors affect that was restricted enough as to have a noticeable effect video playback differently, and are able to be represented between the two video streams. For simplicity, a con- on the iStream platform. stant bandwidth was used for each experiment. Network delays and loss rates were set to 0. The proxy IP address 4.2 Extensions to Research and port were set to localhost and available port numbers. A key feature of the iStream platform is a researcher’s For the metrics configuration, all output metrics were se- ability to efficiently integrate their research ideas as cus- lected for both experiments. The experiment was run sev- tom modules (i.e., video servers with varying transcod- eral times to assure consistency of results. ing options, alternative video players, etc.). The ef- fects of such an integration on video quality could be 4.1.2 Observations easily compared with other configurations (i.e., industry During experiment run time, the difference in the vi- standard practices, previous versions of implemented re- sual quality of the two videos was immediate and dis- search, etc.). Any significant improvements on the qual- tinct. This distinction can be clearly seen in the frames ity of a video could lead to valuable insight and devel- presented in Figure 7. While Experiment 1’s video ran opment. Through the observation of the immediate vi- smoothly, without stuttering, pixelation, or other visual sual feedback provided by iStream, researchers can work anomalies, Experiment 2’s video pauses frequently, and towards implementing or improving codecs, transcoding suffers from various visual anomalies due to the impact algorithms, altering server infrastructure, etc. The plat- of the restricted network. This is the expected outcome form’s ability to accurately and efficiently run experi- of such a configuration. When a network’s bandwidth is ments of varying configurations, as well as provide re- restricted below a certain threshold, the video playback searchers with an extensive range of functionality, will quality decreases. In some cases, this decrease can cause define improvements and enhancements into the future. the video to become unplayable due to constant buffer- The availability of saving and loading existing experi- ing and decoding errors. The impactful visual contrast, ment configurations, the ability to view two running ex- via the side-by-side comparison of video playback in this periments side-by-side, and the modular extensibility of case study, exemplifies the significance and practicality the platform will decrease redundancy in repeated devel- that characterises the iStream platform. opment of software for research testing and demo pur- poses. Through its highly flexible, modifiable, and scal- //www.grid.unina.it/software/ITG/, able design, iStream brings a beneficial and novel solu- 2018. [Online; accessed 03-Oct-2018]. tion to a modular, and extensible research platform. [2] Adobe. Adobe XD. https://www.adobe. 4.3 Further Discussion com/ca/products/xd.html. [Online; ac- Beyond the foundational implementation of this project, cessed 10-Apr-2019]. there are plans to extend the iStream platform to include [3] M. Ansari. Parallel HTTP for Video Streaming in a wider array of features. Alternative network emula- Wireless Networks. PhD thesis, University of Cal- tion modules, such as a customised implementation of gary, December 2016. Mininet, could be integrated to incorporate node-level network characterisations and software-defined network- [4] B. Bing. Next-Generation Video Coding and ing features. There are also plans to fully integrate an Streaming, page xvii. John Wiley Sons, Inc., Hobo- Apache server implementing the DASH-protocol with ken, NJ, 2015. cloud-based video transcoding and an extensive video [5] Cisco. Cisco Visual Networking Index: Fore- database, introduce support for more complex video for- cast and Methodology, 2016-2021. https: mats such as 360-degree or augmented-reality, and de- //www.cisco.com/c/en/us/solutions/ velop more detailed and visualised output metrics. The collateral/service-provider/ implementation of this project has provided a solid foun- visual-networking-index-vni/ dation to build upon to create a video streaming research complete-white-paper-c11-481360. platform which combines the critical components of a pdf, June 2017. [Online; accessed 07-Oct-2018]. streaming setup with an impressive set of interchangeable modules for excellent flexibility and usability. The suc- [6] ESnet. iperf3 - iperf3 3.6 documentation. https: cessful implementation of the iStream platform furthers //software.es.net/iperf/, 2018. [On- its longevity as a useful tool for researchers. line; accessed 03-Oct-2018]. [7] A. Heng. Bit-Twist: Libpcap-based Ether- 5 Conclusion net packet generator. http://bittwist. iStream is a video-streaming research platform necessi- sourceforge.net/, 2012. [Online; accessed tated by the increased popularity and demand for im- 03-Oct-2018]. proved content delivery on a wide array of consumer de- [8] C. Hernandez, W. Eduardo, G. Cebollada, J. Carlos, vices, as well as the need for an efficient means of con- and A. V. Pau. SVCEval-RA: an evaluation frame- ducting tests which can provide immediate visual feed- work for adaptive scalable video streaming. 76(1), back for analysis. The range of topics in video-streaming 2015. research requires that the platform be highly flexible, modifiable, scalable, and configurable to suit the mul- [9] Institute of Integrative Biosciences. PyPlayer. titude of requirements that may need to be met. The http://pyplayer.weebly.com. [Online; iStream platform, successfully implemented through the accessed 10-Apr-2019]. completion of this project, with its modular design, exten- [10] I. Irondi, Q. Wang, and C. Grecos. Optimized adap- sive configurability, and intuitive user interface satisfies tation algorithm for HEVC/H.265 dynamic adaptive these needs of the research community, and will continue streaming over HTTP using variable segment dura- to improve through ongoing development. tion. In Proceedings of SPIE - The International So- ciety for Optical Engineering, volume 9897, 2016. Acknowledgements I would like to express my gratitude to Mea Wang, Ph.D., [11] B. Lantz, N. Handigol, B. Heller, and V. Jeyaku- for supervising my research project, and for providing mar. Introduction to Mininet. https: much appreciated support and guidance. I would also //github.com/mininet/mininet/wiki/ like to thank Master of Computer Software Engineering Introduction-to-Mininet, February 2017. student Sajad Sameti, for his assistance, advice, and en- [Online; accessed 02-Oct-2018]. couragement. [12] C. Liu, I. Bouazizi, M. M. Hannuksela, and M. Gab- bouj. Rate adaptation for dynamic adaptive stream- References ing over http in content distribution network. Sig- [1] A. Botta and A. Dainotti and A. Pescap. D-ITG, nal Processing: Image Communication, 27(4):288– Distributed Internet Traffic Generator. http: 311, 2012. [13] C. Makaya and S. Pierre. Emerging wireless net- Computing Systems (ICDCS 2008), pages 833–840, works: concepts, techniques, and applications, 2008. chapter Preface, 6. CRC Press, Boca Raton, 2012. [27] K. Wehrle, M. Gunes, and J. Gross. Modeling and [14] NGINX. Welcome to NGINX Wiki! https:// Tools for Network Simulation. Springer Berlin Hei- www.nginx.com/resources/wiki/. [On- delberg, 2010. line; accessed 10-Apr-2019]. [28] C. Wootton. A practical guide to video and au- [15] NSNAM.org. What is ns-3. https://www. dio compression from sprockets and rasters to mac- nsnam.org/overview/what-is-ns-3/, roblocks, chapter 15. Focal Press, Burlington, MA, 2018. [Online; accessed 03-Oct-2018]. 2005. [16] OpenSim Ltd. OMNet++ Discrete Event Simula- [29] YouTube. YouTube HTML5 Video Player. tor - Introduction. https://omnetpp.org/ https://www.youtube.com/html5, 2018. intro, 2018. [Online; accessed 02-Oct-2018]. [Online; accessed 07-Oct-2018]. [17] Python Software Foundation. PyQt5. https:// [30] A. Zabrovskiy, E. Kuzmin, E. Petrov, C. Timmerer, pypi.org/project/PyQt5/5.6/. [Online; and C. Mueller. AdViSE: Adaptive Video Stream- accessed 10-Apr-2019]. ing Evaluation Framework for the Automated Test- ing of Media Players. In Proceedings of the 8th [18] Python Software Foundation. Simplehttpserver - ACM on Multimedia Systems Conference, MM- simple http request handler. Sys’17, pages 217–220, New York, NY, USA, 2017. [19] Sample Videos. Sample Video Downloads. ACM. https://sample-videos.com/. [Online; accessed 06-Apr-2019]. [20] D. Stohr and A. Frommgen.¨ Where are the sweet spots?: A systematic approach to reproducible dash player comparisons. In Proceedings of the 2017 ACM on Multimedia Conference, pages 1113–1121. ACM, 2017. [21] The Qt Company. Qt Documentation - Video Overview. https://doc.qt.io/qt-5/ videooverview.html. [Online; accessed 10-Apr-2019]. [22] Twisted Matrix Labs. Twisted. https:// twistedmatrix.com/trac/. [Online; ac- cessed 10-Apr-2019]. [23] Ubuntu Official Documentation. HTTPD - Apache2 Web Server. https://help.ubuntu.com/ lts/serverguide/httpd.html. [Online; accessed 06-Apr-2019]. [24] A. Varet and N. Larrieui. How to generate realistic network traffic? In 2014 IEEE 38th Annual Com- puter Software and Applications Conference, pages 299–304, 2014. [25] VideoLAN Organization. VLC media player. https://www.videolan.org/vlc/ index.html, 2018. [Online; accessed 07- Oct-2018]. [26] M. Wang, H. Shojania, and B. Li. Crystal: An em- ulation framework for practical peer-to-peer mul- timedia streaming systems. In Proceedings of the 28th IEEE International Conference on Distributed