Accurate Video can be setup in numerous ways.
In the illustration above, a reverse proxy is setup to connect the frontend application with Accurate Video Core backend using Keycloak to handle authentication. Keycloak could be pointed towards an on-prem Active Directory while authentication is managed by a cloudbased OIDC provider. Accurate Video supports industry standard role based access controls managed through AD.
Accurate Video Core is a set of services that
- define the Accurate Video domain
- persist and provide asset data
- connect to external services to enrich asset data
- enforce authentication and authorization
The main purpose of the API server is to provide a means of storing and accessing metadata. It defines the domain model that unifies communication between all Accurate Video applications and services and provides a REST API. It is built upon an adapter layer, which means the it can be integrated with any database or MAM, should the curstomer require it.
Ingest is a service that can analyze files, move them to a storage accessible by Accurate Video, and store them as assets in the system.
Accurate Analyze is a service that extracts waveform data and other audio information from media files.
In the media industry there is often the need to execute asynchronous tasks to handle various workloads ranging from relatively quick operations such as converting subtitles from one format to another, to more long-running tasks such as transcoding and archive retrieval.
A job manager holds the queue of jobs and keeps track of progress. Standalone lightweight executors are responsible for the heavy-lifting of actually executing a job task. They can be deployed either in a cloud service or on-prem and allow the system to scale easily.
Workflows differ between customers whether the purpose is to ingest a file or enrich an asset with AI generated metadata.
Job templates are designed to be a way for customers to modify our common workflows without having to modify our code. It can also be used to abstract away the full job specification from users, and allow a user to queue a very simple job description which is then expanded into a full job using the template system.
A job can execute any script that is available to the job executor. Together with custom templates, this makes it possible to define advanced workflows e.g. extending the ingest action with external QC analysis like Baton