shishirng 26eea78b54 Telemetry connection scores (#377)
* octets - total bytes needs to be uint64

uint32 wraps at 4GB

Signed-off-by: shishir gowda <shishir@livekit.io>

* Cleanup stats handler to use connectionQuality stats

remove per packet rtcp handlers, buffer stats

* cleanup connection stats

* Update mediatrack to store rtcp stats in connection stats

* Update downstream handling of connection stats and telemetry

* Update telemetry tests

Signed-off-by: shishir gowda <shishir@livekit.io>

* Misc fixes

Signed-off-by: shishir gowda <shishir@livekit.io>

* Minor fix to avoid accessing buffer before its allocated

Signed-off-by: shishir gowda <shishir@livekit.io>

* start updateStats worker in AddReciever()

Signed-off-by: shishir gowda <shishir@livekit.io>

* Use previous score to calculate avg scores

* Restructure connectionStats

Signed-off-by: shishir gowda <shishir@livekit.io>
2022-01-27 11:24:54 -05:00
2021-12-14 17:15:08 -08:00
2022-01-19 02:13:06 -08:00
2022-01-27 11:24:54 -05:00
2022-01-05 17:56:00 -08:00
2021-08-30 11:35:03 -07:00
2022-01-17 23:54:04 -08:00
2022-01-25 09:23:22 -07:00
2022-01-24 18:22:10 -07:00
2021-06-03 23:22:19 -07:00
2022-01-21 15:13:44 -08:00

LiveKit - Open source, high performance WebRTC infrastructure

LiveKit is an open source project that provides scalable, multi-user conferencing over WebRTC. It's designed to give you everything you need to build real time video/audio/data capabilities in your applications.

LiveKit is written in Go, using the awesome Pion WebRTC implementation.

Features

  • Scalable, distributed WebRTC SFU (Selective Forwarding Unit)
  • Modern, full-featured client SDKs for JS, React, iOS, Android, and Flutter
  • Built for production - JWT authentication and server APIs
  • Robust networking & connectivity. UDP/TCP/TURN
  • Easy to deploy - single binary, docker & kubernetes
  • Advanced features - speaker detection, simulcast, selective subscription, moderation APIs, and webhooks.

Documentation & Guides

Docs & Guides at: https://docs.livekit.io

Try it live

Head to our playground and give it a spin. Build a Zoom-like conferencing app in under 100 lines of code!

SDKs & Tools

Client SDKs:

Server SDKs:

Tools:

Quickstart

Generate config file and keys

docker run --rm -v$PWD:/output livekit/generate --local

The above command generates a livekit.yaml you can use to start LiveKit. It'll contain an API key/secret pair you can use with your LiveKit install.

Starting with docker

docker run --rm -p 7880:7880 \
    -p 7881:7881 \
    -p 7882:7882/udp \
    -v $PWD/livekit.yaml:/livekit.yaml \
    livekit/livekit-server \
    --config /livekit.yaml \
    --node-ip <machine-ip>

When running with docker, --node-ip needs to be set to your machine's IP address. If the service will be exposed to the public Internet, this should the machine's public IP.

Test with example app

Head over to the example app and enter the generated token to connect to your LiveKit server. This app is built with our React SDK.

Once connected, your video and audio are now published to your new LiveKit instance!

Generating access tokens (JWT)

To add more users to a room, you'll have to create a token for each participant. Learn more about access tokens.

livekit-server provides a convenient sub-command to create a development token. This token has an expiration of a month, which is useful for development and testing, but not appropriate for production use.

docker run --rm -e LIVEKIT_KEYS="<api-key>: <api-secret>" \
    livekit/livekit-server create-join-token \
    --room "<room-name>" \
    --identity "<participant-identity>"

Deploying to server

Deployment Docs: https://docs.livekit.io/guides/deploy

Single node server

Use our deploy config generator to set up a single node deployment with automatic TLS termination and built-in TURN.

It includes a cloud-init/setup script that's supported by most cloud environments.

docker run --rm -it -v$PWD:/output livekit/generate

Kubernetes

We publish a helm chart that helps you to set up a cluster with high availability. For detailed instructions, see Kubernetes guide

Testing your deployment

Use the connection tester to ensure your installation is set-up properly for user traffic.

Building from source

Pre-requisites:

  • Go 1.15+ is installed
  • GOPATH/bin is in your PATH

Then run

git clone https://github.com/livekit/livekit-server
cd livekit-server
./bootstrap.sh
mage

Contributing

We welcome your contributions to make LiveKit better! Please join us on Slack to discuss your ideas and/or submit PRs.

License

LiveKit server is licensed under Apache License v2.0.

Description
Languages
Go 99.8%
Shell 0.1%