namespace NostrStreamer; public class Config { /// /// Bitcoin network /// public string Network { get; init; } = "mainnet"; /// /// Ingest URL /// public Uri RtmpHost { get; init; } = null!; /// /// SRS app name /// public string App { get; init; } = "live"; /// /// SRS api server host /// public Uri SrsApiHost { get; init; } = null!; /// /// SRS Http server host /// public Uri SrsHttpHost { get; init; } = null!; /// /// Public host where playlists are located /// public Uri DataHost { get; init; } = null!; public string PrivateKey { get; init; } = null!; public string[] Relays { get; init; } = Array.Empty(); public LndConfig Lnd { get; init; } = null!; /// /// Cost/min (milli-sats) /// public int Cost { get; init; } = 10_000; /// /// List of video variants /// public List Variants { get; init; } = null!; } public class LndConfig { public Uri Endpoint { get; init; } = null!; public string CertPath { get; init; } = null!; public string MacaroonPath { get; init; } = null!; } public class Variant { public string Name { get; init; } = null!; public int Width { get; init; } public int Height { get; init; } public int Bandwidth { get; init; } }