Aggiunge overlay server-side burn-in e stabilizza diretta live.

Tabellone, badge e brand sono ricodificati nel flusso _air via OverlayRelay;
sync punteggio HTTP, volume condiviso rails/sidekiq, qualità 720p migliorata
e badge CONNECTING in ripresa da pausa.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-03 23:55:17 +02:00
parent fd225fbadd
commit ab9cb02083
58 changed files with 2423 additions and 242 deletions

View File

@@ -17,6 +17,8 @@ Al termine di ogni diretta Premium, MediaMTX registra i segmenti. Sidekiq unisce
### 1. Registrazione automatica
Pipeline: `Sessions::Stop``FinalizeSession``UploadJob` → storage.
MediaMTX registra **solo mentre il telefono pubblica** (RTMP connesso). In pausa o con sola slate `alwaysAvailable` la registrazione è disattivata, così il replay non contiene minuti di schermo «Trasmissione in pausa».
### 2. Retention e purge
`Recordings::PurgeExpiredJob` / `rails recordings:purge_expired`
@@ -86,11 +88,31 @@ bash scripts/setup_garage_production.sh # garage.prod.toml, bucket, chiavi →
- `REPLAY_STORAGE_ACCESS_KEY_ID` = Key ID Garage (es. `GK...`)
- `REPLAY_STORAGE_SECRET_ACCESS_KEY` = Secret mostrato una sola volta alla creazione chiave
## Cron consigliati (produzione)
## Cron (produzione)
```cron
0 3 * * * cd /opt/matchlivetv/infra && docker compose exec -T rails bundle exec rails recordings:purge_expired
0 8 * * * cd /opt/matchlivetv/infra && docker compose exec -T rails bundle exec rails recordings:expiry_warnings
Installazione sul server:
```bash
cd /opt/matchlivetv/infra
bash scripts/install_production_cron.sh
```
Job attivi (utente `eminux`):
| Orario | Task |
|--------|------|
| 03:00 | `recordings:purge_expired` — elimina replay scaduti (DB + Garage) |
| 08:00 | `recordings:expiry_warnings` — email avviso scadenza (7 gg) |
Log: `/opt/matchlivetv/log/cron-replay.log`
### Capacità Garage
Allinstallazione, `setup_garage_production.sh` assegna ~**(disco libero 20 GB)** al nodo.
Per ridimensionare dopo:
```bash
bash scripts/garage_set_capacity.sh 85G # oppure senza argomento: calcolo automatico
```
## API mobile