moq-cli
A command-line tool for publishing and subscribing to media over MoQ. It works with FFmpeg for encoding and decoding.
Install
Docker
Multi-arch images (linux/amd64 and linux/arm64) are published to Docker Hub.
Usage
moq-cli routes endpoints onto a shared MoQ Origin: moq <MoQ side> <import|export> <endpoint>. The MoQ side (before the verb) is either --client-connect <url> (dial a relay) or --server-bind <addr> (self-host). import moves media into MoQ, export moves it out. The endpoint is a container format (fmp4, ts, flv, ... read from stdin / written to stdout), or a gateway (hls, rtmp, srt, rtc). A build with the play feature can also render a broadcast locally with moq <MoQ side> play.
Separate additional stages with -- to bridge several broadcasts (or both directions) over one connection, each naming its own --broadcast:
Publish to a remote relay
| \
Subscribe from a remote relay
| \
Play the broadcast in a native window and speaker (requires --features play when building):
Self-host: publish into a local relay
Hosts a MoQ server and publishes a single broadcast read from stdin into it. Useful for local testing without a separate relay process.
| \
Self-host: subscribe to an inbound broadcast
Hosts a MoQ server and writes an incoming broadcast's media to stdout. The inverse of the above.
|
Import formats
avc3raw H.264 Annex-B from stdinfmp4fragmented MP4 from stdin