ebook img

Multi User live video streaming of events via mobile applications PDF

128 Pages·2014·2.98 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Multi User live video streaming of events via mobile applications

Multi User live video streaming of events via mobile applications Jonathan Hussey Submitted in partial fulfilment of the requirements of Edinburgh Napier University for the Degree of MEng in Software Engineering School of Computing April 2014 Abstract Social media platforms have acted as a catalyst for users to share their life experiences by means of video, images and text. Live video streams are becoming more and more common place causing an explosion in content generators and viewing patterns are equally changing. The aim of this dissertation is to build a proof of concept which allows users to broadcast and view live video streams over the internet from an event and for the broadcasts to be consolidated in real time in a central location. This is accomplished by creating a mobile application (Android application, Libstreaming library), a streaming server composed of several technologies (VMWare, Ubuntu, FFMPEG, Node.js, Socket IO, Nginx and the Nginx RTMP module) and a web application using JW Player and jQuery. A component based and iterative approach is used to develop the project which is then evaluated using integration testing, usability testing and software quality metrics. The objectives of the project against the outcomes are appraised and recommendations are provided for future work. Honours Project - SOC10101 10010000 Contents Acknowledgements .................................................................................................. 7 Authorship Declaration ............................................................................................ 8 Data Protection Declaration .................................................................................... 9 1. Introduction ...................................................................................................... 10 1.1. Project Overview ......................................................................................... 10 1.2. Aims & Objectives ....................................................................................... 10 1.3. Report Structure .......................................................................................... 11 2. Literature & Technology Review .................................................................... 14 2.1. Introduction ................................................................................................. 14 2.2. Existing Applications ................................................................................... 15 2.2.1. Skype.................................................................................................... 16 2.2.2. Google Hangouts .................................................................................. 16 2.2.3. Apple Facetime ..................................................................................... 17 2.2.4. Ustream.tv ............................................................................................ 17 2.2.5. Twitch.tv ............................................................................................... 18 2.2.6. Established and emerging sharing applications .................................... 18 2.2.7. Conclusion ............................................................................................ 19 2.3. Video Streaming .......................................................................................... 20 2.3.1. Introduction ........................................................................................... 20 2.3.2. Video and Audio Coding ....................................................................... 20 2.3.3. Compression ........................................................................................ 21 2.3.4. Network Protocols ................................................................................ 22 2.3.5. Conclusion ............................................................................................ 22 2.4. Cellular Networks ........................................................................................ 23 2.4.1. Introduction ........................................................................................... 23 2.4.2. Evolution of cellular technologies ......................................................... 23 2.4.3. Conclusion ............................................................................................ 26 2.5. The Rapid Evolution of Mobile Technologies .............................................. 26 2.6. Ethics & Legal Issues .................................................................................. 28 2.7. Conclusion .................................................................................................. 30 3. Requirements Engineering ............................................................................. 31 3.1. Introduction ................................................................................................. 31 3 Honours Project - SOC10101 10010000 3.2. Architecture ................................................................................................. 31 3.2.1. Mobile Development ............................................................................. 32 3.2.2. Streaming Server .................................................................................. 34 3.2.3. Web Application .................................................................................... 35 3.2.4. Real Time Monitoring............................................................................ 36 4. System Modelling ............................................................................................ 37 4.1. Mobile Application ....................................................................................... 37 4.1.1. The Android OS Architectural Overview ............................................... 38 4.1.2. The Android API ................................................................................... 40 4.1.3. Developer libraries ................................................................................ 42 4.2. The Streaming Server ................................................................................. 43 4.2.1. Streaming media server........................................................................ 44 4.2.2. FFMPEG ............................................................................................... 45 4.2.3. Socket IO .............................................................................................. 47 4.2.4. NodeJS ................................................................................................. 47 4.3. Web Application .......................................................................................... 48 5. System Design ................................................................................................. 51 6. Implementation ................................................................................................ 56 6.1. The first iteration ......................................................................................... 57 6.2. The second iteration .................................................................................... 64 6.3. The third iteration ........................................................................................ 65 6.4. The fourth iteration ...................................................................................... 69 6.5. Final Iteration .............................................................................................. 75 6.6. Results ........................................................................................................ 77 7. Product Evaluation .......................................................................................... 80 7.1. Integration testing ........................................................................................ 80 7.1.1. Testing approach .................................................................................. 81 7.2. Usability Testing .......................................................................................... 82 7.2.1. Preparation ........................................................................................... 82 7.2.2. Testing Session .................................................................................... 83 7.2.3. Findings ................................................................................................ 84 7.2.4. Feedback and Questions ...................................................................... 84 7.3. Software Quality Metrics ............................................................................. 86 4 Honours Project - SOC10101 10010000 7.4. Conclusion .................................................................................................. 88 8. Process Evaluation .......................................................................................... 89 8.1. Key processes and tools ............................................................................. 89 8.2. Project Management ................................................................................... 91 8.3. Reflection .................................................................................................... 91 9. Conclusion ....................................................................................................... 93 9.1. Introduction ................................................................................................. 93 9.2. Achievement of objectives .......................................................................... 93 9.2.1. Objective 1 ............................................................................................ 93 9.2.2. Objective 2 ............................................................................................ 93 9.2.3. Objective 3 ............................................................................................ 94 9.2.4. Objective 4 ............................................................................................ 94 9.2.5. Objective 5 ............................................................................................ 94 9.2.6. Objective 6 ............................................................................................ 95 9.2.7. Objective 7 ............................................................................................ 95 9.2.8. Comparison of application to the work of others ................................... 96 9.3. Further Work ............................................................................................... 97 References .............................................................................................................. 99 Appendix 1 – IPO .................................................................................................. 102 Appendix 2 – Report on the Interim Review Meeting ........................................ 106 Appendix 3 – Project Diary .................................................................................. 108 Appendix 4 – Report on the IPO.......................................................................... 112 Appendix 5 – Network Protocols ........................................................................ 114 Appendix 6 – Development Tools ....................................................................... 115 Appendix 7 – Node.js Server application ........................................................... 117 Appendix 8 – Mobile Application ........................................................................ 119 Appendix 9 – Web Application ............................................................................ 124 Appendix 10 – Testing session log ..................................................................... 127 Appendix 11 – Project Management ................................................................... 128 5 Honours Project - SOC10101 10010000 List of Figures Figure 1 - Transport protocol network hierarchy ....................................................... 22 Figure 2 - Progression of Cellular Technologies ...................................................... 25 Figure 3 - Hardware components of popular mobile devices ................................... 27 Figure 4 - Smartphone Sales 2007-2013 ................................................................. 28 Figure 5 - Proposed System Composition ................................................................ 32 Figure 6 - Distribution of Android devices ................................................................. 38 Figure 7 - Android System Structure ........................................................................ 39 Figure 8 - The Activity lifecycle ................................................................................. 41 Figure 9 - Use Cases for Viewers and Streamers .................................................... 52 Figure 10 – Web Application - Events page ............................................................. 52 Figure 11 – Mobile Application - User Interface - log in | stream | event .................. 53 Figure 12 - Mobile Application – User interface class diagram ................................. 54 Figure 13 - Activity Diagram of the Streaming Process ............................................ 55 Figure 14 - Bitbucket - project management through version control ....................... 56 Figure 15 - Testing Management ............................................................................. 58 Figure 16 - Command to launch an Android virtual device ....................................... 59 Figure 17 - Mobile application on an emulated Android device ................................ 60 Figure 18 - JW Player live stream configuration ....................................................... 66 Figure 19 - Nginx RTMP configuration ..................................................................... 67 Figure 20 - FFMPEG command ............................................................................... 67 Figure 21 - SDP configuration for live streams ......................................................... 70 Figure 22 - Send SDP configuration to server on socket 8089 ................................. 70 Figure 23 - FFMPEG method for streaming ............................................................. 73 Figure 24 - Random port selection ........................................................................... 77 Figure 25 - System results step 1 ............................................................................. 77 Figure 26 - Retrieval of a live stream........................................................................ 78 Figure 27 - Live stream displayed on multiple browsers ........................................... 78 Figure 28 - Successfully added second live stream ................................................. 79 Figure 29 - Testing process on development tasks .................................................. 81 Figure 30 - Quality metrics ....................................................................................... 86 Figure 31 - ServerToMobile_alt.js quality metrics .................................................... 87 Figure 32 - ServerToMobile.js metrics report ........................................................... 87 Figure 33 - Git development timeline........................................................................ 89 List of Tables Table 1 - Transfer rates of cellular technologies ...................................................... 26 6 Honours Project - SOC10101 10010000 Acknowledgements I would like to thank Rob Kemmer for his support and guidance throughout the entire project whose advice and enthusiasm assisted the direction and outcome of the project. I would also like to thank the team at Winterwell Associates who agreed to test the application and engage in a feedback session for a usability testing session. I would like to thank Kameshia Hussey and Roscoe McInerney for providing Android devices to develop and test the system. 7 Honours Project - SOC10101 10010000 Authorship Declaration I, Jonathan Hussey, confirm that this dissertation and the work presented in it are my own achievement. Where I have consulted the published work of others this is always clearly attributed; Where I have quoted from the work of others the source is always given. With the exception of such quotations this dissertation is entirely my own work; I have acknowledged all main sources of help; If my research follows on from previous work or is part of a larger collaborative research project I have made clear exactly what was done by others and what I have contributed myself; I have read and understand the penalties associated with Academic Misconduct. I also confirm that I have obtained informed consent from all people I have involved in the work in this dissertation following the School's ethical guidelines Signed: Date: 25 April 2014 Matriculation no: 10010000 8 Honours Project - SOC10101 10010000 Data Protection Declaration Under the 1998 Data Protection Act, The University cannot disclose your grade to an unauthorised person. However, other students benefit from studying dissertations that have their grades attached. Please sign your name below one of the options below to state your preference. The University may make this dissertation, with indicative grade, available to others. The University may make this dissertation available to others, but the grade may not be disclosed. The University may not make this dissertation available to others. 9 Honours Project - SOC10101 10010000 1. Introduction 1.1. Project Overview Social media platforms have acted as a catalyst for users to share their life experiences by means of video, images and text. In addition IT infrastructures have improved tremendously with the advent of the internet, the explosive rise in smartphone users and the movement from 3G to 4G telecommunications. Different formats of social sharing exist across a wide spectrum of services such as Facebook, Twitter, Google+ and Instagram with each attempting to deliver a unique type of sharing experience to their users. This is further supplemented by the availability of smartphones to users across all demographics with a majority of smartphones providing access to a camera, the internet and sharing applications. The focus of this project will be on video sharing services and how a combination of cutting edge technologies can be used to create an even richer experience through the live sharing of video streams. 1.2. Aims & Objectives The aim of this project is to build a system which allows users to broadcast and view live video streams over the internet from an event. This will involve creating a mobile application that will allow users to record video and broadcast a feed, a streaming server which is able to capture the stream and broadcast the stream automatically and a web application that dynamically updates when receiving new streams. This type of automatic sharing of live video streams is the novelty of the system and will be accomplished by: 1. Investigating, researching and analysing existing social sharing applications with a focus on live streaming and video sharing services. 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.