17 / 19 / 4
Регистрация: 03.02.2010
Сообщений: 262

Захват видео с web-камеры

22.10.2011, 11:21. Показов 8073. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Передо мной стоит следующая задача. Организовать Preview с web-камеры.
Вот ветка в которой идет описание сего процесса: http://msdn.microsoft.com/en-u... 85%29.aspx

Создание процесса просмотра видеопотока с web-камеры как я понимаю состоит из нескольких частей:

1. Создаем и инициализируем экземпляр Capture Graph Builder
2. Создаем и инициализируем экземпляр Filter Graph Manager
3. Создаем и инициализируем экземпляр Video Capture Filter
4. Выбираем устройство с которого хотим осуществлять захват видеопотока (с этим пунктом не могу разобраться)
5. Создаем интерфейс на котором будем выводить видео превью
6. Вызываем метод RenderStream, который собственно и будет воспроизводить просмотр видеокадра

Не пойму в чем проблема, код компилируется без ошибок, но ничего не происходит.. Просто вылазит консольное окно..

Со всеми пунктами за исключением 4-го и 5-го я разобрался. Вопрос в том как выбрать web-камеру с которой будем осуществлять захват и послать moniker на экземпляр этой камеры в Video Capture Filter?И как правильно определить интерфейс на котором будет отображаться видеопоток? Очень прошу вашей помощи господа..

Вот код который, я собрал по частям из MSDN:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// capture video.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <Windows.h>
#include <Dshow.h>
#include <ObjIdl.h>
#include <Strmif.h>
#include <Control.h>
#pragma comment(lib, "strmiids")
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    IGraphBuilder *pGraph = NULL;
    ICaptureGraphBuilder2 *pBuild = NULL;
    IBaseFilter *pCap; //Video capture filter
    ICreateDevEnum *pDevEnum = NULL;
    IEnumMoniker *pEnum = NULL;
    IMoniker *pMoniker=NULL;
    IMediaControl *pControl = NULL;
    IMediaEvent   *pEvent = NULL;
 
    // Create the Capture Graph Builder.
    HRESULT hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, 
        CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, (void**)&pBuild );
    // Create the System Device Enumerator.
    hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL,
    CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, 
    reinterpret_cast<void**>(&pDevEnum));
if (SUCCEEDED(hr))
{
    // Create an enumerator for the video capture category.
    hr = pDevEnum->CreateClassEnumerator(
        CLSID_VideoInputDeviceCategory,
        &pEnum, 0);
}
 
    if (hr==S_OK)
    {
        // Create the Filter Graph Manager.
        hr = CoCreateInstance(CLSID_FilterGraph, 0, CLSCTX_INPROC_SERVER,
            IID_IGraphBuilder, (void**)&pGraph);
        if (SUCCEEDED(hr))
        {
            // Initialize the Capture Graph Builder.
            hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
            hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
            pBuild->SetFiltergraph(pGraph);
            hr = pMoniker->BindToObject(NULL, NULL, IID_IBaseFilter,
                (void**)&pCap);
            // Now add the filter to the graph. 
            pGraph->AddFilter(pCap,L"Video Capture Filter");
            hr= pBuild->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video, 
    pCap, NULL, NULL);
 
            return S_OK;
        }
        else
        {
            pBuild->Release();
            pMoniker->Release();
        }
    }
    return hr; // Failed
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.10.2011, 11:21
Ответы с готовыми решениями:

Захват видео с веб-камеры (C++)
Здравствуйте! Я установил Visual Studio 2015 Community и библиотеку OpenCV 3.1.0 на Windows 10. Потом я написал программу, которая...

Можно ли на c++ создать программу подобную camstudio (захват видео с экрана)?
Каким образом записывает видео с экрана?Можно ли на c++ сделать что то такое? И что нужно знать чтобы сделать что то подобное помогите

Запись видео с веб камеры
Новичок в этом деле. Я даже не знаю в какую тему мой вопрос опубликовать. Сейчас набираю теорию для программы. Попытался погуглить,...

1
Mobile Developer
 Аватар для lifestyle
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
22.10.2011, 15:16
Попробуй добавить перед строкой 27 HRESULT hr= CoInitializeEx
и соответственно в нужных местах/месте CoUninitialize();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.10.2011, 15:16
Помогаю со студенческими работами здесь

Захват видео с IP Web камеры
Здравствуйте, мастера. Помогите разобраться с вопросом видеозахвата с IP Web камеры. Хотелось бы, чтобы видео выводилось на моей форме, как...

Захват видео с IP камеры
Доброго времени суток! Начальство захотело сделать в помещении запись видео и аудио для каких то там целей. Есть камера DS-2CD854 и...

Захват видео с камеры
Как захватить видео с камери? Использовал DirectShow, но компилятор (работаю на Dev C++) не видит библиотеку dshow, может есть какиета...

Захват видео с камеры
кТО МОЖЕТ ПОДСКАЗАТЬ - КАК СКИНУТЬ ВИДЕО С КАМЕРЫ Samsung VP-W71 Hi 8, 0.32 Mpix, 22x / 880x В КОМПЬЮТЕР. Карта захвата Pinnacle и тюльпин...

Захват видео с камеры
Здравствуйте в общем мне не обходимо захватить картинку с веб камеры и передавать по интернету но для начала необходимо перевести каждый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
Настройка гиперпараметров с помощью Grid Search и Random Search в Python
AI_Generated 15.05.2025
В машинном обучении существует фундаментальное разделение между параметрами и гиперпараметрами моделей. Если параметры – это те величины, которые алгоритм "изучает" непосредственно из данных (веса. . .
Сериализация и десериализация данных на Python
py-thonny 15.05.2025
Сериализация — это своего рода "замораживание" объектов. Вы берёте живой, динамический объект из памяти и превращаете его в статичную строку или поток байтов. А десериализация выполняет обратный. . .
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю, что помимо энергоэффективности - ещё и безопасность.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика - тотальный контроль над каждым совершённым тактом, а значит - безусловная безопасность, где безконтрольно не совершится ни одного. . .
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
Stack, Queue и Hashtable в C#
UnmanagedCoder 14.05.2025
Каждый опытный разработчик наверняка сталкивался с ситуацией, когда невинный на первый взгляд List<T> превращался в узкое горлышко всего приложения. Причина проста: универсальность – это прекрасно,. . .
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru