All Projects → pion → rtsp-bench

pion / rtsp-bench

Licence: other
RTSP -> WebRTC Server that generates a CPU Usage report

Programming Languages

go
31211 projects - #10 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to rtsp-bench

rtsp-simple-proxy
DEPRECATED - please use https://github.com/aler9/rtsp-simple-server
Stars: ✭ 41 (-67.2%)
Mutual labels:  rtsp, rtp
Rtsp Client Server
Implementation of a streaming video server and client that communicate using the Real-Time Streaming Protocol (RTSP) and send data using the Realtime Transfer Protocol (RTP)
Stars: ✭ 415 (+232%)
Mutual labels:  rtsp, rtp
Desktopsharing
桌面共享, 支持RTSP转发, RTSP推流, RTMP推流。
Stars: ✭ 337 (+169.6%)
Mutual labels:  rtsp, rtp
useetv-playlist
No description or website provided.
Stars: ✭ 41 (-67.2%)
Mutual labels:  rtsp, rtp
Mts
Project of Multi-protocol Test Tool opensourced by Ericsson
Stars: ✭ 34 (-72.8%)
Mutual labels:  rtsp, rtp
Gb28181.solution
Linux/Win/Docker/kubernetes/Chart/Kustomize/GB28181/SIP/RTP/SDP/WebRTC/作为上下级域/平台级联互联
Stars: ✭ 323 (+158.4%)
Mutual labels:  rtsp, rtp
ZLMediaKit
WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11
Stars: ✭ 7,790 (+6132%)
Mutual labels:  rtsp, rtp
Monibuca
🧩 Monibuca is a Modularized, Extensible framework for building Streaming Server
Stars: ✭ 307 (+145.6%)
Mutual labels:  rtsp, rtp
Rtsp Simple Server
ready-to-use RTSP / RTMP server and proxy that allows to read, publish and proxy video and audio streams
Stars: ✭ 882 (+605.6%)
Mutual labels:  rtsp, rtp
Rtspserver
RTSP Server , RTSP Pusher
Stars: ✭ 479 (+283.2%)
Mutual labels:  rtsp, rtp
ipchub
一个即拷即用、支持摄像头集中管理、多级路由及h5播放的流媒体服务器。
Stars: ✭ 138 (+10.4%)
Mutual labels:  rtsp, rtp
Media Server
RTSP/RTP/RTMP/FLV/HLS/MPEG-TS/MPEG-PS/MPEG-DASH/MP4/fMP4/MKV/WebM
Stars: ✭ 1,363 (+990.4%)
Mutual labels:  rtsp, rtp
Rtspclientsharp
Pure C# RTSP client for .NET Standard without external dependencies and with true async nature. I welcome contributions.
Stars: ✭ 348 (+178.4%)
Mutual labels:  rtsp, rtp
Lal
🔥 Golang live stream lib/client/server. support RTMP/RTSP/HLS/HTTP[S]-FLV/HTTP-TS, H264/H265/AAC, relay, cluster, record, HTTP API/Notify, GOP cache. 官方文档见 https://pengrl.com/lal
Stars: ✭ 480 (+284%)
Mutual labels:  rtsp, rtp
Rtp Streamer
rtp record and rtp streamer
Stars: ✭ 60 (-52%)
Mutual labels:  rtsp, rtp
Media Stream Library Js
JavaScript library to handle media streams on the command line (Node.js) and in the browser.
Stars: ✭ 192 (+53.6%)
Mutual labels:  rtsp, rtp
retina
High-level RTSP multimedia streaming library, in Rust
Stars: ✭ 80 (-36%)
Mutual labels:  rtsp
werift-webrtc
WebRTC Implementation for TypeScript (Node.js), includes ICE/DTLS/SCTP/RTP/SRTP
Stars: ✭ 228 (+82.4%)
Mutual labels:  rtp
v4l2web
V4L2 web interface
Stars: ✭ 20 (-84%)
Mutual labels:  rtsp
janus-gateway-live
RTMP edge speed with janus-gateway
Stars: ✭ 38 (-69.6%)
Mutual labels:  rtp

Pion WebRTC
RTSP Bench

RTSP Server that generates usage reports, Web/CLI Clients included!

Pion webrtc Slack Widget
License: MIT


rtsp-bench is a WebRTC server that pulls from an RTSP feed, and then re-distributes via WebRTC. It generates a report.csv with the CPU Usage and connected PeerConnection count.

This repo contains a CLI WebRTC Client that will connect and perform the load test. This is done via a REST API hosted on :8080/doSignaling. You can also watch the video/load test via the web UI at :8080/, it connects via the same REST API as the CLI.

This project heavily borrows from RTSPtoWebRTC. If you are looking for a full featured application to deploy that is probably a better choice. It is driven by a config file and has proper error handling.

Running

  • export GO111MODULE=on
  • git clone https://github.com/pion/rtsp-bench.git
  • cd rtsp-bench/server
  • go run main.go

You can then access the Web UI at http://localhost:8080. This requires a browser that supports H264, this repo doesn't do any error handling around signaling failures.

You can also use the provided WebRTC CLI

  • cd rtsp-bench/client
  • go run main.go localhost:8080

In the server folder you will have a reports.csv that looks like

timestamp, peerConnectionCount, cpuUsage
2020-12-15T13:59:23-08:00, 1, 17.878028
2020-12-15T13:59:26-08:00, 0, 35.101254
2020-12-15T13:59:29-08:00, 1, 12.565718
2020-12-15T13:59:32-08:00, 1, 20.600500
2020-12-15T13:59:35-08:00, 1, 17.878028
2020-12-15T13:59:38-08:00, 0, 41.795438
2020-12-15T13:59:41-08:00, 0, 37.083333

Results

The following graph was generated from the results.csv that was generated by the server. The client was run from another EC2 instance in the same VPC. The Y Axis is the CPU Usage, and the X Axis is the count of PeerConnections. This was run on a m4.2xlarge (Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz)

Results Graph

FAQ

What codec/bitrate was being distributed

H264 that is approximately 250 Kb/s. You can change that here

What SRTP Cipher was used

SRTP_AEAD_AES_128_GCM

What Congestion Control/Feedback is used

None, on purpose.

Pion by design allows the user to specify what they want. We are distributing a video feed that is already encoded, and has a very small keyframe-interval so these things don't help us.

When setting up the PeerConnection you have full control of the RTP/RTCP pipelines, so users can add TWCC/NACK/FEC in a way that works for them.

I want to talk about cool WebRTC stuff!

Join the Pion Slack

Community

Pion has an active community on the Golang Slack. Sign up and join the #pion channel for discussions and support. You can also use Pion mailing list.

We are always looking to support your projects. Please reach out if you have something to build!

If you need commercial support or don't want to use public methods you can contact us at [email protected]

License

MIT License - see LICENSE for full text

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].