The Problem Statement
To ensure end-to-end security in the online proctoring system, the client wanted to develop a scalable media streaming solution. This solution would establish & maintain the entire audio/video session during an online test. As part of the important strategy to integrate media server capabilities in its digital proctoring application, the client chose KritiKal Solutions as its dedicated technology partner.
KritiKal’s media server system works in conjunction with other pre-existing components of the digital proctoring system i.e. Test Engine, Test Clients, and Proctor Clients.
The media server system was designed using the following components:
HA storage server: This is a cloud-based storage server used to store and retrieve media files created during media sessions. The server resides on a private network of the Cloud Service Provider and are accessible to Media Server. We used AWS API to send and receive files from this server and ensure high availability.
HA Database Server: It is again a cloud-based server used to store session and system related information. It resides on a private network of the Cloud Service Provider and are accessible to Media Server. Herein, SQL connections are used to send and receive data from this server.
Array of Media Streaming Services: These servers directly receive and transmit media over RTP streaming channels from the end clients. We used H.264 for the transmission of audio/video content. Also, these servers access the storage and database servers for storage and retrieval of media and associated data and recording of media channel events and logs.
Our team implemented video processing algorithms and exposed Web Services based API to interact with the Media Server. Media Streaming server uses the following parameters to process the video streams: H.264 codec for coding and decoding of Video Streams; MP4 format to save the media files; vlc commands to facilitate the media streams; FFmpeg for saving the stream segments. KritiKal used NGINX web server to run & control all processes (through modules and python scripts) over the media streaming server.
Media Server: This is the important part of the Media Server System which provides Web Service based interface to the Test Engine to invoke all functionality through RESTful API over nodeJS. It provides Load Balancing, Health Monitoring and Allocation of Media Streaming Servers for Upload and Download stream sessions. The media server builds the interaction with Media Streaming Server using RESTful API over nodeJS. We built an interface to configure the various parameters of the Media Server System like IP Addresses of the Media Streaming Servers, IP Address of the Storage Server, IP Address of the Database Server.
RESTful API: The Media Server provides RESTful API to access functionality provided by Media Services module. Herein, each web request invoking API is independent of each other and acts upon separately; each web-request initiate one or more workflows in Media Services; each web-request respond individually with a response code after conclusion of work-flow. e.g. create media stream involves setting up streaming resources to receive stream from an external source.
Our dynamic team of developers worked hard to exceed the client expectations by equipping the application with Reverse proxy and Load balancer tools which address the malicious attacks e.g. Distributed Denial of Service (DDoS). Also, the RSA Key based authentication and AWS firewall were used to enable stringent network security.
• Establishing audio/video connection between Test Client and Media Server
• Establishing audio/video session between Proctoring Client and Media Server
• Recording the audio/video stream for test session on the predefined location
• Video analytics and auto alarm generation if a person or test taker goes out of the frame
• Video surveillance feed of managed proctored tests to Examiners
• Storing media streams for on-demand playback & inserting bookmarks in streams for Alert/Warning events and enabling proctors to take a snapshot out of the streams in case of any skeptical activity.
By developing a scalable media server solution, KritiKal Solutions helped the client in improving the overall performance & functionality of its digital proctoring system. This, in turn, would significantly eliminate the risks of security breaches and other interruptions caused due to such security concerns. Having provided a secure mechanism for the access and subscription of media services, the client noted a significant improvement in the sale of its digital proctoring systems.