Код захвата DirectShow из VLC

Здравствуйте.

Есть проигрыватель VLC. У него есть режим захвата видео с камеры с помощью DirectShow.
image

Также есть открытый код плеера Подскажите пожалуйста как найти этот код захвата и вытащить его оттуда в свое приложение??

Есть огромная проблема. Я уж не знаю куда думать… то ли руки действительно из задницы растут то ли это все заговоры массонов… В общем нужно получить данные с камеры. Пробовал обертки для DD под Net. Пробовал примеры из WindowsSDK для захвата. С Media Foundation вообще нереальная дичь …
В общем DirectShow на одних компах работает нормально, на других тупо не генерит события приема данных, на третьих вообще валится в ошибку. Причем сам клятый VLC стабильно работает на всех типах машин и ехидно посмеивается.

Ну прям бесит … В общем помогите кто нибудь… прям вопрос жизни и смерти, уже 2 месяца не могу спать нормально…

Я б спросил в их IRC и т.п. User support and help - VideoLAN

Вытаскивать возможно не надо, VLC есть в виде библиотеки libVLC - VideoLAN Wiki

да не ну жна особо их либа. DD свободная библиотека и возможно я просто не знаю какой то мелочи. Надо просто подсмотреть и настроить свой вариант как надо. Лишние либы в коммерческом проекте это не особо радует …

Так инсталятор можно сделать, установит либы куда необходимо. Или не вариант?
Что с видео-потоком не так?

Доступ к камере с одной машины или предусмотрена возможность доступа по сети с нескольких компьютеров одновременно?

P. S.

Так не должно быть. Если здесь ОК а там failed, очень может быть проблема во времени отклика устройства + время на доставку пакета.
Возможно в коде тайминги на ожидание ответа прописать, как вариант.
P. P. S.
Возможно поможет.
Поток можно сохранять во временную переменную \ файл, и отдавать по запросу из временного хранилища. Будет с небольшой задержкой ( не в реальном времени), если не критично.

ну если бы я знал то стал бы писать тут??

одна машина, одна камера. Все локально.

ох … ну вот пример на машине с 10 работает, на машине с 7 на работе работает, на ноуте с той же семеркой не работает
вот код ошибки

Да вы чего?? Все реалтайм. Все нужно с минимальной задержкой плюс софт должен писать все это в формате h264 в файл. Да собственно все работает. нужно тупо СТАБИЛЬНОЕ соединение и получение данных с камеры.

Я с благими намерениями, а в ответ ссылка на стандартную пачку ошибок. Это как?

Так вроде недавно была тема, сам же выяснил проблему с кодом девайса, или это уже другой случай?

Чем не подходит запись в файл?
Там отставание от реала секунда…

Зачем?? мне надо получить кадр в формате RGB24 и передать дальше в процессинг. В одной версии софта это передадут в кодировщик для записи в файл. В другой версии эти данные пойдут в распознаватель образов и параллельно в кодировщик для записи.

Основная задача это получить стаблино поток данных с камеры на любом компе под осью Windows 7 с необходимым набором библиотек.

Ну так идея примерно такая-же как озвучил, я о сохранении для дальнейшей обработки.
Значит теряются данные по пути: камера → Обработчик.
Связь с камерой как организована?

простите, вы бот??
DirectShow хотелось бы… и чтобы он СТАБИЛЬНО захватывал поток на любом компе, аналогично VLC

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

Так где код захвата то??

Так автор наоборот хочет сделать как VLC, c VLC видимо проблем нет.


По dshow в исходниках нашлось vlc/modules/access/dshow at master · videolan/vlc · GitHub

Так ХЗ.
Отрыл один из пакетов, похоже на тот же гемор как и с OpenCV.
Прийдеться тратить время на изучение либ. …

P. S.
Так что, как ни крути а сторонние либы прийдеться класть в проект.

Ох… это какая то дичь… ковырял его ковырял … там вообще столько всего лишнего что убиться можно.
Само посртроение графа я так и не нащупал… Там вообще без граббера обходятся, как никак это просто проигрыватель. да и ISampleGrabber уже кучу лет как obsolet.
С MediaFoundation тоже хрень… вроде собрал все как надо… даже прикрутил IMTransorm. Но эта сволочь все время валится в E_FAIL. Хотя при инициализации и задании форматов никаких ошибок нету… кому надо могу выложить код.

Вот софт есть бесплатный. строит граф. Вроде построил, в программе рендерится, прога генерит код построения. Переношу к себе и колбэки в упор не возвращаются… К тому же эта прога еще навязывает декодер MJPG и конвертер цвета … хотя в других семплах этого не было…

Да и FPS по какой то причине упал до 2 кадров в сек. Это на камере с частотой 60 fps///

Помогите кто нибудь.

Если совсем не вызываются, то я б попробовал перенести в простое приложение с минимальными изменениями, чтоб случайно не сломать что-то.
Ну или может автор не всё важное выложил, мало ли чего можно ожидать от человека оставившего внизу ссылку “20 комментов”, которая ведет на https://twitter.com/AvoidComments ))

Так я так обычно и делаю. Беру официальный пример с самым базовым функционалом и потом начинаю накатывать. Но тут трабла что и оффициальный пример не хочет на некоторых машинах запускаться.

Использование в проекте возможностей DirectX критично?
Почитал, как-то сложно, и привязка к возможностям GPU.
Я бы искал альтернативу в выборе метода захвата кадра из потока…

Да к DirectShow это вряд ли сильно относится, ему ж лет 20, основное всё должно везде работать, разве что если использовать какие-нибудь нестандартные фильтры.

Да все стандартное. Примитв же нужен. Просто захватить декодированные данные в фаормате BMP24ю
Разве что SampleGrabber исключен из апи и для него аналогичный класс пришлось писать руками. Заголовочные файлы уже не поставляются в СДК. Проблема в том что на каких то компах нормально работает а на каких то колбэк даже не вызывается. Ошибок нету и понять в чем беда сложно.