livekit-server VS Pion WebRTC

Compare livekit-server vs Pion WebRTC and see what are their differences.

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] (by livekit)
Our great sponsors
  • Zigi - Close all those tabs. Zigi will handle your updates.
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarLint - Clean code begins in your IDE with SonarLint
  • Scout APM - Truly a developer’s best friend
livekit-server Pion WebRTC
5 65
3,260 10,296
- 1.1%
9.8 8.6
6 months ago 10 days ago
Go Go
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

livekit-server

Posts with mentions or reviews of livekit-server. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-05-27.

Pion WebRTC

Posts with mentions or reviews of Pion WebRTC. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-11-29.
  • WebTorrent
    14 projects | news.ycombinator.com | 29 Nov 2022
    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
    4 projects | dev.to | 27 Nov 2022
    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
    10 projects | news.ycombinator.com | 27 Nov 2022
    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
    7 projects | reddit.com/r/golang | 5 Oct 2022
    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
    3 projects | dev.to | 3 Oct 2022
    WebRTC GitHub Forum --- Use your GitHub account to join WebRTC-related forums or start a discussion of your own.
  • Using WebTransport
    6 projects | news.ycombinator.com | 16 Sep 2022
    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
    4 projects | reddit.com/r/rust | 7 Sep 2022
    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
    6 projects | reddit.com/r/golang | 11 Aug 2022
  • Golang open-source contribution
    8 projects | reddit.com/r/golang | 7 Aug 2022
  • Ask HN: Why is there no enterprise grade open-source zoom alternative?
    6 projects | news.ycombinator.com | 25 May 2022
    There's nothing particularly difficult on the server side — a quality SFU should be capable to handle on the order of 400 video flows per core, and there are quite a few high-quality free software SFUs available (Janus, Jitsi, ion-sfu, livekit, Galene). To give some perspective: we're using Galene for lectures, and our single-CPU server uses around 40% CPU usage in a room with 120 students (who keep their cameras switched off during the lecture, of course, and only occasionally switch them on to ask questions).

    As the grandparent mentioned, the problem is the client side. Since there is no standard videoconferencing protocol, every free software project needs to develop their own clients. And it's difficult for a free software project to have the manpower and expertise to develop quality clients for the web, Android and iOS, so in effect what we currently have are mostly half-baked web clients.

    There is some hope, though. The IETF have been working on standard protocols for ingress (https://datatracker.ietf.org/wg/wish/), and if their protocols get deployed, you'll be able to use the same streaming software (think OBS) or IP camera with multiple distinct videoconferencing servers. An interoperable interactive videoconferencing protocol is nowhere near, but as more people understand videoconferencing technology, there is some hope that people will get together and start working on multi-protocol clients (remember Pidgin?).

    Full disclosure: I'm the author of Galene (https://galene.org), and I've been actively participating in the Pion community (https://github.com/pion/webrtc) and collaborating with the authors of ion-sfu (https://github.com/pion/ion-sfu) and LiveKit (https://github.com/livekit).

What are some alternatives?

When comparing livekit-server and Pion WebRTC you can also consider the following projects:

mediasoup - Cutting Edge WebRTC Video Conferencing

janus-gateway - Janus WebRTC Server

aiortc - WebRTC and ORTC implementation for Python using asyncio

v4l - Facade to the Video4Linux video capture interface.

openvidu - OpenVidu Platform main repository

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

rtsp-simple-server - ready-to-use RTSP / RTMP / LL-HLS server and proxy that allows to read, publish and proxy video and audio streams

turn - Pion TURN, an API for building TURN clients and servers