Skip to content

johnfxhayes/m1-spatialaudioserver

 
 

Repository files navigation

m1-spatialaudioserver

Frontend & Backend for serving custom streaming spatial audio players with included web playback example

Client Endpoint Examples

These are example codebases that are designed to be playback clients for a server deployed by this repo.

Setup

The current stack included 3 docker containers: Nginx server (main transcoder with HLS and DASH support), Redis, and Node.js (API). You can change default environment variables for the dashboard and API, just create .env files in vue-front and koa-server dirs (you can skip this stage):

Code Quality

This project uses pre-commit for automated code quality checks:

# One-time setup
pip install pre-commit
pre-commit install

# Manual check (optional)
pre-commit run --all-files

Environment Configuration

Default .env file for vue-front:

VUE_APP_API_URL='http://localhost:8080' # the main URL
VUE_APP_STREAM_URL='http://localhost:8080' # additional transcoder URL, the default URL for streaming (hls, dash and rtmp)
VUE_APP_API_PATH='/api' # The default url path for API

Default .env file for koa-server:

ADMIN_NICKNAME='m1'
ADMIN_PASSWORD='goodpassbro'
ADMIN_EMAIL='whatsup@mach1.tech'
Use Makefile commands to setup and build all of them:
make build
Run all containers localy:
make local

More information and command examples you can check in docker containers documentation

  • After launch run docker network inspect m1-network to identify the IP address and edit the container ip address found in ./container/nginx/uploader.lua: line ~33 redis:connect()

Usage

Quickly build and deploy hosted spatial audio experiences & streams designed around Mach1 Spatial and leveraging the Mach1Decode API & Mach1Transcode API to unify playback of all multichannel and spatial audio formats.

Admin Page

This page is designed for administration over spatial mixes to easily allow users to upload and manage playlists.

Admin Page

Spatial Player Page

This page acts as a template for the client playback, it will play any existing streams or uploaded content from the Admin Page and is based on https://github.com/Mach1Studios/m1-web-spatialaudioplayer

Spatial Player Page

Development

This repo is still in development and is deemed experimental and unstable until further notice.

To Do:

  • Mach1Transcode audio transcoding support
  • Playlisting support
  • Https deployment
  • User / Group handling

About

Backend for serving custom streaming spatial audio players and includes a frontend web client example

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Vue 43.3%
  • JavaScript 42.4%
  • Makefile 4.9%
  • Dockerfile 4.2%
  • Lua 3.6%
  • Shell 1.4%
  • HTML 0.2%