Skip to content

Distributed Scalable Video Transcoding Cluster with Hardware Acceleration for Universal Playback - An affordable on-premise or self-hosted alternative to cloud transcoders like Amazon Elastic Transcoder, Google Transcoder API, Wowza, and Azure Media Services.

License

Notifications You must be signed in to change notification settings

openseawave/rasbora

Repository files navigation

Rasbora Logo

WebsiteDiscordLinkedinTwitterRedditRoadmapCommunity

Rasbora

Distributed Scalable Video Transcoding Cluster with Hardware Acceleration for Universal Playback - An affordable on-premise or self-hosted alternative to cloud transcoders like Amazon Elastic Transcoder, Google Transcoder API, Wowza, and Azure Media Services.

Components

The Rasboa philosophy is built on the idea of components, meaning that each part of the system can operate independently or be combined with a few others.

Name Status Responsibility Edition
VideoTranscoding ✅ Ready Encode/decode and transcode video files. Community
TaskManagement ✅ Ready Receive and manage tasks through the API protocol. Community
CallbackManager ✅ Ready Manage callbacks when tasks are ready or encounter issues. Community
SystemRadar ✅ Ready Monitor and collect system status information. Community
HouseKeeper ⬜️ In Progress Work as a supervisor to ensure tasks in the transcoder do not stack indefinitely, addressing issues in case of errors. Enterprise
Dashboard ⬜️ In Progress Centralized control panel to manage or monitoring Rasbora cluster. Enterprise
SafeGuard ⬜️ In Progress Offers protection on all Rasbora systems, with alerts for abuse, authentication, permissions, and authorization. Enterprise
CrashReporter ⬜️ In Progress Reporting crash details and performance alerts in the event of system crashes. Enterprise

Transcoding Strategies

Currently, we are focused on developing support for various encode/decode strategies tailored to different workload needs:

Name Status Strategy Edition
A-Z/V ✅ Ready Processes a single video file, decoding and encoding the entire file to produce multiple quality versions. Community
S-C/V ⬜️ In Progress Divides video files into small chunks; multiple instances of VideoTranscoding work on different chunks, later reassembling them into one video file with multiple qualities. Enterprise
F-F/V ⬜️ In Progress Analyzes video files and generates frames; each VideoTranscoding instance works on frames, later reassembling them into a video file with multiple qualities. Enterprise

Prerequisites

Here is what you need to be able to run Rasbora.

Git (Version: >=2.x.x)
Docker Compose (Version: >=2.24.x)
Docker (Version: >=25.x.x)

Deployment (Installation)

Method Type Status Docs
Standalone (Build From Source) Self-Hosted ⬜️ In Progress
Standalone (Docker Compose) Self-Hosted ✅ Ready Deploy Rasbora Standalone Using Docker Compose
Distributed Cluster Bare Metal Self-Hosted ⬜️ In Progress
Kubernetes Cluster Self-Hosted ⬜️ In Progress
AWS EC2 ⬜️ In Progress
Hetnzer Bare Metal Server ⬜️ In Progress
OVHCloud Bare Metal Server ⬜️ In Progress
Azure VM ⬜️ In Progress
Digitalocean Droplets ⬜️ In Progress

Supported Storage System

The supported storage systems and their current status:

Method Type Supported Status
SSD/HHD LocalStorage ✅ Yes ✅ Done
S3/Ceph ObjectStorage ✅ Yes ✅ Done
Gluster Network ⬜️ In Progress ⬜️ In Progress
FreeNAS Network ⬜️ In Progress ⬜️ In Progress

Supported Transcoder Engines

The video transcoder engines that are currently supported:

Engine Supported Status
ffmpeg ✅ Yes ✅ Done
gstreamer ⬜️ In Progress ⬜️ In Progress

Supported Hardware Acceleration

Rasbora's will support in future many hardware acceleration options:

Hardware Engine Encoder/Decoder Supported Image Handler Status Docs
CPU/x86-64 ffmpeg Software ✅ Yes jrottenberg/ffmpeg:4.4-alpine src/videotranscoder/handlers/default.handler ✅ Done
CPU/ARM64 ffmpeg ⬜️ In Progress ⬜️ In Progress ⬜️ In Progress ⬜️In Progress
GPU/Apple Silicon ffmpeg ⬜️ In Progress ⬜️ In Progress ⬜️ In Progress ⬜️In Progress
GPU/Nvidia RTX 4000 SFF ADA ffmpeg CUDA/NVENC ⬜️ In Progress ⬜️ In Progress ⬜️ In Progress ⬜️ In Progress
GPU/AMD ffmpeg ⬜️ In Progress ⬜️ In Progress ⬜️ In Progress ⬜️ In Progress

Supported API Communications

Communicate seamlessly with Rasbora through RESTful APIs and explore upcoming gRPC and Websocket integrations:

Method Type Supported Status Docs
Restful ✅ Yes application/json ✅ Done
gRPC ⬜️ In Progress application/protobuf ⬜️ In Progress ⬜️ In Progress
Websocket ⬜️ In Progress application/json ⬜️ In Progress ⬜️ In Progress

Note: To access the Swagger documentation, ensure that Rasbora is running, if you change the port of Task Manager component adjust the documentation URL accordingly.

Supported Callback Methods

Current supported callback methods and their current status:

Protocol Supported Type Status
HTTP/1.1 ✅ Yes application/json ✅ Done
gRPC ⬜️ In Progress application/protobuf ⬜️ In Progress
Websocket ⬜️ In Progress application/json ⬜️ In Progress

Supported Queue/Database Systems

The supported queue/database systems and their current status:

Engine Supported Status
Redis ✅ Yes ✅ Done
RabbitMQ ⬜️ In Progress ⬜️ In Progress
ActiveMQ ⬜️ In Progress ⬜️ In Progress
Amazon SQS ⬜️ In Progress ⬜️ In Progress

Supported Log Collectors

Manage and analyze your logs with Rasbora, we will supporting various log collectors such as Logstash, Grafana Loki, and more:

Engine Supported Status
STDOUT ✅ Yes ✅ Done
Log Files ✅ Yes ✅ Done
Database ✅ Yes ✅ Done
Logstash ⬜️In Progress ⬜️ In Progress
Grafana Loki ⬜️ In Progress ⬜️ In Progress
Logwatch ⬜️ In Progress ⬜️ In Progress

Supported Crash Reporting Methods

The current supported crash methods and their status:

Method Supported Status
Sentry ⬜️ In Progress ⬜️ In Progress
Datadog ⬜️ In Progress ⬜️ In Progress

Supported Monitoring Methods

The supported monitoring methods and their current status:

Method Supported Status
Redis/Streams ✅ Yes ✅ Done
Grafana ⬜️ In Progress ⬜️ In Progress
Prometheus ⬜️ In Progress ⬜️ In Progress

Support

We offer different types of support depending on the project size. You can choose the level of support that suits your expertise and requirements:

Type Limitations Methods Status
Community Edition No limits on CE-components Github Issues, Community Forum, Reddit, Discord ✅ Ready
Enterprise Edition CE-components & EE-components Calls, Email, Chat, Panic Button, Direct 1-to-1 Engineer ⬜️ In Progress

To request support for the Enterprise Edition, please contact us at rasbora.enterprise@openseawave.com

TODO

⬜️ Full Testing Coverage

⬜️ Start Community Forum

⬜️ Q/A Documentation Site

License

Kindly ensure to review our license page at https://rasbora.openseawave.com/license as well.

Copyright (c) 2023-2024 https://rasbora.openseawave.com This file is part of Rasbora Distributed Video Transcoding This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

About

Distributed Scalable Video Transcoding Cluster with Hardware Acceleration for Universal Playback - An affordable on-premise or self-hosted alternative to cloud transcoders like Amazon Elastic Transcoder, Google Transcoder API, Wowza, and Azure Media Services.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published