1
0

Add audio validation, seamless transitions, and quality improvements for music streaming

This commit is contained in:
2025-11-12 10:54:25 -05:00
parent 86a79d0cc0
commit 1f89e8d243
7 changed files with 191 additions and 64 deletions

View File

@@ -26,7 +26,7 @@ docker-compose up
docker run -p 3000:3000 -p 8080:8080 ghcr.io/sethwv/ws4kp-to-hls:latest
```
**Note**: Initial build takes an additional ~90 seconds due to downloading the Weatherscan music collection (~500MB).
**Note**: Initial build takes an additional ~90 seconds due to downloading and processing the Weatherscan music collection (~500MB, processed to VBR q6 quality with normalization).
## Usage
@@ -106,6 +106,7 @@ ffmpeg -i "http://localhost:3000/stream?url=http://example.com" \
- `height` (optional): Video height in pixels (default: 1080)
- `fps` (optional): Frames per second (default: 30)
- `hideLogo` (optional): Set to `true` to hide Logo3.png image (default: false)
- `refreshInterval` (optional): Page refresh interval in minutes (default: 90)
**Weather endpoint (`/weather`)**:
- `city` (optional): City name in `City,State,Country` format (default: Toronto,ON,Canada)
@@ -119,6 +120,7 @@ ffmpeg -i "http://localhost:3000/stream?url=http://example.com" \
- `height` (optional): Video height in pixels (default: 1080)
- `fps` (optional): Frames per second (default: 30)
- `hideLogo` (optional): Set to `true` to hide ws4kp Logo3.png image (default: false)
- `refreshInterval` (optional): Page refresh interval in minutes (default: 90)
- **Forecast Section Toggles** (all optional, use `true` or `false`):
- **Commonly used sections** (default: true):
- `showHazards`: Weather alerts and hazards
@@ -144,33 +146,4 @@ ffmpeg -i "http://localhost:3000/stream?url=http://example.com" \
3. FFmpeg encodes the screenshots into an HLS stream (H.264 video, AAC audio for weather)
4. For weather streams: background music is shuffled and played from the Weatherscan collection
5. The HLS stream is piped directly to the HTTP response
6. City names are automatically geocoded to coordinates via OpenStreetMap's Nominatim API
## Development
```bash
# Install dependencies
yarn install
# Run locally (requires Chrome and FFmpeg)
yarn start
```
## Health Check
```bash
curl http://localhost:3000/health
```
## Notes
- The stream continues indefinitely until the client disconnects
- Each request creates a new browser instance
- Memory usage scales with the number of concurrent streams
- Weather streams include automatic geocoding (adds ~200-500ms initial latency)
- Background music for weather streams is shuffled from a collection of Weatherscan tracks
- Multi-platform Docker image available for AMD64 and ARM64 architectures
## License
MIT
6. City names are automatically geocoded to coordinates via OpenStreetMap's Nominatim API