Я использовал FFMpeg.exe ( Скачано отсюда ) для захвата первого кадра видео, загруженного на мой сайт. Возможно, это не самое идеальное решение, но у меня нет опыта работы с DirectShow, и, на мой взгляд, это решение намного проще, чем другие упомянутые предложения.
Мне не удалось обойтись без сохранения файла в файловой системе, поэтому я просто записал загруженные байты во временный файл на диске, выполнил работу, используя FFMpeg, а затем удалил каждый из файлов, созданных в процессе. 1007 *
Обработка для этого выполняется в отдельном потоке от потока запроса. Если я нахожу это проблемой, у меня есть отдельная служба Windows, с которой я могу без проблем перенести работу.
Синтаксис для получения одного кадра следующий:
FFMpeg.exe -i "c:\MyPath\MyVideo" -vframes 1 "c:\MyOutputPath\MyImage%d.jpg"
% d очень важен. Если вы не включите это, FFMpeg выдаст ошибку. % D будет заменять серийный номер при записи файла.
Надеюсь, это поможет!