private VideoStream ParseVideoStream(FFProbeStream stream) { return(new VideoStream { Index = stream.Index, AvgFrameRate = MediaAnalysisUtils.DivideRatio(MediaAnalysisUtils.ParseRatioDouble(stream.AvgFrameRate, '/')), BitRate = !string.IsNullOrEmpty(stream.BitRate) ? MediaAnalysisUtils.ParseIntInvariant(stream.BitRate) : default,
private MediaFormat ParseFormat(Format analysisFormat) { return(new MediaFormat { Duration = MediaAnalysisUtils.ParseDuration(analysisFormat.Duration), FormatName = analysisFormat.FormatName, FormatLongName = analysisFormat.FormatLongName, StreamCount = analysisFormat.NbStreams, ProbeScore = analysisFormat.ProbeScore, BitRate = long.Parse(analysisFormat.BitRate ?? "0"), Tags = analysisFormat.Tags, }); }
public void MediaAnalysis_ParseDuration(string duration, int expectedDays, int expectedHours, int expectedMinutes, int expectedSeconds, int expectedMilliseconds) { var ffprobeStream = new FFProbeStream { Duration = duration }; var parsedDuration = MediaAnalysisUtils.ParseDuration(ffprobeStream); Assert.AreEqual(expectedDays, parsedDuration.Days); Assert.AreEqual(expectedHours, parsedDuration.Hours); Assert.AreEqual(expectedMinutes, parsedDuration.Minutes); Assert.AreEqual(expectedSeconds, parsedDuration.Seconds); Assert.AreEqual(expectedMilliseconds, parsedDuration.Milliseconds); }