In this set up a content management application allows a user to post youtube links and add appropriate descriptions and taglines for the same. On successful submission, this request sits in the approval bucket of the administration application. Internally the youtube link is converted and modified in a way that is playable by HTML youtube player. On successful approval, the video is now playable in the client application.
The client application is a mobile/web application that has a youtube player embedded in an iframe with the iframe source set to the video link that was approved. We use youtube google API to control events related to the player.
As part of this setup, a user launches a video recording application like an OBS studio and starts recording a stream. These streams are capture by our Nginx streaming server and stored in chunks. The protocol being used is RTMP (real-time messaging protocol). On the client-side, there exists a mobile/web application with an HLS player carved out of hls.js. The source of the player is set to the Nginx server store and the chunks are streamed on their arrival. The chunks are converted on the fly to .m3u8 format supported by his player using the FFmpeg module.
These streams can later be made available as VOD too. Depending upon the quality of video recorded we can create streams of different quality and the client has the ability to set it to the quality supported by his bandwidth or an auto option that automatically adjusts to the bandwidth.
As part of this setup, a user launches a video recording application like an OBS studio and starts recording a stream. These streams are capture by our Nginx streaming server and stored in chunks. The protocol being used is RTMP (real-time messaging protocol). On the client-side, there exists a mobile/web application with an HLS player carved out of hls.js. The source of the player is set to the Nginx server store and the chunks are streamed on their arrival. The chunks are converted on the fly to .m3u8 format supported by his player using the FFmpeg module.
These streams can later be made available as VOD too. Depending upon the quality of video recorded we can create streams of different quality and the client has the ability to set it to the quality supported by his bandwidth or an auto option that automatically adjusts to the bandwidth.
In this setup, we have a load balancer(Nginx) and a varnish cache residing in between the client-side application and the streaming server. All the website content and streams are cached inside the varnish cache. Their exists a VCL configuration file where we define the source location of the content, the time interval for which the content needs to be cached and the type of content we need to cache. In our client-side application, the source of the streams and other static content like images is set to the cache rather than the streaming server.
This saves a lot of time, improves the efficiency of our application and makes it more robust. The load balancer has a set of rules written which are evaluated on the arrival of requests and redirected to the appropriate cache servers.
+91 80-42131123
info@palcnetworks.com
Envision Technology Centre,
#119, First floor, Envision Technology Centre, Phase-I, Vijayanagar, Whitefield, Bengaluru