mirror of https://github.com/OpenVidu/openvidu.git
The same check as connectionQualityLostPublisherSubscriberNotLostTest, but with the media OpenVidu Meet publishes. The Meet bundle currently deployed runs its Room with adaptiveStream and dynacast, a 720p camera and livekit-client's publish defaults (simulcast, DTX, RED, VP8). The connection-quality tests turned simulcast, dynacast and adaptiveStream off, so the camera was a single 640x480 layer. connectionQualityTest() gets an overload with a videoOptimizations flag: simulcast, dynacast and adaptiveStream enabled for both users, with a 1280x720 camera published as three VP8 simulcast layers. The existing 4-argument form passes false, so the other connection-quality tests are unchanged. The body of the previous test moves to lostPublisherDoesNotMakeSubscriberLost(videoOptimizations), which both tests call. With a simulcast camera the video track does not trigger the bug. mediasoup zeroes the score of a silent Producer with several layers within 1.5 s, and only the audio track keeps a frozen score. That also makes the publisher LOST two server quality updates earlier than with a single layer, so the subscriber's wrong LOST arrives 10 s after the publisher's. The wait after the publisher is LOST therefore goes from 10 s to 15 s; with 10 s the check ran just as that LOST arrived. Caveat: the publisher's livekit-client (>= 2.22) does its full reconnect in that same update, 10 s after its first LOST. A server with the bug therefore fails this test only while its quality update reaches the subscriber before the publisher's Leave does. It won by 10-15 ms in all 4 runs, but if it ever loses, a buggy server passes; a correct server can never fail. The single-layer test has no such race. Verified against the local Compose deployment: - mediasoup, server image built before the openvidu-pro-livekit fix: the new test failed 4 of 4 times. RegularUser went EXCELLENT -> LOST through its audio consumer, while its video consumer read producer score 0 and stayed EXCELLENT. - mediasoup with the fix, and pion: both tests pass. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .github | ||
| openvidu-components-angular | ||
| openvidu-deployment | ||
| openvidu-livekit@f2e5cda2b3 | ||
| openvidu-test-browsers | ||
| openvidu-test-e2e | ||
| openvidu-test-integration | ||
| openvidu-testapp | ||
| .gitignore | ||
| .gitmodules | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| NOTICE | ||
| README.md | ||
README.md
openvidu
Visit openvidu.io
What is OpenVidu?
OpenVidu is a platform for building real-time video conferencing applications. It's built on top of LiveKit and mediasoup, and is developed by a team with over a decade of experience building WebRTC systems.
- Self-hosted: deploy it on your own infrastructure (AWS, GCP, Azure, Oracle, DigitalOcean, on-premises) or use it as a managed service.
- API-compatible with LiveKit: use any LiveKit client/server SDK unchanged.
- OpenVidu Meet: a fully-featured video conferencing app that ships on top of this platform, ready to use or embed.
- Advanced media features: recording, RTMP/streaming egress, AI agents (transcription, translation), virtual backgrounds, and more.
Getting started
- 📖 Documentation
- 🚀 Try it locally
- 💻 Tutorials
- 🎥 OpenVidu Meet — the reference app
Community Forum
Visit OpenVidu Community Forum
Contributors
This project exists thanks to all the people who contribute.
Backers
Thank you to all our backers! 🙏 [Become a backer]
Acknowledgments
OpenVidu has been supported under project "CPP2021-008720 NewGenVidu: An elastic, user-friendly and privacy-friendly videoconferencing platform", funded by MCIN/AEI/10.13039/501100011033 and by the European Union-NextGenerationEU/PRTR.
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]