Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/indiedev2003/videoconfrence
https://github.com/indiedev2003/videoconfrence
Last synced: 15 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/indiedev2003/videoconfrence
- Owner: IndieDev2003
- License: mit
- Created: 2024-03-31T06:56:21.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-03-31T07:06:19.000Z (9 months ago)
- Last Synced: 2024-03-31T08:21:32.201Z (9 months ago)
- Language: Dart
- Size: 315 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Roadmap: roadmap.md
Awesome Lists containing this project
README
## 🌤️ About
🤙 This is an Open Source Video Conferencing App that utilizes Flutter and WebRTC technologies to provide users with a platform to conduct virtual meetings, conferences, and webinars. The app is built to provide seamless audio and video communication, as well as screen sharing, chat functionality, and file sharing.
## ✨ Why is this so awesome?
* 👥 **Multiple Participants**: `Waterbus` enables high-quality group video calls using `WebRTC SFU`.
* 💻 **Screen Sharing**: Share your screen with the participants of your call.
* 🎥 **Video Codec Support**: Supports a wide range of video codecs including `AV1`, `H.264`, `H.265`, `VP8`, and `VP9`.
* 🌌 **Virtual Background**: Enhance your meetings with professional virtual backgrounds.
* 🖼️ **Picture-in-Picture**: Increase productivity with picture-in-picture multitasking.
* 🔒 **End-to-End Encryption**: Ensure secure meetings with end-to-end encryption.
* 💋 **Beauty Filter**: Using [GPUPixel](https://github.com/pixpark/gpupixel) to implement Beauty Filters## 🎯 Goal
My project isn't intended to replace standard video conferencing platforms like `Google Meet`. Instead, it focuses on facilitating code sharing. I've noticed that features such as `Virtual Background` or `Picture in Picture` aren't widely implemented in existing solutions, and there's a lack of reference code for them. Many developers resort to third-party solutions for video calls but often miss out on these features. My goal is to provide a reference project that includes these functionalities, offering developers a starting point for integrating them into their own products.
If you have suggestions or problems, please [open an issue](https://github.com/lambiengcode/waterbus/issues) or contribute directly 🤓
👉 The Virtual Background feature supports on Android, iOS and MacOS
## ⚡ Current supported features
| Feature | Subscribe/Publish | Screen Sharing | Picture in Picture | Virtual Background | Beauty Filters | End to End Encryption |
| ------------------ | ----------------- | -------------- | ------------------ | ------------------ | -------------- | --------------------- |
| Android | 🟢 | 🟢 | 🟢 | 🟢 | 🟡 | 🟢 |
| iOS | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| MacOS | 🟢 | 🟢 | 🔴 | 🟢 | 🟢 | 🟢 |
| Web | 🟢 | 🟢 | 🟡 | 🟡 | 🟡 | 🟢 |🟢 = Available
🟡 = Coming soon (Work in progress)
🔴 = Not currently available (Possibly in the future)
> [!NOTE]
> - `AV1` supported on iOS 14 and above, Android 14 and above.
> - `E2EE` only supported `H264`, `VP8` and `VP9`
> - `Video codec Android supported`: Check at [Google Site](https://developer.android.com/guide/topics/media/platform/supported-formats#video-codecs)🖼️ Online Meeting Diagram
[![Diagram](./screenshots/waterbus-diagram-dark.png)](https://docs.waterbus.tech#gh-dark-mode-only)
[![Diagram](./screenshots/waterbus-diagram.png)](https://docs.waterbus.tech#gh-light-mode-only)## 🚀 Getting Started
To compile `Waterbus` from the source code, follow these steps:
1. Install [Flutter](https://flutter.dev).
2. Clone the Waterbus repository.
4. Run `flutter pub get` to download dependencies.
5. Run `flutter run` to start the app.## 🛠️ Building
These commands are intended for maintainers only.
### Android
Set keystore password if you use jks in this repo, or create your own
```bash
export KEY_WATERBUS_PASSWORD=banhcuon
export ALIAS_WATERBUS_PASSWORD=banhcuon
```Traditional APK
```bash
flutter build apk
```AppBundle for Google Play
```bash
flutter build appbundle
```### iOS
Pod install
```bash
cd ios
bash clean-pods.sh
``````bash
flutter build ipa
```### macOS
Pod install
```bash
cd macos
bash clean-pods.sh
``````bash
flutter build macos
```### Web
```bash
flutter build web
```## 🔥 Usage
1. Sign up for an account
2. Create a new meeting
3. Share the meeting link with other participants
4. Start the meeting and utilize the available features## ⏲️ Benchmarking
- This part is benchmarking video codecs within a 60-second duration of an online meeting on an iPhone 13 running iOS 17.0.2. The codecs included in the benchmark are VP8, VP9, H.264, H.265, and AV1.
- The benchmark aims to quickly compare the performance differences between these codecs during a short online meeting session.#### 📱 Device Specifications
- **Model:** iPhone 13
- **Operating System:** iOS 17.0.2## 🤝 Contributing
Contributions are welcome! Please feel free to submit a pull request or open an issue if you encounter any problems or have suggestions for improvements.
## 📧 Contact Information
If you have any questions or suggestions related to this application, please contact me via email: `[email protected]`.