TVplayer
Jde o jednoduchý SW zejména určený pro malé obce které chtějí pro občany zajistit distribuci televizního vysílání z obce.
Návrh
Požadované komponenty:
- Web server (Apache, nginx, ..)
- Databaze (MariaDB)
- FTP/SCP server
- FFmpeg
- Bash
- ....
Vlastní řešení se bude skládat z několika samostatných částí - SW:
- Web rozhraní pro administrativu a správu
- API rozhraní pro vázané komponenty (služby)
- Přehrácač - služba bežící ve screne a zajištující přehrání požadovaneho programu
- Spouštěč - služba systemd zajištující spustění jednotlivých přehravačů ve srene
Spouštěč
Služba, servisd (asi bash) zajištující spoštění jednotlivých kanálů. Ty načte přes API a pod názvem ID kanálu je ve screeně spustí. Také ověřuje (v cca 1 minuta) zda nepřibyl nový kanál, případně některý není ukončen. Pokud budu umět předat parametr @idkanalu (v rámci systemd), tak by případně restartoval/ukončil/spustil jen tento konrétní kanál nezávisle na API.
Vstupní parametry:
- file (/etc/default/tvplayer) z parametry:
- URL adresa API serveru (http://127.0.0.1/api1)
- KEY pro autentizaci (zatim neaplikovano)
API dotaz
- channels - seznam kanálů, které se mají spustit (yml, json)
Přehravač
Program (asi bash) který zajistí spuštění ffmpegu z potřebnými parametry. Nastaví ochranu, jak dlouho se má konkretní program přehrávat. Po skončení aktuálně hraného programu se zeptá přes API, co dál přehrávat. Pokud nedostane odpově, pustí založní stream, viz pocatecni nastaveni přes API při spusštění.
Vstupní parametry:
- URL z adresou API (http://127.0.0.1/api1)
- ID názvu TV kanálu
- Key pro oveření přístupu (zatim nepouzito)
Při spuštění si načte přes API
- Parametry vystupu (nastaveni pro ffmpeg pro předávání streamu)
- Parametry pro záložní stream (pokud nebude odpověd na další program)
- Parametry aktuálního streamu
- Doba, jak dlouho se ma stream maximálně přehrávat
- Zdroj streamu (soubor, live, cizí odkaz, ...)
- Parametry pro předání