We are developing a video application using the Livekit Next.js client app with the OpenVidu infrastructure.
The application works fine both on a local computer setup and on cloud server deployment, however we cannot find the recording files in the Minio server.
Starting and stopping the recording of a meeting does not produce any errors at all, but there are no files added to the specified bucket in Minio after the recording is stopped.
Any ideas on what we should look for are welcome!
Hello @apochr
-
What version did you installed? Single Node, Elastic or HA? 3.1.0 ?
-
What is the output of
docker ps
on each node? -
How is the SDK request of the recording?
-
Don’t you have any kind of error in the
egress
docker container? -
Are any recording present in
/opt/openvidu/data/egress_data/home/egress/backup_storage
? -
Restart the deployment and Increase the debug level of the egress container in the egress config file at
/opt/openvidu/config
:Add this:
logging: level: debug
And modify the S3 part of the configuration adding this:
storage: s3: ... other config... aws_log_level: LogDebugWithRequestRetries
Best Regards.
Thank you for the reply, Carlos.
I’m running Openvidu Pro Elastic 3.0.0 with 1 Master node and 1 Media node.
docker ps on Master:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8441eb7cd7a3 grafana/grafana:11.3.0 "/bin/sh -c '\n . /c…" 26 minutes ago Up 26 minutes grafana
1a84dda21b1e grafana/promtail:3.2.1 "/bin/sh -c '\n . /c…" 26 minutes ago Up 26 minutes promtail
6734663014c3 redis:7.4.1-alpine "/bin/sh -c '\n . /c…" 26 minutes ago Up 26 minutes redis
54c40f85963a grafana/loki:3.2.1 "/bin/sh -c '\n . /c…" 26 minutes ago Up 26 minutes loki
665fd2d815b8 openvidu/openvidu-operator:3.0.0 "/bin/operator" 26 minutes ago Up 26 minutes operator
1eb9b6dcc506 mongo:7.0.15 "/bin/sh -c '\n . /c…" 26 minutes ago Up 26 minutes mongo
67d8a742f85d openvidu/openvidu-pro-caddy:3.0.0 "/bin/caddy run --co…" 26 minutes ago Up 26 minutes caddy
45c4aa19c288 openvidu/openvidu-pro-dashboard:3.0.0 "./openvidu-dashboard" 26 minutes ago Up 3 seconds dashboard
1fd918ee08f5 bitnami/minio:2024.10.13-debian-12-r1 "/bin/sh -c '\n . /c…" 26 minutes ago Up 26 minutes minio
8cdc31fc0ade bitnami/grafana-mimir:2.14.1 "/bin/sh -c '\n . /c…" 26 minutes ago Up 26 minutes mimir
5e915581245e openvidu/openvidu-v2compatibility:3.0.0 "/bin/entrypoint.sh" 26 minutes ago Up 26 minutes openvidu-v2compatibility
docker ps on media:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
73a34c1cbc4c prom/prometheus:v2.55.0 "/bin/sh -c '\n . /c…" 32 minutes ago Up 32 minutes prometheus
3ea33e249179 livekit/egress:v1.8.4 "/entrypoint.sh" 32 minutes ago Up 32 minutes egress
8567d8abd18b grafana/promtail:3.2.1 "/bin/sh -c '\n . /c…" 32 minutes ago Up 32 minutes promtail
8bdeb4de73f4 openvidu/openvidu-server-pro:3.0.0 "/livekit-server --c…" 32 minutes ago Up 32 minutes openvidu
34c430c58077 livekit/ingress:v1.4.2 "ingress" 32 minutes ago Up 32 minutes ingress
137697ac5b53 openvidu/openvidu-operator:3.0.0 "/bin/operator" 32 minutes ago Up 32 minutes operator
This is the start recording code:
https://cloud.medion7.net/s/AKR9ciSxC6PWTMJ
And this is the stop recording code:
https://cloud.medion7.net/s/BsdYBsb84mX3qsr
I enabled logging for egress, and these are the errors I get on the egress container log:
2025/04/11 11:01:58 DEBUG: Retrying Request s3/PutObject, attempt 3
2025/04/11 11:01:58 DEBUG: Request s3/PutObject Details:
---[ REQUEST POST-SIGN ]-----------------------------
PUT /2025-04-11T11%3A01%3A38.346Z-427.mp4.json HTTP/1.1
Host: openvidu.openvidu-master.medion7.com:9100
User-Agent: aws-sdk-go/1.51.28 (go1.22.1; linux; amd64) S3Manager
Content-Length: 110
Authorization: AWS4-HMAC-SHA256 Credential=minioadmin/20250411/us-east-1/s3/aws4_request, SignedHeaders=content-disposition;content-length;content-md5;content-type;host;x-amz-content-sha256;x-amz-date, Signature=cb3c12c288d54610dc95024c5ef0454f04559970ab78b5627b66e36b34fb0c7b
Content-Disposition: inline
Content-Md5: paiD+1oeDWYTl1Ztk5wV0A==
Content-Type: application/json
X-Amz-Content-Sha256: 46d112289be19cfbba67a9e40193291ef43ea4a33fd1252c51eae45e01267723
X-Amz-Date: 20250411T110158Z
Accept-Encoding: gzip
Looks like the requests are failing after 3 retries, although the host and port are correct.
The recording files are there in the backup_storage folder, every time we start and stop, a new one is created.
Any suggestion would be appreciated.
Ok, I now understand the situation.
Firstly, consider that when you execute egress with an S3 endpoint, the egress is responsible for making the request to that endpoint. If the endpoint is not accessible by the egress container, the request will fail.
Based on your logs, you are using openvidu.openvidu-master.medion7.com:9100
as the endpoint. You have two options to resolve this issue:
-
Option 1: Open port 9100 on your Master Node to be publicly available. I do not recommend this since it is generally unnecessary.
-
Option 2: Configure the
S3_ENDPOINT
in your NextJS app tohttp://localhost:9100
. Each Media Node can access MinIO at localhost 9100, which is proxied to the Master Node.
Try one of these options and let me know how it goes.