Здравствуйте!
Для видеозахвата с камеры, подключенной к AverTV-тюнеру использую WM_CAP... сообщения.
Проблема в том, что я не могу переключить режим с TV (антенна) на композитный (камера).
Софт, поставляемый с тюнером, это умеет. Я что-то слышал про DirectShow, но я с ним не знаком.
Можно переключить режим не используя DirectShow?
Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте! А>Для видеозахвата с камеры, подключенной к AverTV-тюнеру использую WM_CAP... сообщения. А>Проблема в том, что я не могу переключить режим с TV (антенна) на композитный (камера). А>Софт, поставляемый с тюнером, это умеет. Я что-то слышал про DirectShow, но я с ним не знаком. А>Можно переключить режим не используя DirectShow?
А>Помогите, очень надо!!! А>Спасибо.
Ты знаешь всетаки придется тебе посмотреть DirectShow. Вероятнее всего, что тот софт использует фильтры DirectShow для работы, DirectShow предоставляет очень большой и гибкий механизм для работы с медиа потоками, и в частности с захватом видео. А если софт использует фильтры, то все равно придется использовть DirectShow, что бы их настроить.
Я считаю, что DirectShow это именно то что нужно для решения любых задач связанных с захватом видео и его обработкой. Тот же самый VFW (Wideo For Windows) уже не поддерживается Microsoft'ом и морально устарел уже давно! Так, что если хотите оставаться On-top of programming так сказать то лезьте в DirectShow.
Я сам им занялся буквально несколько месяцев назад и чувствую какую силу предоставляет эта технология. Уже разобрался дорвольно неплохо, ну по крайней мере тот проект который передо мной ставили сделал без проблем, и реализовалось все очень красиво и работает замечательно. Да и не так страшен черт как его молюют. Во всем можно разобраться, главное иметь желание и умение "капать".
Здравствуйте, .Mistery, Вы писали:
M>Здравствуйте, <Аноним>, Вы писали:
M>Ты знаешь всетаки придется тебе посмотреть DirectShow. Вероятнее всего, что тот софт использует фильтры DirectShow для работы, DirectShow предоставляет очень большой и гибкий механизм для работы с медиа потоками, и в частности с захватом видео. А если софт использует фильтры, то все равно придется использовть DirectShow, что бы их настроить.
M>Я считаю, что DirectShow это именно то что нужно для решения любых задач связанных с захватом видео и его обработкой. Тот же самый VFW (Wideo For Windows) уже не поддерживается Microsoft'ом и морально устарел уже давно! Так, что если хотите оставаться On-top of programming так сказать то лезьте в DirectShow.
M>Я сам им занялся буквально несколько месяцев назад и чувствую какую силу предоставляет эта технология. Уже разобрался дорвольно неплохо, ну по крайней мере тот проект который передо мной ставили сделал без проблем, и реализовалось все очень красиво и работает замечательно. Да и не так страшен черт как его молюют. Во всем можно разобраться, главное иметь желание и умение "капать".
M>Удачи!
Привет коллеги.
Я тоже работаю с захватом изображений и дальнейшей их обработкой. Хотел в свое время написать проект на VC, однако столкнулся с проблемой захвата видео и битмапкэпчеринга. Слышал о библиотеке ДиректШоу, однако пошел по пути наименьшего сопротивления — нашел компонент для Borland C++ Builder. и с ним прекрасно работал, до тех пор пока не поставил другой ТВ тюнер.
Вот щас подумываю заняться о выше упомянутой библиотеке, господа такой вопрос — нужна документация!!! присоветуйте что нить!!!
Здравствуйте, sam_daemon, Вы писали:
_>Вот щас подумываю заняться о выше упомянутой библиотеке, господа такой вопрос — нужна документация!!! присоветуйте что нить!!!
А что еще можно посоветовать? Ставишь DirectX 9 SDK и в комплекте получаешь море документации и сэмплов, в том числе и для видеозахвата DirectShow.
Здравствуйте, retalik, Вы писали:
R>Здравствуйте, sam_daemon, Вы писали:
_>>Вот щас подумываю заняться о выше упомянутой библиотеке, господа такой вопрос — нужна документация!!! присоветуйте что нить!!!
R>А что еще можно посоветовать? Ставишь DirectX 9 SDK и в комплекте получаешь море документации и сэмплов, в том числе и для видеозахвата DirectShow.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте! А>Для видеозахвата с камеры, подключенной к AverTV-тюнеру использую WM_CAP... сообщения. А>Проблема в том, что я не могу переключить режим с TV (антенна) на композитный (камера). А>Софт, поставляемый с тюнером, это умеет. Я что-то слышал про DirectShow, но я с ним не знаком. А>Можно переключить режим не используя DirectShow?
А>Помогите, очень надо!!! А>Спасибо.
можно
см. capDlgVideoSource
а заодно посмотри Platform SDK->Graphics And MultimediaServices->Windows Multimedia->
Video For Windows->Video Capture->Using Video Capture->Displaying Dialog Boxes to Set Video Characteristics
да и вообще, все что относится к Video For Windows. Много полезного
Здравствуйте, .Mistery, Вы писали:
M>Ты знаешь всетаки придется тебе посмотреть DirectShow. Вероятнее всего, что тот софт использует фильтры DirectShow для работы, DirectShow предоставляет очень большой и гибкий механизм для работы с медиа потоками, и в частности с захватом видео. А если софт использует фильтры, то все равно придется использовть DirectShow, что бы их настроить.
А у меня тут случились проблемы, как раз с настройкой.
Я с помощью IGraphBuilder строю граф, перебираю устройства (CLSID_VideoInputDeviceCategory), добавляю фильтр SampleGrabber, нахожу IVideoWindow, запускаю — все показывает, картинка захватывается. Но как теперь настроить с какого входа карты захвата брать сигнал? Вроде есть IAMCrossbar, но откуда его получить?
Здравствуйте, LMars, Вы писали:
LM>Здравствуйте, .Mistery, Вы писали:
M>>Ты знаешь всетаки придется тебе посмотреть DirectShow. Вероятнее всего, что тот софт использует фильтры DirectShow для работы, DirectShow предоставляет очень большой и гибкий механизм для работы с медиа потоками, и в частности с захватом видео. А если софт использует фильтры, то все равно придется использовть DirectShow, что бы их настроить.
LM> А у меня тут случились проблемы, как раз с настройкой. LM> Я с помощью IGraphBuilder строю граф, перебираю устройства (CLSID_VideoInputDeviceCategory), добавляю фильтр SampleGrabber, нахожу IVideoWindow, запускаю — все показывает, картинка захватывается. Но как теперь настроить с какого входа карты захвата брать сигнал? Вроде есть IAMCrossbar, но откуда его получить?
Здравствуйте, Bluesman, Вы писали:
B>Вот так проверяешь есть ли Crossbar.
Так вот именно, что так... Crossbar не находится
В доке к DirectX SDK про Crossbar написано:
You cannot directly create this filter with CoCreateInstance. The ICaptureGraphBuilder2 interface automatically adds this filter to the graph as needed.
Так вот — автоматически он не добавляется! Все-таки Crossbar-фильтр надо добавлять руками ???
Я попробовал сделать граф:
Crossbar -> Capture Device -> SampleGrabber
Вроде собрался, но правильно ли делать так? Или надо что-то подкрутить с помощью ICaptureGraphBuilder2?
Здравствуйте, LMars, Вы писали:
LM>Здравствуйте, Bluesman, Вы писали:
B>>Вот так проверяешь есть ли Crossbar.
LM> Так вот именно, что так... Crossbar не находится
LM> В доке к DirectX SDK про Crossbar написано: LM>
LM>You cannot directly create this filter with CoCreateInstance. The ICaptureGraphBuilder2 interface automatically adds this filter to the graph as needed.
LM>
LM> Так вот — автоматически он не добавляется! Все-таки Crossbar-фильтр надо добавлять руками ??? LM> Я попробовал сделать граф: LM> Crossbar -> Capture Device -> SampleGrabber
LM> Вроде собрался, но правильно ли делать так? Или надо что-то подкрутить с помощью ICaptureGraphBuilder2?
Здравствуйте, LMars, Вы писали:
LM>Здравствуйте, Bluesman, Вы писали:
B>>А что у тебя за девайс?
LM> Да какой-то без имени... карта захвата с TV Tuner_ом, на чипсете вроде bt848.
LM> Я тут еще help почитал и понял, что ICaptureGraphBuilder2 добавляет Crossbar после вызова метода RenderSream! Еще не проверял, но похоже это так!?
Из описания ICaptureGraphBuilder2::RenderStream
Supporting Filters. If a capture device uses a Windows Driver Model (WDM) driver, the graph may require certain filters upstream from the WDM Video Capture Filter, such as a TV Tuner Filter or an Analog Video Crossbar Filter. If this method successfully renders the stream, it also inserts any WDM filters that are required in your graph. The method queries the input pins on the capture filter to determine what mediums they support, and connects them to matching filters.
Т.е у твоего source-filter должен быть входной pin для подключения crossbar'а. Посмотри на source-filter в graphedt и ты увидишь есть ли такой pin.
B>Т.е у твоего source-filter должен быть входной pin для подключения crossbar'а. Посмотри на source-filter в graphedt и ты увидишь есть ли такой pin.
Да выходит есть. В graphedit_е я составлял нужный граф, т.е. подключал первым crossbar, потом capture device и т.д. И програмно, в ручную, без вызова RenderStream я составлял такой граф. Просто я только сечас понял что "The ICaptureGraphBuilder2 interface automatically adds this filter to the graph as needed" означает — "после вызова его метода RenderStream"