Rakesh Bairi Ответов: 1

захват экрана рабочего стола в виде видео в wpf/Windows


мне нужно захватить/записать действия на рабочем столе в виде видео с помощью wpf
я получаю решение http://www.c-sharpcorner.com/UploadFile/armoghanasif/CaptureDesktopActivities11122005013755AM/download/CaptureDesktopActivitiesAsMovie.zip[^] использование WME-кодеров в c#, но он получает ошибку извлечения фабрики COM - класса для компонента с CLSID {632B606A-BBC6-11D2-A329-006097C4E476} не удалось из-за следующей ошибки: 80040154. в моей системе есть x64 бит.
Может ли кто-нибудь помочь мне в том, что нужно сделать?
заранее спасибо

[no name]

Вам нужно будет зарегистрировать COM-компонент.

Rakesh Bairi

после регистрации я также получаю ту же ошибку

1 Ответов

Рейтинг:
1

Magnus9998

Может быть, было бы проще захватить рабочий стол с интервальной скоростью, а затем кодировать каждое изображение в видеофайл с помощью плагина или внешней библиотеки.

Проверьте их:
http://bytescout.com/products/developer/imagetovideosdk/imagetovideosdk_first_step_with_visual_c_sharp_net.html[^]

Простая оболочка C# для библиотеки AviFile[^]

О том, как захватить ваш destop, это легко. Вы создаете растровое изображение с размером экрана, затем графику из растрового изображения, а затем копируете экран и сохраняете его:

private void TakeScreenShot()
{
    Bitmap bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);

    Graphics gfxScreenshot = Graphics.FromImage(bmpScreenshot);

    gfxScreenshot.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);

    //Change the ImageFormat to jpeg to save hard disk or keep it in Tiff
    //for higher resolution
    bmpScreenshot.Save("Dependencies\\temp.tif", ImageFormat.Tiff);
    bmpScreenshot = null;
}


Вы можете адиктивно использовать внешнюю программу, такую как VirtualDub. Может быть, вы можете сделать для него сценарий и запустить его из своей программы. Я знаю, что это не тот способ, которым вы должны это сделать, но это другой способ.


Rakesh Bairi

Спасибо за ваш ответ,я ищу прямой захват как видео, а не изображение, потому что нам нужно захватывать много изображений в секунду и объединять их в видео.

Magnus9998

Проблема в том, что вы не можете захватить непосредственно в виде видео. Каждое программное обеспечение для захвата видео, включая профессиональную видеозапись, захватывает неподвижные изображения и сохраняет их во временной папке, затем объединяет их во временный файл и, наконец, объединяет все изображения и кодирует их в конечный видеофайл. Имейте в виду, что видео-это просто куча неподвижных изображений и аудио, объединенных в один файл.

Rakesh Bairi

ОК... Спасибо я попробую с вашим решением