|
Модераторы: Partizan, gambit |
|
Xonxt |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 103 Регистрация: 24.1.2006 Где: Украина / Одесса Репутация: 1 Всего: 1 |
Доброе время суток.
Вот столкнулся с такой проблемой: необходимо в рамках одного проекта обеспечить захват изображения с камеры, вывод его в окно (на какой-нибудь Контролз), а также иметь возможность в любой момент начать и остановить запись видео (в AVI), а также захват изображения (и сохранение его в файл). Требования: * работать должно как можно быстрее и занимать в памяти как можно меньше места; * камера - аналоговая (черно-белая, требует внешний источник питания и подключается через специальный USB-тюнер), поэтому не все программы и фреймворки её воспринимают. Для решения задачи я выбрал DirectShow.NET. Если есть варианты получше, пожалуйста, предлагайте. Проблема в чем. Насколько я понял, инициализация потоков Preview (вывод в окно), Захвата изображений и Захвата видео происходят на начальном этапе. И в предоставленных примерах было ИЛИ ТОЛЬКО захват изображений и Preview, ИЛИ ТОЛЬКО захват видео и Preview. Подружить их вместе у меня не получается. Помогите, пожалуйста, если кто-то в этом разбирается. Проект приложен в аттачменте. Здесь инициализация собственно потоков происходит в методе CaptureVideo(). Я выделил соответствующие фрагменты регионами (#region). Заметьте, что фрагменты PICTURE и VIDEO отказываются сосуществовать вместе. Гугл молчит... Как будто никому раньше не приходилось решать подобную задачу... Присоединённый файл ( Кол-во скачиваний: 15 ) CameraProject2___copy.zip 189,61 Kb |
|||
|
||||
Voyager |
|
|||
Опытный Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: 3 Всего: 18 |
Тоже интересует этот вопрос.
Вы не смотрели в сторону VLC, например вывод, остановка и продолженние - ActiveX контрол AxAXVLC.AxVLCPlugin2? Запись видео - через сам VLC (вызов с параметрами, либо еще как-то так, правда это может быть в другом потоке). |
|||
|
||||
Xonxt |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 103 Регистрация: 24.1.2006 Где: Украина / Одесса Репутация: 1 Всего: 1 |
В общем, более менее разобрался.
Изображения по-прежнему снимаются тем же образом. А видео записывается многократным вызовом этого самого метода захвата изображения по таймеру и записью через AForge'вский AVI Writer. Конечно, не самый лучший вариант, но скорость работы всего этого добра вполне позволяет обеспечить достойный фреймрейт. А теперь вопрос. Может все-таки существует более быстрое и элегантное решение? Может все-таки есть другие более шустрые варианты? |
|||
|
||||
Ky7m |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 89 Регистрация: 8.4.2008 Репутация: 1 Всего: 2 |
Можно попробывать OpenCV, а под неё обвертку EMGU. Пример http://habrahabr.ru/blogs/personal/78150/
А так же Aforge.Net, тоже позволяет осуществлять запись в файл. Но проблема в том, что это скорей всего обвертка для DirectShow, но работает быстро. ДЛя прочтения рекомендую http://habrahabr.ru/blogs/development/111609/ |
|||
|
||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |