In the current version, you can share your screen, window, tab, or multiple files. This app uses Socket.io to manage some metadata for peers and files. The data is shared directly between peers without a server in the middle. All direct peers share the same stream or downloaded files to increase your audience and overcome limitations.
This is achieved using the WebRTC standard. A Google STUN server is used to establish connections between peers, but you can use your own STUN server if you host the app yourself. All metadata in this app is temporary and will be lost if the server restarts.
🚨 New Feature: Meeting 🚨
We're excited to announce our latest feature! You can now create a room for instant or scheduled meetings. Participants can join using their webcam and microphone, and even share their screens. Get ready to enhance your collaboration experience!
- How it works?
- Table of Contents
- Try It
- Meeting
- Stream Settings
- Getting Started
- Limitations
- Source Code
- Support
You can find a running instance at peerwave.org
Our new meeting feature provides a comprehensive set of tools designed to enhance your communication and collaboration experience. Below is a detailed overview of each capability:
- Description: Engage in real-time text conversations alongside video meetings.
- Usage: Accessible via the chat icon within the meeting interface.
- Description: Participate in meetings using audio-only mode.
- Usage: Select the voice-only option when creating the meeting.
- Description: Create meetings that can either be scheduled for a future time or initiated instantly.
- Usage: Use the Schedule or Instant when you set up a meeting.
- Description: Express emotions and reactions using a variety of emojis during meetings.
- Usage: Access the emoji panel within the meeting interface.
- Description: Toggle between different cameras and microphones during the meeting.
- Usage: Use the bottom menu within the meeting interface to switch devices.
- Description: Control your audio input by muting or unmuting your microphone.
- Usage: Click the microphone icon to mute or unmute during the meeting.
- Description: Turn your camera on or off during the meeting as needed.
- Usage: Click the camera icon to enable or disable your video feed.
- Description: Share your screen to present documents, slides, or other content.
- Usage: Click the screen sharing button and select the screen or window you wish to share.
- Description: Optimize bandwidth usage by setting a maximum camera resolution.
- Usage: Adjust the camera resolution settings when you set up the meeting.
- Description: Indicate that you wish to speak without interrupting the conversation.
- Usage: Click the raise hand icon to notify the host and participants.
- Description: Select different audio outputs in Chrome and test sound settings to ensure optimal audio performance.
- Usage: Select Sound Output before joining the meeting. You can also test it.
These features are designed to provide a versatile and user-friendly meeting experience, enabling effective communication and collaboration.
You can crop the hosted video with an experimental API that has not yet been standardized. As of 2024-06-19, this API is available in Chrome 94, Edge 94 and Opera 80.
You can resize the hosted video with an experimental API that has not yet been standardized. As of 2024-06-19, this API is available in Chrome 94, Edge 94 and Opera 80.
# Install dependencies for server
npm install
# Run the server
node server
# Building the image
docker build --tag peerwave .
# Run the image in a container
docker run -d -p 4000:4000 peerwave
Image: simonzander/peerwave
# Pull the image from Docker Hub
docker pull simonzander/peerwave
# Run the image in a container
docker run -d -p 4000:4000 peerwave
The main limitation is your upload speed, which is shared with your direct peers. If you are streaming, factors like the codec, resolution, and quick refreshes can increase your CPU (for VP8/VP9) or GPU (for H.264) load and affect your upload speed. The Chrome browser can handle up to 512 data connections and 56 streams.
If you are sharing files, the file size and the number of files increase your memory usage. The files are splitted in chunks and your peers share also your downloaded file and hold the data in their memory.
This is an open-source project licensed under the MIT license.
If you like this project, you can support me by buying me a coffee. Feature requests and bug reports are welcome.