// Lots of magic numbers here, my apologies. These are subject to experimentation and refinement. Eventually // they will be configurable, but I can't yet be arsed. public SourceEntry(string source) { var triggerRates = new RateControl[] { RateControl.FromSeconds(6, 30), RateControl.FromSeconds(8, 60) }; RateControl[] outputRates; if (MessageTools.IsChannel(source)) { outputRates = new RateControl[] { RateControl.FromSeconds(8, 5), RateControl.FromSeconds(12, 10) }; } else { outputRates = new RateControl[] { RateControl.FromSeconds(30, 20) }; } var duration = TimeSpan.FromMinutes(15); Triggers = new ThrottleControl(triggerRates, duration); Output = new ThrottleControl(outputRates, duration); }
internal VideoEncoderConfiguration(VideoEncoding?encoding, float?quality, VideoResolution resolution, RateControl rateControl, H264Configuration h264, Mpeg4Configuration mpeg4) { Encoding = encoding; Quality = quality; Resolution = resolution; RateControl = rateControl; H264 = h264; Mpeg4 = mpeg4; }