MULTI-VIDEOCONFERENCING BASED on Webrtc TECHNOLOGIES
Total Page:16
File Type:pdf, Size:1020Kb
MULTI-VIDEOCONFERENCING BASED ON WebRTC TECHNOLOGIES Yago Alonso García Master’s Thesis presented to the Telecommunications Engineering School Master’s Degree in Telecommunications Engineering Supervisors Jorge García Duque 2016 Multi-videoconferencing based on WebRTC technologies Master’s Thesis presented in June, 8th 2016 to the Telecommunicatons Engineering School Master’s Degree in Telecommunications Engineering Mr. Yago Alonso García Accepted by thesis committee: Prof. Manuel Fernández Veiga, President Prof. Jorge García Duque, Thesis director Prof. Ma Edita de Lorenzo Rodríguez, Committee member Prof. Rebeca P. Díaz Redondo, Committee member You cannot put a limit on anything. The more you dream, the farther you get. — Michael Phelps To my family and friends for their support throughout this period that ends up with this work. Acknowledgements This master thesis was supervised by Dr. Jorge García Duque, professor at Universidade de Vigo. I really want to thank him for his time in the supervision and direction of this project. I also want to express my gratitude to Alberto Doval Iglesias, CTO in Councilbox, and Agustín Tourón Gil, CEO of the StreamingGalicia start-up company, for providing me technical support and directing me to perform this work. Finally, I would like to thank, as well, all workmates I had in SreamingGalicia who have made me feel as part of the group since the very beginning and for supporting me throughout this project. Thank you all. Vigo, May 2016 i Abstract Videoconferencing allows bidirectional communication of both audio and video, rendering possible group meetings with people from distant places. It also has many advantages, including its ability to reduce time and costs, which makes videoconferencing one of the fastest growing segments in the area of telecommunications. This project presents a videoconference application developed as a web application based on WebRTC technologies. The application has a One-to-Many architecture in which the users play different roles, one of them acting as the presenter and the others as the viewers. The application allows both the viewers to participate momentarily in videoconferencing and video recording, among other features. The application developed herein could be used, for example, in enterprise environments (shareholders meetings) or tele-teaching. In the current market, there are some solutions built with WebRTC but none meet the desired characteristics. The solution achieved herein is a scalable One-to-Many system which supports an undefined number of users who can act either actively or passively, as well as recording. The application also offers the possibility that one user acts as a moderator – in almost every solution all the participants display the same features. These are the main advantages compared to the existent solutions. All of this might be accomplished without registration and through a browser. Keywords: audio, Java, JavaScript, Kurento Media Server, media, One-to-Many, partic- ipant, presenter, room, streaming, video, videoconferencing, viewer, Web Application, WebRTC, Wowza Streaming Engine. iii Contents Acknowledgementsi Abstract iii List of figures vii List of tables ix 1 Introduction1 2 Objectives3 3 State of the art7 4 Development 13 4.1 Architecture................................... 13 4.1.1 Server.................................. 14 4.1.1.1 Server Module........................ 14 4.1.1.2 SDK Module......................... 16 4.1.2 Client.................................. 17 4.2 Wowza Streaming Engine integration..................... 18 4.3 Operation.................................... 22 4.3.1 Room management........................... 22 4.3.2 Client operation............................ 24 4.3.3 Overall working............................. 25 5 Results 27 6 Application testing 31 6.1 Functional testing................................ 31 6.2 Load testing................................... 35 6.2.1 WSE load testing............................ 36 6.2.2 KMS load testing............................ 39 7 Conclusions 45 v Contents 8 Outlook 47 A Kurento Media Server 49 B Wowza Streaming Engine 53 C Wowza configuration 55 D Server and client application code sample 61 E Dispositive/Browser study 67 Bibliography 77 vi List of Figures 2.1 Videoconference users topology.........................4 3.1 Features of KMS against the WebRTC common servers........... 10 3.2 Mesh topology.................................. 11 4.1 General architecture of the application..................... 13 4.2 Server-side architecture of the application................... 14 4.3 Client-side architecture of the application................... 17 4.4 Wowza integration flow............................. 20 4.5 Notification Room Manager........................... 23 4.6 Client domain request flow........................... 23 5.1 Login screen................................... 27 5.2 Simple videoconferencing example....................... 28 5.3 Presenter screen................................. 28 5.4 Participant screen example........................... 29 5.5 Videoconferencing example. A viewer having the floor............ 29 5.6 Players website.................................. 30 6.1 Example of the test elements.......................... 32 6.2 Two users accessing the room test....................... 33 6.3 Turn mechanism test.............................. 34 6.4 Turn mechanism test with two concurrent floor requests........... 35 6.5 WSE load testing of 100 users (5 minutes).................. 38 6.6 KMS load testing structure........................... 39 6.7 Subjective and objective measurements of the simulations through a browser. 40 6.8 Fragment of the webrtc-internals dumping................... 41 6.9 testRTC analyzing tool............................. 41 A.1 WebRTC with Kurento Media Server..................... 50 A.2 High level architecture of Kurento....................... 51 B.1 Wowza Streaming Engine architecture..................... 53 C.1 Live application configuration.......................... 55 vii List of Figures C.2 Transcoders’s configuration........................... 56 C.3 Example of the 360p transcoder configuration................. 57 C.4 nDVR configuration............................... 58 C.5 Configuration of the VOD application..................... 60 E.1 Ranking of dispositives............................. 68 E.2 Ranking of desktop OS............................. 69 E.3 Ranking of desktop browsers.......................... 69 E.4 Ranking of mobile OS.............................. 70 E.5 Ranking of mobile browsers........................... 70 viii List of Tables 6.1 Recording test................................. 37 6.2 WSE load testing................................ 37 6.3 KMS load testing scenarios........................... 42 E.1 Windows browsers compatibility....................... 71 E.2 MAC browsers compatibility.......................... 71 E.3 Linux (Ubuntu) browsers compatibility.................... 72 E.4 Android browsers compatibility........................ 72 E.5 iOS browsers compatibility.......................... 73 ix 1 Introduction Videoconferencing consists in the simultaneous bidirectional audio and video communica- tion, which allows holding meetings between groups of people located in distant places. Additionally, it may offer telematic facilities or other ones, such as graphic and image exchanging, or file transferring. The core technology used in a videoconferencing system is the digital compression of audio and video streams in real time. Its implementation provides therefore important benefits, such as collaborative work between geographically distant people and better integration among some working groups. In enterprise environments, videoconferencing solutions provide to the organizations the tools they need to reduce distances, time and costs; promote and increase the productivity of working teams; strengthen participation and relationship between people; improve information and communication systems of the company; and accelerate the decision-making process and problem solving. Videoconferencing is generally developed on the Internet, so it is important to mention that it faces sometimes technical issues, such as poor quality images or poor sound. These drawbacks are usually linked with slow connections, which hinders the optimal data transmission. Despite of this fact, and in the absence of those limitations, it is possible to set up high quality videoconferencing with audio, video and file transferring and a reachable cost for most of the users. All those advantages mentioned above make videoconferencing one of the fastest growing segments in the area of telecommunications. Among the possible technological solutions for web conferencing stands out the WebRTC technology [1]. This solution aims to provide web browsers with capabilities to manage real-time communications natively, so that they do not require the installation of any additional component or plugin. 1 Chapter 1. Introduction WebRTC is a project promoted by Google and the Mozilla Foundation, among others, which has native support on popular browsers, such as Chrome, Firefox and Opera. This guarantees competitiveness in order to establish itself as the standard technology for managing such communications. In addition, this Application Programming Interface (API) is an open framework for the web. It is able to manage both instant messaging text and audio and video communications. It is designed to be capable of operating in complex network environments,