Pion WebRTC
peerjs
Our great sponsors
Pion WebRTC | peerjs | |
---|---|---|
67 | 16 | |
10,663 | 10,934 | |
1.8% | 0.8% | |
7.9 | 8.0 | |
2 days ago | 9 days ago | |
Go | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Pion WebRTC
-
Faster MySQL with HTTP/3
You can run all your WebRTC traffic off a single port. You use the remote 3 tuple (IP, Port, Protocol) to demux traffic.
https://github.com/pion/webrtc/tree/master/examples/ice-sing... is one example of that.
-
WebTorrent
I originally went the same route as you, and found that https://github.com/pion/webrtc is probably the best package out there for webrtc. I learned go just for it, and it paid off tenfold. Less memory, more connections, lower latency.
-
WebRTC 102: Understanding libWebrtc
The "Mediasoup" project provides a high level JavaScript/TypeScript interface to the WebRTC APIs. The core logic of this project is implemented in C++/Rust. Consider taking a look at the project if you want an easy-to-use library instead of the low-level libWebRTC APIs. A notable project to mention is the Pion/webrtc project which has a Golang implementation of the WebRTC API. Of course, we should mention the rust port WebRTC.rs. Let’s keep all the rustaceans happy too!
-
Ask HN: FFmpeg real-time desktop streaming
What latency are you trying to do? Will the professor being communicating with the students while doing this? Will the students all have the same bandwidth, or will you want multiple renditions (low, med, high quality levels)?
If you want AV1 you will not be able to use RTMP. The protocol is orphaned/deprecated, so avoid if possible!
If I was building it this is what I would do, and my reasoning.
* For capture + encoding I would use OBS. You will want to use something that is easy for users to install configure. Professors will also have lots of custom requirements when it comes to layout etc... it will be tempting to do a ffmpeg command directly, but it will fall apart quick I believe.
* To get AV1 out of OBS I would use FFMPEG output. I would have it send RTP. RTP is used to carry video in a sub-second manner. This is the same protocol that WebRTC uses. You know have AV1 + low latency.
* Then for users to watch I would use WebRTC. That will allow them to watch in their web browser. Conceptually it will be like this https://github.com/pion/webrtc/tree/master/examples/rtp-to-w... this takes the RTP packets and puts them in the browser.
Lots of great projects exist that you could use for 'RTP -> WebRTC' like https://galene.org/ and https://livekit.io/ I would suggest checking them all out!
If you have more questions/want to talk to people in the video space always happy to chat on https://pion.ly/slack :)
-
Building my first go project, looking for package/resource suggestions
For streaming video content your options would be HLS or WebRTC, maybe look into these gwuhaolin/livego and pion/webrtc.
-
WebRTC Tutorials: 36 Essential Learning Resources
WebRTC GitHub Forum --- Use your GitHub account to join WebRTC-related forums or start a discussion of your own.
-
Using WebTransport
Do you still see challenges with doing WebRTC on a server? I work on https://github.com/pion/webrtc so would love to hear what could be better :)
-
Announcing webrtc 0.5.0
We've just released version 0.5.0 of the webrtccrate. This crate is a port of a Go project called Pion. It's a complete implementation of WebRTC in Rust, allowing you to build backends for media applications.
- Golang updating the front-end with almost real-time events from the backend server
- Golang open-source contribution
peerjs
-
Ask HN: Those making $0/month or less on side projects – Show and tell
You might be able to eliminate the VPS by making it P2P using something like PeerJS [1]. PeerJS provides a free shared connection broker server.
[1]: https://peerjs.com/
-
We just release our first version of TOONKS, a 3D Multiplayer Game where you can play a tiny tank against your friends directly on your browser without any installation.
We use peer.js module to create a WebRTC connection between clients
-
CRDTs and Distributed Consistency - Part 3: Building a distributed counter
Now that we have all the required boilerplate we can start building the actual game. For the communications between peers we are going to use PeerJS a peer-to-peer library built on top of WebRTC.
-
Multiplayer in Augmented Reality
I am using https://peerjs.com/. I am currently using their default brokering system (which is the default out-of-the-box). it seems (when necessary) i am able to run my own version as provided at: https://github.com/peers/peerjs-server
- Networking of a Turn-Based Game
-
How would you create a board game backend?
Without backend, you can choose WebRTC for all communication b/w players. peerjs is a good library for that. However, I would still suggest not to take this approach as it can be overwhelming.
-
🍿My lockdown project Flickcall - transforming streaming platform to virtual movie theaters [Demo attached]
Peerjs library for webRTC
-
Live video streaming with react and nodejs?
Check out https://peerjs.com/. It's a good library, especially for one-on-one calls. It's P2P. When you start adding more users, it does tend to cause some performance issues, but it works well for smaller projects.
-
PeerJS – Simple peer-to-peer with WebRTC
Fun fact about PeerJS, you'll need a server in order to use it (look into STUN/TURN/ICE for more info). The maintainer seems to be hosting one default instance that goes down from time to time. https://github.com/peers/peerjs/issues/671 https://github.com/peers/peerjs/issues/693
If you're looking to do "pure" P2P in the browser, we're not there yet as we cannot accept incoming connections without something in between right now.
What are some alternatives?
mediasoup - Cutting Edge WebRTC Video Conferencing
livekit-server - Scalable, high-performance WebRTC SFU. SDKs in JavaScript, React, React Native, Flutter, Swift, Kotlin, Unity/C#, Go, Ruby and Node. [Moved to: https://github.com/livekit/livekit]
simple-peer - 📡 Simple WebRTC video, voice, and data channels
janus-gateway - Janus WebRTC Server
aiortc - WebRTC and ORTC implementation for Python using asyncio
Socket.io - Realtime application framework (Node.JS server)
v4l - Facade to the Video4Linux video capture interface.
libdatachannel - C/C++ WebRTC network library featuring Data Channels, Media Transport, and WebSockets
go-m3u8 - Parse and generate m3u8 playlists for Apple HTTP Live Streaming (HLS) in Golang (ported from gem https://github.com/sethdeckard/m3u8)
gst - Go bindings for GStreamer (retired: currently I don't use/develop this package)
ion - Real-Distributed RTC System by pure Go and Flutter
SIPSorcery - A WebRTC, SIP and VoIP library for C# and .NET. Designed for real-time communications apps.