The customer chose to protect their confidential information
Andersen was approached by a B2B/B2C Telecom business from the DACH region. The company provides a large spectrum of services: fixed-network/broadband, mobile communications, Internet, and IPTV products for consumers, as well as information and communication technology (ICT) solutions for its business and corporate clients. The company operates in the markets of 11 countries and has over 100,000 employees, most of whom are located in Bonn and Vienna.
Front-end:
React, CSS, SCSS, Sass (styles), Redux
Back-end:
Java 17 (a programming language), Spring Family, ORM (Hibernate and JPA), JUnit and Mockito (testing frameworks), Liquibase (DB migrations)
Mobile:
Android: Kotlin, Clean Architecture, Moxy, Retrofit, RxJava2, Dagger 2, ExoPlayer, Mockito, Kaspresso, Marathon iOS: Swift 5, Alamofire, PromiseKit, Firebase, RxGRDB, Core Data, Verimatrix, FairPlay
Smart TV:
Plain JavaScript (ES5/ES6+), React/Svelte (frameworks), GSAP, Python, Node.js, MySQL, Amazon S3, Apache Hadoop, GitHub, Git, Gradle, Apache Mesos, Sumo Logic, Express Gateway, Jenkins, Vector, Yarn
Business problem.
The customer is a well-known provider of Telecom services with huge experience in media broadcasting using conventional methods (TV, radio, etc.). However, a decreased demand for the consumption of information from these sources led to losses in revenue caused by lower broadcasting rates, audience withdrawal, and a reduced number of advertisements and promotion agreements. These were the key drivers that made the company embrace a modern approach towards digitalization.
How it has influenced the customer’s business.
The increasing popularity of VOD (video-on-demand) and streaming solutions in the OTT (over-the-top) market led to a lost opportunity for the customer’s business, as it didn't have a platform that could provide users with easy access to the media content online. The company was also lacking the ability to share content with broader audiences, increase content monetization, and attract advertisers via a VOD platform.
Opportunity.
The customer's idea was to diversify the business by developing a custom OTT platform that would augment the existing pool of content delivery tools. Such a platform was expected to provide high-quality VOD services enabling users to easily access the media content (streams, films, TV series, etc.) on all types of devices (web, mobile, and Smart TV). For the customer’s business, this would provide an opportunity to distribute its content among more people and hence gain a major share of the entertainment services market and better capabilities for video monetization and ad integration.
Goals.
The supreme goal was to increase the company's revenue and make it a leader among VOD service providers by developing a custom OTT platform that would be easy to modify and highly adaptive to user needs. The major business objectives set by the customer were:
Furthermore, user interviews and analysis of feedback in app stores, which had been conducted by our Business Analysts during the Discovery phase, revealed a couple of key user requirements:
The growing market of OTT solutions is expanding both locally – in the DACH region – and globally. The majority of companies are either turning to white-label solutions with limited customization or opting to create a platform from scratch, which gives more space for possible changes and improvements. Furthermore, most content makers give preference to streaming platforms as a fast and efficient means of monetizing their content due to the easy spreading and promotion of works. As a result, many OTT platforms accumulate enough resources to invest in the production of their own content and compete with professional filming studios (e.g., Netflix).
Thanks to our contribution, the company can now benefit from a custom VOD streaming platform tailored specifically to its business needs, as well as to the plans of the company's marketing department and user preferences. Andersen's solution includes features for diverse VOD-related operations and the following user types:
Among other features, the resulting VOD solution offers the following advantages:
Together with our Business Analysts, the customer's team selected multiple monetization models meant to provide users with a variety of options for accessing the platform’s content. The SVOD (subscription video-on-demand) model was adopted as a primary solution due to its high level of flexibility and freedom and the benefits from the features of the Membership Economy (including super users, so-called forever transactions, and recurring revenue). Notably, it was augmented by the AVOD (ad-based video-on-demand) model, which has two options: access to all content at a reduced subscription price with the ads-included feature or access only to free-to-view content with integrated advertisements. Such a decision served three major purposes: embracing a larger audience due to the increased availability of content, testing new approaches, and offsetting the hosting costs. The TVOD (transactional video-on-demand) model was applied to provide access to premium content and new releases outside subscription limitations. All of the above have made it possible to gain a larger market share, obtain viewers' feedback, and adjust the business model specifically to the users' demands.
As one of the key business requirements, the issue of security was given top priority and treated diligently by our specialists. The resulting solution included the following features:
Andersen's design team conducted thorough UX research to identify key usability standards. As a result, we outlined and implemented several features leading to a significant improvement in user experience:
The back-office app we have developed allows admins to easily manage content by sorting videos into different categories, tags, or folders. It also makes content easily searchable, which gives the possibility to perform bulk actions on multiple videos. Content management was especially important for our VOD solution, as it was required to provide the admins with different permissions for managing, uploading, and publishing content to user accounts. The app also offers functionality for adding subtitles and logos and editing videos.
Andersen's ML experts have tailored AI-driven recommendation patterns specifically to the customer's requirements using Amazon Personalize. It includes API operations for real-time personalization and batch operations for bulk recommendations and user segments. Engine customization required scrutiny in setting up, according to the dataset and schema requirements, and large amounts of content metadata and user personal data under GDPR to train the models.
Andersen sticks to the best practices and conventional approaches in terms of data encoding, so our team chose AWS Elemental MediaConvert as an encoding tool, Advanced Video Coding (H.264) as a video codec, Advanced Audio Coding as an audio codec, and MP4 as a container format. We opted for these codecs because they ensure sufficiently high upload bitrates without leading to any loss of data. Video is streamed in 720p by default. AWS Elemental MediaConvert transcodes an input media file from the processing queue to the HLS format. After input files are specified, input selectors for video, audio, and captions elements are identified. Then, output groups with standalone package renditions are created. After transcoding is executed, the transcoded file is saved in the output location that was specified in the settings of the output group.
The user sends a GET request to receive particular video content to the Amazon CloudFront CDN server via a link. Amazon CloudFront conducts checks of the user’s authorization parameters via the AWS Lambda Edge paywall. If the user is authorized and granted permission to access a chosen content type, AWS Lambda Edge sends a request to AWS Elemental MediaTailor to generate content with integrated ads. Then, AWS Elemental MediaTailor sends requests to:
Andersen's development team was responsible for implementing an online chat as a convenient means of reporting issues within the system. We released a support flow via integration with the Zendesk CRM service provider and Amazon Connect. A Contact Control Panel (CCP) is used to handle support tickets and communicate with contacts. The user support flow is executed according to the following pattern. The user sends a support request via the CCP's interface. The created support ticket is sent to Zendesk's support service, which is integrated with Amazon Connect. Subsequently, the user is able to communicate with the support team via text or voice channel using the out-of-the-box Zendesk interface.
Andersen's video player solution includes the customization of an HTML5 Video Player – not only because it is compatible with HLS ingest but also because many set-top boxes and Smart TVs don’t meet the processing and memory demands of OTT apps. The player provides users with a broad range of features, including instant and basic playback, play/pause, seek, time display, volume control, normal and full-screen display, and captions/subtitles. We have also included multilingual audio track selection, auto adjustment of resolution depending on the quality of the Internet connection, and responsive layout for consistent relative player size.
Here is a high-level overview of the successful business flow and components described in the diagram:
Authentication.
The user logs in to the app - The user enters credentials - The system sends the request to the Amazon Cognito service - The user is authenticated.
Content uploading.
The admin uploads the content in the RAW format via AWS AppSync (a GraphQL-based API gateway) to activate the AWS Lambda service (video upload). In such a way, the content is uploaded to Input Bucket (S3 object-oriented storage).
The workflow of AWS Step Function.
After content is uploaded to Input Bucket, the system runs an internal Step Function workflow. It includes the following steps:
Redirection of the prepared stream to the user.
The AWS Elemental MediaTailor service conducts extraction of the video content from Output Bucket and ads from Ad Server Bucket. Then, it merges the ads with the relevant slots in the video according to the VMAP file. The created stream is redirected via a single link to Amazon CloudFront and displayed to the user.
Access to the content.
Amazon CloudFront works as a content distribution management system that caches content and ad segments. Simultaneously, AWS Lambda Edge is enabled to conduct a paywall integration service that processes data about the user to return relevant types of content.
What happens next?
An expert contacts you after having analyzed your requirements;
If needed, we sign an NDA to ensure the highest privacy level;
We submit a comprehensive project proposal with estimates, timelines, CVs, etc.
Customers who trust us