A simple, lightweight WHIP/WHEP server. It accepts video as WHIP and publishes video as WHEP.
This server is intended to make testing and development of WHIP/WHEP clients easier as well as to provide a minimal, easy to understand and hack implementation of the protocol. It is not intended for production use.
Looking for a production-ready WHIP/WHEP server? Check out LiveKit! It's a full-featured, scalable, and production-ready video conferencing platform that supports WHIP/WHEP.
docker run -p 8080:8080 kevmo314/tinywhip
go run cmd/main.go
Optionally,
PORT=8080 go run cmd/main.go
Run the server
go run cmd/main.go
In a separate terminal, run the client
go run examples/publisher/main.go http://localhost:8080 testvideo
This will print out a track id in the server:
2023/01/13 12:09:47 Adding track: 3e3c9c71-3a2d-4a72-a21f-8f9cae60a4ed
Then in one more terminal, run the subscriber with this track id
go run examples/subscriber/main.go http://localhost:8080/3e3c9c71-3a2d-4a72-a21f-8f9cae60a4ed
For a more fun (and realistic) experience, check out the OBS WHIP support or ffmpeg-whip to publish real video instead of a test pattern.
The WHIP endpoint is /
. An SDP posted to that endpoint will be ingested according to the WHIP specification.
The WHEP endpoints are /<id>
, where <id>
is the stream ID. The WHEP stream will be published according to the WHEP specification.