Skip to content

nttcom/moq-wasm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

726 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MoQ WASM

Both server and browser client are written in Rust.

Demo page

Being Deployed to Github Pages.

Implementation

Supported version: draft-ietf-moq-transport-10

  • Control Messages
    • CLIENT_SETUP / SERVER_SETUP
    • GOAWAY
    • ANNOUNCE
    • SUBSCRIBE
    • SUBSCRIBE_UPDATE
    • UNSUBSCRIBE
    • ANNOUNCE_OK
    • ANNOUNCE_ERROR
    • ANNOUNCE_CANCEL
    • TRACK_STATUS_REQUEST
    • SUBSCRIBE_ANNOUNCES
    • UNSUBSCRIBE_ANNOUNCES
    • SUBSCRIBE_OK
    • SUBSCRIBE_ERROR
    • SUBSCRIBE_DONE
    • MAX_SUBSCRIBE_ID
    • ANNOUNCE
    • UNANNOUNCE
    • TRACK_STATUS
    • SUBSCRIBE_ANNOUNCES_OK
    • SUBSCRIBE_ANNOUNCES_ERROR
    • FETCH
    • FETCH_OK
    • FETCH_ERROR
    • FETCH_CANCEL
  • Data Streams
    • Datagram
    • Subgroup Stream
  • Features
    • Manage Publisher / Subscriber
    • Forword Messages
    • Priorities
    • Object Cache

Modules

moqt-core

  • Core module for both server and client
  • Includes handlers and data structures

media-streaming-format

  • MSF (Media Streaming Format) catalog structures (draft-ietf-moq-msf-00)

moqt-server

  • Module for server application

moqt-server-sample

  • Sample server application
    • Supported Roles: PubSub

moqt-client-wasm

  • Module for browser client and sample browser client application
    • Supported Roles: Publisher, Subscriber, PubSub
  • Exposes MSF catalog JSON helpers for browser integration

moqt-client-onvif

  • Client for IP cameras over RTSP/ONVIF (Raspberry Pi and Mac)
  • Includes moqt-onvif-client to bridge RTSP video + ONVIF commands over MoQ

How to run

Generating public and private keys for the server

cd moqt-server-sample
mkdir keys
cd keys
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -out cert.pem -subj '/CN=Test Certificate' -addext "subjectAltName = DNS:localhost"

Run moqt-server-sample

  • make server

if you want to watch tokio tasks, use tokio-console

cargo install tokio-console
tokio-console

Specify the log level

make server-trace

or

# Default setting is `DEBUG`
cargo run -p moqt-server-sample -- --log <Log Level>

Run moqt-client-wasm

cd js && npm install
make client
  • Add a certificate and Enable WebTransport feature in Chrome
# For Mac users
make chrome

Run moqt-client-onvif

cp .env.example .env
make onvif

ONVIF_IP / ONVIF_USERNAME / ONVIF_PASSWORD are read from .env.

MoQ bridge:

make onvif-moq

MOQT_URL is read from .env.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors