next-webrtc
next-webrtc copied to clipboard
An open source, privacy focused, in browser, live screen share and webcam video recorder
⚠️ This project is not being maintained actively. I will get back to it if time permits. Thank you all for all your support even after this being inactive for so many days.. 👍
An open source live screen share and webcam video recorder
-
An open source live screen share and webcam video recorder
- Deploy your instance
- Features
-
Contributions
- Requirements
- Code structure
- How to run
- .env contents
- How to build
- TO DO
Deploy your instance
- Deploy the backend project to some cloud (heroku etc) to consume websockets.
- Deploy the frontend project to vercel with single click
- Add required env variables
- NEXT_PUBLIC_WEBSOCKET_URL - URL to your websocket server. The backend deployment. If you want to use meeting feature
- NEXT_PUBLIC_URL - URL of your site
- NODE_ENV -
development
orproduction
Features
- Background removal
- Virtual backgrounds
- Background blur
Contributions
Welcome :)
Requirements
- Node >= v15.x
- npm >= v7
- yarn 1.x
Code structure
- It is a monorepo managed by yarn
- There are two packages backend and frontend
- Backend is just a small websocket server used for signaling
- Frontend is actual UI built with nextjs
- It uses google stun server for populating ice candidates
How to run
- Install all dependencies using
yarn --frozen-lockfile
- add
.env
see the contents below - run backend using
yarn workspaces @openrtc/backend start
- run frontend using
yarn workspaces @openrtc/frontend start
.env contents
NEXT_PUBLIC_WEBSOCKET_URL=wss://localhost:4000/
NODE_ENV=development
NEXT_PUBLIC_URL=http://localhost:3000
How to build
- You dont need to build backend
- You can build frontend package with
yarn workspaces @openrtc/frontend build
command
TO DO
- Handle if someone stops screen share in recording vlog
- This currently stops recording
- Ideally it should keep on recording but change video from screen to user
- First time visitor faces lag in audio recording
- First time visitor can not see small PiP video
- Microphone volume control
- Ability to name the video file - Currently it uses ISO date time string