Skip to content

Draft 11-compliant Media-over-QUIC (MoQ) libraries for publisher, subscriber (moqtail-ts) and relay (moqtail-rs) components with a sample application using the Low Overhead Media Container (LOC) format.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

streaming-university/moqtail

Repository files navigation

MOQtail

Draft 11-compliant Media-over-QUIC (MoQ) libraries for publisher, subscriber (moqtail-ts) and relay (moqtail-rs) components with a sample application using the Low Overhead Media Container (LOC) format.

moqtail-ts (MOQtail TypeScript Library)

The TypeScript client library for Media-over-QUIC (MoQ) applications, designed for seamless integration with WebTransport and MoQ relay servers.

✨ Features

  • 🛡️ TypeScript: Type-safe development
  • 🔗 WebTransport: Next-gen transport protocol support
  • 🔥 Hot Module Reloading: Instant feedback during development

README available at: moqtail-ts/README.md

🚀 Getting Started

Prerequisites

Installation

# Clone the repository (if not already)
git clone https://github.com/streaming-university/moqtail.git

# Install dependencies
npm install

Running the Development Server

cd ./apps/client-js-demo

# Install dependencies
npm install

# Run the development server
npm run dev

Running the Relay

cd ./apps/relay

cargo run --bin moqtail-relay -- --port 4445 --cert-file fullchain.pem --key-file privkey.pem

The app will be available at http://localhost:5173 by default.

Running the MOQtail Room Server

cd ./apps/ws-server

# Install dependencies
npm install

# Run the development server
npm run start
# or
npm run dev # for nodemon hot-reload

The app will be available at http://localhost:5173 by default.

🛠️ Sample Project Structure

apps/client-js-demo/

├── public
│   ├── ...
├── src
│   ├── App.tsx
│   ├── composables
│   │   └── useVideoPipeline.ts
│   ├── contexts
│   │   └── SessionContext.tsx
│   ├── index.css
│   ├── main.tsx
│   ├── pages
│   │   ├── JoinPage.tsx
│   │   └── SessionPage.tsx
│   ├── sockets
│   │   └── SocketContext.tsx
│   ├── startup.ts
│   ├── types
│   │   ├── AppSettins.ts
│   │   └── types.ts
│   ├── videoUtils.ts
│   ├── vite-env.d.ts
│   └── workers
│       ├── decoderWorker.ts
│       └── pcmPlayerProcessor.js
├── ...

⚙️ Configuration

  • WebTransport: Ensure your browser supports WebTransport and that you have trusted the local CA, see relay/cert/README.md
  • Environment Variables: You can configure endpoints and other settings in .env files.

🤝 Contributing

Contributions are welcome! Please open issues or submit pull requests for improvements, bug fixes, or documentation updates.

📄 License

MIT APACHE

About

Draft 11-compliant Media-over-QUIC (MoQ) libraries for publisher, subscriber (moqtail-ts) and relay (moqtail-rs) components with a sample application using the Low Overhead Media Container (LOC) format.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Languages