Захват кадра через DirectShow

Тема в разделе "WASM.WIN32", создана пользователем wasm_test, 30 май 2007.

  1. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ситуация такая: есть аналоговая камера + конвертер, интерфейс firewire. Надо с определенной периодичностью хватать кадры с камеры и скидывать на диск (ну + нужно окошко с превью, но я уже замутил его). Проблема в том, что DirectShow предоставляет только средства для сохранения видеопотока в файл (был жесткий вариант - скидывать на диск изображение клиентской части окна превьюшки, только получалось хреново, потому что она может затираться вышележащими окнами). Был один вариант установить фильтр ISampleGrabber, в котором вроде можно поставить callback на прием кадра и скинуть его на диск, если истек тайм-аут. Еще варианты будут?
     
  2. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Фиксировать только те кадры где есть движение
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Great
    ISampleGrabber вполне нормальный вариант, и достаточно простой.
    Есть ещё вариант написать фильтр самому, но это гораздо сложнее.
     
  4. kero

    kero Модератор SOURCES & 2LZ

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Great

    >(был жесткий вариант - скидывать на диск изображение клиентской части окна превьюшки,
    >только получалось хреново, потому что она может затираться вышележащими окнами).

    Насчет "затирания" вам недавно говорили: http://www.wasm.ru/forum/viewtopic.php?id=20790, пост #22.
    Кроме указанного там WS_EX_LAYERED - есть еще и WS_EX_COMPOSITED, и PrintWindow,
    а еще и AlphaPrintWindow (нацеленная на дочерние окна не-WS_EX_LAYERED-окон)
    из моей учебной утилитки http://www.geocities.com/xmemor/2lz/printlayered.zip .
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ой только трахаться с этим мне не хватало для полного счастья ) Както не катит на приемлимый вариант=\

    Короче уже разобрался, установка ISampleGrabber вполне решила проблему, как я и полагал. Собственно вопросов больше не имею :)
    Правда у меня чето не получилось одновременно законнектить preview-pin чтобы на экране был нормальный превью и одновременно в соседнем потоке снимать кадры. Либо одно либо другое, поэтому пришлось эмулировать превью граббя кадр каждые 4 миллисекунды и отображая его на экране ) Даже вроде не так чтобы и сильно тормозит %) Сойдет вообщем )

    Вообщем тему, можно закрыть