public static Bitmap GetFrame(string videoPath, double frameTime) { using (var videoFrameReader = new VideoFrameReader(videoPath)) { if (frameTime > 0) { videoFrameReader.Seek(frameTime); } //videoFrameReader.SetFrameWidth(300); if (videoFrameReader.Read()) { return(videoFrameReader.GetFrame()); } return(GetErrorFrame(videoFrameReader.Width, videoFrameReader.Height, "Reading frame failed")); } }
static async Task MainAsync() { int movienumber = 12; using (var videoFrameReader = new VideoFrameReader($@"{movienumber}.mp4")) { var startTime = 10; videoFrameReader.Seek(startTime); var frameIndex = 0; foreach (var frame in videoFrameReader) { using (frame) { if (frameIndex % 60 == 0) //Save every 60th frame { Console.WriteLine($"Getting image at {TimeSpan.FromSeconds(startTime).TotalMinutes}"); frame.Save($@"{movienumber}-full/Frame{frameIndex} - {startTime} - {TimeSpan.FromSeconds(startTime).TotalMinutes}.jpg", ImageFormat.Jpeg); startTime++; } frameIndex++; } } } }