What is Callaba Engine®
Callaba Engine® is a streaming engine that you can use to develop your application. Interaction with the engine is carried out through the REST API.
In essense, Callaba Engine is a set of implemented modules that provide:
- Transmission via SRT, RTMP, RTSP, HLS, UDP, HTTP.
- SRT Server, SRT router and SRT Gateway
- RTMP Server
- Transcoding via CPU
- Transcoding via graphics accelerator card (Amazon Web Services only)
- Playback video on demand
Each of these modules can be called and controlled from anywhere in your application.
Callaba Engine Architecture
Callaba Engine is developed as a set of modules independent from each other, where the Pipeline pattern is applied. This means any module can be called in any order. For example, first we launch the stream setting up module and make it listen to a specific port, next we launch the module that performs the transcoding of the stream, and finally the playback module.
This can be compared to booting up a computer, where first the low-level software is loaded and it gets the information from the hard disk drive, next the kernel is loaded, then the operating system and services, including the graphical shell, and finally you see the screen. All this can be fit into the Pipeline concept.
Callaba Engine modules
- SRT Servers. Provides broadcasting and multi-routing via the SRT protocol.
- SRT Routes. Provides single-routing via the SRT protocol.
- RTMP Servers. Provides broadcasting via the RTMP protocol
- Restreaming. Provides restreaming transcoding and stream multiplexing
- Stream recordings. Module that records streams to disk
- Playback of Video on Demand and Over the top
Any of these modules can be called sequentially, linking one stream to several different processes indefinitely, as long as the server resources keep up.
Routing between multiple Callaba Engine instances
Callaba Engine supports stream routing and clustering out of the box. You can easily organize delivery from one instance to several others using the built-in routing mechanism.
What technologies does Callaba Engine use?
Callaba Engine is a collection of low-level programs written in C and C++, python, rust and golang. Database used is MongoDB.
Callaba Engine uses docker as well as docker-compose and is made of containers. These containers can exist on the same server and can also be distributed among server users via clustering.
Callaba Engine includes:
- Queue application (Rust). Queue is serving process automation and system processes
- Web server application (C)
- Application handling the ICE protocol (Golang)
- Application handling the WebRTC, RTP (C++)
- Application handling the SRT streams (C++)
- Application handling RTMP streams (C)
As a basis for the development of modules, features and standards for video broadcast protocols are used. Callaba Engine uses built-in failover mechanism, in case of dangers, the construction service resumes work automatically.
Callaba Engine uses the network: host virtualization mode, which is only available on Linux operating systems. This limitation is due to the different network stack of operating systems. Therefore, we recommend using Linux.
If you need something special, you can contact the technical support department: [email protected]