Video Web Analyzer and Recognition

Brief

Our team had a great opportunity to be engaged in the developing of streaming application which includes two following server side parts : Video Recognition/Computer Vision and Web part.

Actually, the main concept of the developed application was to not make things too complex and at the same time to provide the end users (both streamers and advertisers) with the most effective and profitable solution.

So let’s see what major abilities can be provided by the created application:

Server Parts:

VR/CV part includes apps called Monitor, moneyservice and stateservice.

Monitor is an app which provides with the ability to view video streams and recognize advertising banners.

MoneyService is the server application which provides with the ability to calculate amount of money for stream and views.

Web Part:

AdStream is a complex web based application which provides the ability to place advertisement to online streams (for the advertisers) as well as monetize channels (for streamers ).
The system provides with a wide range of option for both streamers and advertisers such as:

Advertiser part:
automated process of advertisers and streamers cooperation;
campaigns managing;
searching for the channels;
manageable dashboard with the detailed statistics (Time Statistics, Banners Statistics , Outcome statistics);
channels managing (ability to confirm, verify etc);
siting of the advertising banners;
large database of streamers.


Streamer part:
automated process of advertisers and streamers cooperation;
searching for the campaigns;
manageable dashboard with detailed statistics (Time Statistics, Views Statistics , Income Statistics);
large database of advertisers;
orders managing.

Technical info

Solution includes web application, monitor services and money services written on C# .Net.
Monitor services connected to twitch.tv for searching and recognizing advertiser's banners on specified streams.
We have used a ffmpeg solution for image extraction from stream, and OpenCV library for banner recognition.
Money services written on C# and they are running as windows services 24/7 in order to calculate the profit for streamers and the fees for advertisers.
The web site’s backend was developed with C# and .Net Framework 4.6.
The SQL Server 2016 and Entity Framework 6 with code first database model generation for object mapping was used for database.
Front end is running under C# MVC 5 Framework, using jQuery 2 and Bootstrap 3 as main JS\CSS frameworks as well as other small plugins such as toastr for notifications, bootbox for fast and fancy modal dialogs.
Application is integrated with many payment processors such as paypal express, walletone, paymega.

Challenges & Achievements

#Speed
Application is processing simultaneously hundreds of streams, recognizing banners on live streams using computer vision approaches and calculating profits/fees with high precision.

#Security
Web application is running under IIS 8.5 using SSL. All passwords of users stored encrypted in database which excludes ability to steal login info at any program level.

Conclusion

Our team has gained excellent experience building this solution. Especially in stream processing, computer vision, image recognition, money calculations and payment method integrations.

Author

okarpov

To enable comments sign up for a Disqus account and enter your Disqus shortname in the Articulate node settings.