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; }
}