Modular Video Player Framework with Pub/Sub Event Bus

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing video player technologies are inflexible, costly, and difficult to manage, as they require specialized knowledge and limit customization across various devices and application environments, forcing organizations to maintain multiple niche players that are costly and decentralized.

Innovation Solution

A video player framework that exposes modular video capabilities through intuitive APIs, allowing flexible video delivery options and customization via player modules communicating over a pub/sub architecture, enabling custom video experiences across a wide range of applications and devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If previous-generation video players based on browser plugins or proprietary technologies are used, then video playback functionality is provided, but flexibility and ease of customization are limited

Engineering Contradiction:
Improvecustomization flexibilityVSAvoidplayer architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The video player is divided into independent, interchangeable modules that can be selectively assembled. Each module encapsulates specific functionality (e.g., playback controls, analytics, branding), allowing organizations to customize players by selecting only the modules they need rather than maintaining multiple complete player solutions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A single unified player framework serves multiple purposes across different devices and applications. The modular architecture enables the same core player to be customized for various use cases (web, mobile, embedded) without requiring separate proprietary players, making one system universally applicable.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If multiple niche, single-purpose video players are maintained to serve different devices and applications, then specific device requirements are met, but cost and management complexity increase

Engineering Contradiction:
Improvedevice compatibilityVSAvoiddeployment cost
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

One unified player framework with modular components replaces the need for multiple separate video players. The same core infrastructure supports web, mobile, and embedded applications, eliminating duplication and reducing costs while maintaining device-specific functionality through module selection.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The player configuration is adjusted by changing which modules are activated rather than deploying different complete players. Organizations can modify player behavior by selecting different module combinations for different devices, achieving customization without the cost of multiple full-featured players.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If proprietary video player technologies are used, then video playback is enabled, but ease of operation and development simplicity are reduced

Engineering Contradiction:
Improvevideo playback reliabilityVSAvoiddevelopment simplicity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The event bus acts as an intermediary layer between modules and the core player infrastructure. Modules communicate through standardized events rather than direct connections, simplifying development by providing a consistent interface while maintaining reliable video playback through the established event-driven architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Complex player functionality is segmented into independent modules with well-defined interfaces. This modular structure simplifies development by allowing teams to work on individual modules without affecting the entire system, while maintaining reliable playback through the coordinated interaction of standardized module components.

Inventive Principle:
Principle #1Segmentation

4Adaptability or versatility

If previous-generation video players are deployed, then video content can be delivered, but adaptability to different application environments and devices is limited

Engineering Contradiction:
Improveenvironment flexibilityVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The player system dynamically adapts to different environments by loading and activating appropriate modules based on the deployment context. Whether web-based, mobile, or embedded, the core player remains the same but dynamically configures itself by selecting modules suited to the specific environment, providing flexibility without architectural complexity.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10362359B2Video player framework for a media distribution and management platform
Publication Date: 2019.07.23 USTUDIO INC
  • US10362359B2 patent drawing
  • US10362359B2 patent drawing
  • US10362359B2 patent drawing

AI summary

An embodiment includes receiving a first request for first video content and a first video player from a client; in response (a) (i) obtaining first source code for the first video player, (a)(ii) obtaining a first configuration file for the first video player, (a)(iii) obtaining a first player module corresponding to the first video player, and (a)(iv) communicating same to the client. The first video player comprises code to play video via a graphical user interface. The first player module comprises code that, in response to the first player module subscribing to a first event bus of a pub/sub system, performs a first routine in response to: (b)(i) a first publication to the first event bus from an additional player module that corresponds to the first video player, and (b) (ii) execution of a first callback function corresponding to the first publication.