Разложить видео на кадры NET 5
Стоит задача разложить видео на кадры, с возможностью просматривать каждый кадр. Смотрел в сторону ffmpeg и библиотек на его основе. Пишется на net 5. Пытался использовать AForge, Accord.Video.FFMPEG. Но они заточены под dot net framework. Прошу направить в правильное русло, куда копнуть?
Ответы (1 шт):
Автор решения: Blackmeser
→ Ссылка
Ставите nuget пакет OpenCV
using OpenCvSharp;
var videoFile = "01.mp4";
var capture = new VideoCapture(videoFile);
var window = new Window("Video Frame by Frame");
var image = new Mat();
var dic_image = new Dictionary<int, Bitmap>()
var i = 0;
while (capture.IsOpened())
{
capture.Read(image);
if (image.Empty()) break;
i++;
Bitmap frame = BitmapConverter.ToBitmap(image);
dic_image[i] = frame;
window.ShowImage(image);
if (Cv2.WaitKey(1) == 113) // Q
break;
}
После выполнения данного кода в словаре dic_image будут кадры из видео с доступом по номеру кадра.
Если Cv2.WaitKey(1) == 113 вроде как не обязателен, если с ним будут проблемы - можно убрать.