Video Fingerprinting
In this post I want to share my experiments on how to generate video fingerprints.
Read moreLoom is a Headless Media Asset Management System which is still in early development. At the moment there are no public sources or binaries available for download. If you are however interested in the development process or have general question I recommend to checkout my blog.
Loom is a private project which is not backed by a company. The design, development is done by Johannes Schüth.
Assets of any sort can be feed into Loom. Stored assets will be processed and made available via S3 and REST API.
Additional contents (e.g. metadata, tags, ratings, text, numbers, free JSON) can also be stored in Loom along with your assets.
The REST and GraphQL API allows you to retrieve and update the assets and their connected contents.
This list contains some of the key features which are planned for Loom.
The whole architecture of loom has a developer centric design which makes it easy to adapt it to your needs.
The loom server provides you with a powerful REST API which can be used to manage all resources.
In addition to REST the server also provides a GraphQL API which allows you to fetch nested data in one step.
Loom comes with a powerful permission system. Permissions can be granted on a object level.
SSO IAM providers such as RedHat Keycloak, Auth0, Okta will be natively supported. No need for complicated plugins.
Existing assets can be referenced from disk or S3. Alternatively files can be uploaded and stored locally or in a configured S3 bucket.
An extension can be attached which allows the generation of media fingerprints. These fingerprints can be used for asset blacklisting and similarly search using nearest neighbor search.
Images can be resized and cropped. The focalpoint can be set on images in order to help generation of cropped images for responsive designs.
Thumbnails can be automatically generated from video content.
The stored metadata can be indexed using Elasticsearch.
Loom comes with a system which allows you to tag assets, namespaces and contents.
Sometimes data can’t be structured using the provided models. Loom thus provides you with options to add custom metadata to any element it stores.
Selective data can be exported and re-imported in another instance.
Metadata from images, videos, documents will automatically be extracted and make accessible via REST or GraphQL API.
User specific content such as comments, taggings, ratings can be stored along with your assets or content elements.
Content models can be used to provide a structure for metadata that can be stored in addition to assets.
The server provides webhooks that allow you to trigger other attached processes.
These various features help you to integrate Loom into your environment.
You can choose between different persistent modes. In-Memory, Filesystem, MariaDB, PostgreSQL
Monitoring data will be made accessible via a Prometheus scrape endpoint. You can thus track status of the instances via a Grafana dashboard.
The CLI can be used to run admin tasks and also trigger synchronization tasks for new assets.
Loom fully supports Kubernetes and comes with a Helm Chart that helps you deploy it in your K8S cluster.
Extensions can be registered in order to extend the functionality of Loom using Microservices or Serverless servies (e.g. AWS Lambda).
Multiple instances of Loom can form a cluster in order to help you scale your API.
Assets can be referenced from an existing S3 bucket or you can choose to use a bucket to store newly uploaded assets.
In this post I want to share my experiments on how to generate video fingerprints.
Read moreIn this post I want to walk you through a PoC I created that covers database handling with Vert.x and jOOQ.
Read moreIn this post I would like to share how I approach the design for Loom.
Read moreIf you want to know more about MetaLoom you can get in touch via Email.