https://github.com/sergiocrisostomo/node-audio-server
Audio server and player, for Node.js and JavaScript client
https://github.com/sergiocrisostomo/node-audio-server
audio audio-chunks audio-player audio-streaming bitrates nodejs player
Last synced: 15 days ago
JSON representation
Audio server and player, for Node.js and JavaScript client
- Host: GitHub
- URL: https://github.com/sergiocrisostomo/node-audio-server
- Owner: SergioCrisostomo
- Created: 2020-07-21T19:16:31.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T20:55:16.000Z (almost 3 years ago)
- Last Synced: 2025-07-28T06:32:04.412Z (3 months ago)
- Topics: audio, audio-chunks, audio-player, audio-streaming, bitrates, nodejs, player
- Language: JavaScript
- Homepage:
- Size: 13.5 MB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# Node audio server
---
This project aims to create a server and client for serving audio between Node.js and browser.
## API exposure
(more details soon)
- `createPlaylist` - method to create playlists, ie generate audio files and a `.json` manifest file). The `.json` file serves the same purpose as a DASH `.mpd` file or a HLS `.m3u8` file.
- `serveAudio` - function to get audio chunks with a very basic cache layer
- `startServer` - Not implemented yet. A node.js server implementation to serve audio.
- `player` - Not implemented yet, work in progress. Client side player.## Where the project is at now:
Creating a prototype (PoC) player with some of the Roadmap functionality. WIP.
## Roadmap:
- [x] generate playlists with different bitrates from WAV files
- [x] middleware to serve audio chunks
- [x] test consuming sequential chunks using MSE api
- [x] client side player with basic functionality (prototype)
- [x] load chunks on demand (no need to download all chunks if the player is paused)
- [x] show what parts are downloaded in the progress bar
- [x] enable seek
- [x] enable encryption in server-client audio data (clear key)
- [ ] use different bitrates depending on network performance
- [ ] audio play tracking and more DRM analytics
- [ ] use flac and opus (currently only .mp4 container is implemented)
- [ ] client side player
- [ ] in React
- [ ] in Vue.js
- [ ] vanilla js## How to contribute:
- feel free to reach out
- install, check the tests or check the dev-server with `npm run dev` and open `localhost:3000` in your favorite browser## Dependencies
#### At file conversion time (`createPlaylist` API)
- [ffmpeg](https://ffmpeg.org/)
- [Bento4](https://github.com/axiomatic-systems/Bento4)