Noixion TV is not just a web page nor a “traditional” multimedia platform. It is a sophisticated distributed system whose key features are high performance and scalability, these qualities derive from the underlying master-slave architecture. Our intention is to reach millions of users someday, and that’s why achieving extremely high scalability in the first version of the architecture has been a priority. Although this way we can avoid having to implement big changes in the future, we will continue working on the performance, usability and scalability of Noixion TV.
In addition to the TRON node in our own test network, the functionality of Noixion TV is provided by several services. Currently, some of them are not yet connected to it: over the next months we will be working on their integration in the platform.
About these services, their development status and level of deployment on the demo server we have are as following:
Noixion Delivery Network (Already connected to the demo server)
Currently, the service in charge of processing video and audio is hosted on the same machine as the Noixion platform. It stores the audiovisual content in a secure way by dividing it in chunks and distributing it to the storage network, to finally deliver it throughout the world.
This service has been tested on seven nodes, located in Paris, Frankfurt, North Virginia, São Paulo, Bahrain, Tokyo and Sydney.
Noixion Delivery Network is a DHT (distributed hash table) based on Kademlia.
Videos are processed by the node with the least load. Once the content has been processed, that node distributes the chunks to the corresponding nodes.
To serve the videos a cache is used, when its full the less viewed content is replaced. When a user requests a video for the first time, he/she looks for it in the nearest node; if it’s found, it serves directly from the cache, if not, he/she asks the rest of the nodes for it and serves it to the user. This process is completely transparent to the user.
Multilanguage Search Engine (Already connected)
This system will index the content of the application in different languages (currently Spanish and English are available). This will facilitate searches by indexing the content with information retrieval techniques and natural language processing, for which stemming has been used to obtain the semantic root of words. The user can search for videos by title, key word or username. When the user introduces a username in the search engine, he/she will get all of the contents uploaded by that user. Thanks to the stemming of titles and descriptions, it is also possible to search for specific contents (videos, films, etc.). New features will be implemented over time, such as improving the usability of this type of searches.
In the future, we will develop a more advanced search engine by making it possible to search by actors, directors and producers, as well as filter search results by categories and other criteria.
Streaming service (Already connected)
Content is retransmitted via RTMP (by means of applications that use this protocol such as OBS, XSplit, or StreamLabs OBS), or via WebRTC (using the browser, webcam and microphone of the device). In addition, this service provides the chat functionality of the live streaming channels.
The streaming service also enables users to record all the content of a channel. This option has been temporarily disabled in the demo version.
Message Sending Service (Already connected)
PUB-SUB Redis allows us to implement a scalable way of sending messages. This service is already integrated in Noixion TV.
Image and Video Conversion Service (Already connected)
This service is responsible of converting original images to different resolutions and formats so that performance of Noixion TV dramatically increases. It is managed directly by the platform using FFMPEG. It also takes care of getting thumbnails on live streaming every few seconds and creating training videos via slides and webcam.
Additional functionality for editing videos using FFMPEG will be implemented in future versions.
Duplicate content detection system (Not connected yet to demo server)
This service will be used to make sure that the contents are unique in the platform. It takes some frames of the videos, which are then converted and stored using the pHash algorithm.
This system is inspired by the article Counter-Terrorism Video Analysis Using Hash-Based Algorithms, written by David García-Retuerta, Álvaro Bartolomé, Pablo Chamoso and Juan Manuel Corchado, and published in the journal Algorithms.
Duplicate content detection system is currently not yet connected to Noixion TV demo server. It has been tested directly being installed on a single server, with very positive results. We are currently working on how to integrate it in the most efficient and least expensive way.
Inappropriate content detection system (In development)
This system is in development phase. Right now, the trained model is able to classify images using deep convolutional neural networks.
It is based on the article of the Neurocomputing journal called Visual content-based web page categorization with deep transfer learning and metric learning, by Daniel López-Sánchez, Angélica González Arrieta and Juan M. Corchado.
Reputation System (Not connected yet)
The reputation system will provide rewards for behavior and loyalty in the form of Noixion Dividends (which will be used later to earn dividends from NXN, TRX and other cryptocurrencies listed on the platform). This system is currently disconnected, but the algorithm and scoring are already completed. Next goal is the minting of the Noixion Dividends tokens used in the Noixion Drops smart contract and will be fully operational in the coming months.
This algorithm will also be used to sort the existing Noixion delivery networks taking into account factors such as fees, fidelity, downtime and performance of the network servers.
API GRPC (Not connected yet)
In order to offer massive performance in mobile applications, the JSON API’s we use have been additionally implemented using GRPC. Currently this API is not connected, as mobile applications functionality migrate APIs from JSON to GRPC has not been developed yet.
The mobile apps in Android and iOS go hand in hand in development, but at an earlier stage than the web application. Therefore, they still offer fewer functionalities than the web version. There is still a lot of work to be done on this side.
Android app is already online and available to users; iOS application release is only pending the resolution of a small issue related to the license, and it will be published imminently.
You can test our demo in: noixion.tv
More info in: noixion.io
Originally published at medium on October 18, 2019.