openVidu v3.4.1 connect with Egress

Hello! :slight_smile:

so… I’m new to this streaming world and I found OpenVidu very helpful!
Now I have one problem that I dont know how to fix. But starting from the begining.
My app looks like that:
frontend (angular) ← webRTC → openVidu 3.4.1 (liveKit)
and this is working like a charm!

what I’m working now on is openVidu → RTMP → Mux (or any other app like that)
I cant connect to/with Egress. And to be honest I don’t know what happening around this logic.
So let mi just put some questions.

ah, I’m using single-node community version.

(1) Should I work only with one container in docker (openvidu-service) or I should install openvidu-egress?
(2) how to configure egress.

Hi, welcome to the OpenVidu Community.

Find my answers below:

1. Containers

You don’t need any additional containers beyond the default OpenVidu deployment.
Egress and Ingress capabilities are already integrated into the current architecture, so there is no separate openvidu-egress image to deploy.

2. Ingress / RTMP Configuration

RTMP ingestion is handled through LiveKit’s Ingress API.
If you’re running OpenVidu CE, you can programmatically create an Ingress (for RTMP or WHIP) using the livekit-server-sdk in Node.js, Go, or other supported languages.

Here’s an example in JavaScript:

import { IngressClient, IngressInput } from 'livekit-server-sdk';

const livekitHost = 'https://my-livekit-host';
const ingressClient = new IngressClient(livekitHost, 'api-key', 'secret-key');

const ingress = {
  name: 'my-ingress',
  roomName: 'my-room',
  participantIdentity: 'my-participant',
  participantName: 'My Participant',
  // Transcode the input stream. Can only be false for WHIP.
  enableTranscoding: false,
};

// Create an RTMP endpoint for your stream source
await ingressClient.createIngress(IngressInput.RTMP_INPUT, ingress);

References: