The idea for the Aipix Mediaserver, a video surveillance server used for processing and distributing video streams, and transmitting and storing content from IP cameras (now an essential component of Aipix Telecom VSaaS Platform), was sparked unexpectedly when a regular client posed a challenge. The client asked if we could participate in a competition for a video surveillance system and needed a service capable of capturing and restreaming content from video surveillance cameras.
The video surveillance system needed to be more than a standalone system. Our clients were looking for a comprehensive platform covering a range of functionalities such as provisioning, billing, user, and access rights management. The solution also needed to integrate into existing services of the client, of which there are numerous options.
Join us as we dive into Aipix Mediaserver’s development path, explore the sophisticated solutions to real-world requirements within video surveillance, and look to the future we hope to shape for media servers.
A Journey from Concept to Reality
Understanding Video Surveillance as a Service
The journey began with a deep dive into understanding the ins and outs of video surveillance as a service (VSAAS). With extensive experience creating solutions for telecom operators, the team was well-versed in identifying the functional and business requirements for this project.
The development process was a collaborative dance between the team and the customer. Our team brought their technical expertise to the table while the customer provided insights into their specific needs. This collaboration enabled us to deliver a product that not only fulfilled the customer’s requirements but also incorporated additional innovative features.
Technology Stack Selection and Implementation
Our initial plan was to utilize an existing open-source solution and build upon it to flesh out functionalities that were missing. However, we quickly realized that starting with an existing solution wouldn’t deliver the expected end product. If we wanted to be competitive in the market for products of this kind, we couldn’t solely rely on open-source solutions to build out our tool. Building our tool from open-source solutions wasn’t going to work if we wanted to be competitive in the market.
So we switched gears and decided on our own solution. This offered complete ownership and control over the resulting codebase. Our team buckled down and spent countless sleepless nights, fueled by caffeine and a desire to meet our client’s expectations, building out the first iteration of the video surveillance system. This stage took us two weeks.
Testing and Improvements
The first version of what would become Aipix Mediaserver was not perfect, but it served as a stepping stone toward the end result we were looking for. It was dispatched to a pre-commercial environment for testing.
Here we learned much about the platform’s performance and functionality. We also uncovered several aspects that were issued during the initial design phase.
How Aipix Met the Requirements
Based upon our discussions with the client, we knew the project needed to support a few main requirements:
- Restreaming support in various formats
- Secure storage
- Fast navigation within the stored DVR archive
- Resilience to network errors
- Service fault tolerance
- Stable performance
And we needed to meet all of these requirements within a demanding deadline.
1. Support for Restreaming Camera Streams
A critical requirement was the capability to restream camera feeds in multiple formats. Restreaming involves receiving a video stream from a source and replaying it at another location. This necessitated the integration of various codecs and streaming protocols into the service:
- Video Formats – H.264, H.265, MJPEG
- Audio Formats – PCMA, PCMU, AAC, MPA
2. Secure Storage and Navigation of DVR Archive
Another necessity was secure storage and fast navigation of the stored Digital Video Recording (DVR) archive. Possible to use robust encryption and access control mechanisms to ensure the data storage environment remains secure and confidential.
We also worked to develop the following features to create a user-friendly platform:
- A special DVR storage format: – With more than 200 thousand video camera streams captured, and petabytes of stored video data, our DVR system is robust. Our native format offers fast search and playback of records, handling more than 100 Gbit/s of traffic from cameras. At any given time, around 7,000 users are simultaneously viewing video from cameras on one of our production installations, where they can easily locate and access the intended video. This ease of access is due to optimized data indexing and seamless migration of DVR between servers.
- User flexibility: – Users can customize their settings to schedule archive overwrites and prevent specific video archives from being overwritten.
- Custom recording parameters: – Users can define their recording parameters, including the size, location, and duration of data storage.
- Event-based recording: – Users can set up recording based on key triggers, events, or schedules.
3. Resilience to Network Errors
In the context of video surveillance, network stability is paramount. Critical video data can be lost if there are any interruptions or problems with the network, so we designed our service to anticipate and handle such network issues.
The capture core is a vital part of Aipix Mediaserver, offering high resilience against network errors and disruptions in communication. Even under less-than-ideal network conditions, our solution is resilient.
The kernel was smartly designed to be compatible with a broad spectrum of network cameras spanning various manufacturers and models, meaning the service can interface with an array of video surveillance systems.
We also created a reconnect function, which quickly re-establishes the connection to the stream in the event of a network disruption.
4. Service Fault Tolerance
We also engineered our video surveillance platform to handle faults or failures:
- Redundancy – Aipix Mediaserver can use clustering, which is a form of redundancy to ensure that the failure of a single component would not cascade into total system failure. When two servers are clustered, the secondary server will continue to function if the primary fails.
- Automatic Failover – This mechanism can detect a system failure and automatically switch to a backup system, ensuring uninterrupted video surveillance.
5. Scaling and High Performance
Any modern software worth its snuff is ready to accommodate an increasing workload without degradation in performance. Using C++ and other strategic development choices allows the system to scale to 2500 streams simultaneously on a single physical server and up to 5000 streams in failover mode. This design reduces infrastructure costs and frees up resources for other tasks.
Now Aipix Mediaserver has transitioned from a client request and is actively available on the market as a component of Aipix Telecom VSaaS Platform, our commitment to its evolution is stronger than ever. Here’s a quick glimpse into what we are currently working on:
- Microservice Architecture – The team is currently working on transitioning the solution to a microservice architecture. This breaks down the application into smaller, loosely coupled services that perform a specific function. This boosts the application’s modularity, making it easier to develop and test.
- Kubernetes Integration – Kubernetes is an open-source platform that simplifies the process of deploying, scaling, and managing containerized applications. This integration will enhance the scalability and reliability of Aipix Mediaserver.
- Distributed Storage System DVR – Distributed Storage System DVR – While we’re aware of existing solutions like Ceph, Minio, and S3, we’re forging our own path with our distributed system for DVR. This lets us prioritize performance and design fault tolerances to our own requirements. Our system spreads video data across multiple nodes, ensuring speed, reliability, and consistent access, even during node failures.
- Orchestration and Federation – The team is working on the orchestration and federation of Aipix Mediaserver, a service for managing and deploying media servers. The federation aspect will enable the integration of multiple media servers, allowing them to work together as a unified system.
- Built-in Analytics – The team is also developing built-in Aipix Mediaserver analytics with low CPU utilization. This will provide insights into the performance and usage of the service, giving the team key information for future improvements.
We’re thrilled to announce that Aipix Mediaserver is also making its debut on Product Hunt, a platform where you can discover and discuss the latest tech products! We invite you to join the conversation there. Share your thoughts, ask questions, and explore what Aipix Mediaserver has to offer. Your insights and feedback are invaluable to us.