How Do AI Content Detectors Work?
Wakey, wakey, folks! It’s time to put on our techno-savvy hats and dive deep into …
This is another case study in the series of projects I have completed as a product manager over the last ten years.
When a client in Melbourne, Australia, approached me to install a comprehensive video system in their newly built squash courts, I knew it would be an exciting challenge.
The project required live streaming from six squash courts 24/7, with coaches able to record, start, stop, access, and share video recordings with their trainees. As a remote developer based in Thailand, I had to think creatively to make this project successful.
The first hurdle was deciding on the best approach for video management. Initially, I considered using third-party providers like AWS, IVS, or MUX, which would have required minimal development.
However, the cost of these services, which charge per minute of transcoding, video ingest, and delivery, quickly became prohibitively expensive considering the 24/7 nature of the streams. It was clear that I needed to pivot to a more cost-effective solution.
After careful consideration, I decided to go completely internal. I specced out a second-hand Dell server that would be installed locally to handle all transcoding, delivery, and storage. I chose Unraid OS for the operating system, which provided a user-friendly GUI interface for management and a built-in Docker system. This choice made the system accessible for both high and low-tech users and allowed for easy remote access.
I used Ant Media Enterprise Server for video management, which offered a single-lifetime license. While the upfront cost was significant, it was still less than half a month of what I would have paid for cloud services. Configuring the Docker setup was a bit of a challenge, but overall, the process was relatively straightforward. I tested multiple streams and configurations to ensure the system would run smoothly.
One of the biggest advantages of using Ant Media was its set of APIs. These APIs not only allowed me to provide documentation for the Q-SYS team to start and stop recordings easily, but also enabled me to build a mobile app for managing videos via tablet or web interface.
I built a simple, user-friendly Bootstrap interface. Each court had its own page with clear start and stop recording buttons. The app also allowed users to pull, play, share, and delete video recordings.
To prevent accidental recordings, I implemented notifications to indicate when a recording was running. As the application was built using front-end JavaScript without a database, I checked the recording status on each page load to alert users of any active recordings. I also had to rework the internal network and set up custom port forwarding to make the iframe video players, served directly from the server, accessible externally.
Managing this project remotely came with its own set of challenges. I used Tailscale to put the server on my network, allowing me to access it locally during setup before a dedicated IP was assigned. I also had a Mac on-site that I could remotely access to troubleshoot any issues. The website was hosted in a separate Docker container running Nginx on the same server, keeping everything self-contained and easy to manage.
Although I used a second-hand R730 server with relatively low-cost parts, the system has performed well with little overhead, even with a high volume of users.
The main potential bottleneck I identified was the outbound internet bandwidth, as I was unable to significantly reduce the 1080p output for each user. In the event of known high-volume events, my contingency plan is to temporarily switch to a third-party service like AWS or consider using a CDN.
Regarding security, while I didn't initially implement authorisation for ease of use, the APIs are only accessible on-site through dedicated ports, greatly reducing risk.
There's no database or user-identifiable data, so the potential for malicious access is low. However, I can easily add bearer token authentication to the API calls should the need arise.
Inspired by the YouTube mobile app and built with Bootstrap, the user interface was designed with simplicity and separation in mind.
Each court has its own page to prevent users from accidentally interfering with each other's recordings. The design has proven effective, with users adapting to it quickly and providing positive feedback.
Throughout the project, communication was key. Despite the geographical distance, I relied on tools like WhatsApp, Zoom, and Tailscale to coordinate efforts and ensure smooth progress. The physical installation was handled by an on-site associate, while I managed the software and configuration aspects remotely.
In the end, the project was a resounding success. The client was very happy with the system, and I encountered very few issues post-installation.
The experience highlighted the importance of adaptability, creative problem-solving, and effective communication in handling complex, remote projects.
Looking forward, I'm well-prepared to scale the system as needed. I've thoroughly tested the server's performance under high traffic and have identified the outbound internet bandwidth as the main potential constraint.
Should the need arise, I'm ready to implement additional security measures, like bearer token authentication, and explore infrastructure upgrades or CDN integration to handle increased usage.
This project showcased the power of innovative thinking, meticulous planning, and a willingness to adapt to challenges.
By leveraging cost-effective hardware, flexible software solutions, and remote management tools, I delivered a robust, user-friendly system that met the client's needs and exceeded expectations.
The lessons learned and strategies employed here will undoubtedly inform and enhance my future projects, ensuring continued success despite evolving demands and constraints.
I would also like to mention that much coding and troubleshooting was done using Chatgpt, specifically GPT4 and Claude Opus.
This case study was written with the assistance of AI.
Some other posts you may like
How Do AI Content Detectors Work?
Wakey, wakey, folks! It’s time to put on our techno-savvy hats and dive deep into …
May 08, 2024
Read MoreDoes the Apple vision headset show us the path towards a personal AI assistant?
We stand at the precipice of a new era of intelligent assistants. With devices like …
May 08, 2024
Read More