Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34

GraphEditPlus - при подключении карты видеозахвата, вылетает ошибка "устройство не подключено"

16.07.2014, 17:16. Показов 2239. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Товарищи, пишу приложение работы с видео. Почитав, решил использовать библиотеку DirectShow. Все написалось хорошо. Подключаю любую вебку, все хорошо, смотрим/записываем видео. Но вот почему-то подключив карту видеозахвата, вылетает ошибка "устройство не подключено". Есть еще вспомогательная программа GraphEditPlus, в ней можно построить граф от источника видео через кодеки на рендеринг видео. Она выдает аналогичную ошибку. Софт который шел вместе с картой работает, видео показывает.
Вопрос: Кто-нибудь знает в чем косяк? почему устройство не подключено и как его подключить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2014, 17:16
Ответы с готовыми решениями:

Вылетает ошибка при подключении к интернету через Adsl
Доброго времени суток! НУЖНА ПОМОЩЬ! Проблема в следующем: Есть локальная сеть из 10 компьютеров (сеть на витой паре) (на сервере...

При подключении к интернету вылетает ошибка Runtime error 216
При подключении к интернету вылетает ошибка Runtime error 216 Проверял всем - никаких следов не нашел(

Вылетает ошибка при подключении базы с разрешением fdb(firebird 2.5) c++ builder, Компонент IBDatabase
Здравствуйте, вылазиет ошибка при подключении базы, на парах все получается получать, в чем может быть проблема?

12
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
17.07.2014, 05:31
Граф в студию! -)
0
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
17.07.2014, 09:57  [ТС]
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
protected override void BuildGraph()
        {
            int hr = 0;
 
            //graph builder
            ICaptureGraphBuilder2 captureGraphBuilder2 = (ICaptureGraphBuilder2)new CaptureGraphBuilder2();
            hr = captureGraphBuilder2.SetFiltergraph(GraphBuilder);
            CheckHr(hr, "Can't SetFiltergraph");
 
            //add Video Renderer
            IBaseFilter videoRenderer = (IBaseFilter)new VideoRenderer();
            hr = GraphBuilder.AddFilter(videoRenderer, "Video Renderer");
            CheckHr(hr, "can't add Video Renderer to graph");
 
            //add video device filter
            IBaseFilter videoDeviceFilter;
            hr = Graph.AddSourceFilterForMoniker(CurrentVideoDevice.Mon, null, CurrentVideoDevice.Name, out videoDeviceFilter);
            CheckHr(hr, "Can't add capture device to graph");
 
            //add AVI Decompressor
            IBaseFilter aviDec = (IBaseFilter)new AVIDec();
            hr = GraphBuilder.AddFilter(aviDec, "AVI Decompressor");
            CheckHr(hr, "Can't add AVI Decompressor to graph");
 
            //connect Smart Tee and MJPEG Decompressor
            hr = GraphBuilder.ConnectDirect(GetPin(videoDeviceFilter, "Просмотр"), GetPin(aviDec, "XForm In"), null);
            CheckHr(hr, "Can't connect Smart Tee and AVI Decompressor");
 
            //connect AVI Decompressor and Video Renderer
            hr = GraphBuilder.ConnectDirect(GetPin(aviDec, "XForm Out"), GetPin(videoRenderer, "Input"), null);
            CheckHr(hr, "Can't connects AVI Decompressor and Video Renderer");
        }
0
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
17.07.2014, 10:43  [ТС]
граф в GraphEditPlus
Кликните здесь для просмотра всего текста


ошибка при запуске
Кликните здесь для просмотра всего текста


карта захвата работает
Кликните здесь для просмотра всего текста
0
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
17.07.2014, 10:58  [ТС]
могу добавить, что разработка ведется на ноуте, тесты проходят на другой машине, где собственно стоит катра захвата.
я проверил машину с картой, воткнув в нее вебку, вебка откликнулась и показала видео. Может дров каких-то не хватает или кодеков??
0
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
17.07.2014, 11:21
AlexCB400,
Граф на машине с картой не строится, правильно?

Меня пугают входные пины на фильтре Beholder, точно нет другого source фильтра?

В редакторе графов должно быть что-то вроде "Connect to remote graph". Вы пробовали?

Пробовали использовать Microsoft DTV-DVD Decoder вместо декомпрессора? (Хотя, думаю, ошибка бы была другая)

Пока все мысли, если что появится, обязательно добавлю.
0
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
17.07.2014, 11:48  [ТС]
Граф строится. Беру сорс фильтр, беру видео рендер и соединяю пины, програмуля сама выбирает какой между ними декодер запихнуть.

других сорсов нет, кроме камеры.
Кликните здесь для просмотра всего текста


не понял с
Цитата Сообщение от Cupko Посмотреть сообщение
"Connect to remote graph"
а что эта функция дает?

Microsoft DTV-DVD Decoder попробовал, но программа ругалась, что не находит комбинацию промежуточных фильтров.
0
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
17.07.2014, 12:22
AlexCB400,
Граф для захвата с тюнера-то тоже строится?
Вот, хорошая статейка на хабре, может поможет.
1
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
17.07.2014, 12:34  [ТС]
и для платы захвата граф строится. но не запускается.
спасибо за статью, буду читать..
0
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
17.07.2014, 17:19  [ТС]
Товарищи, минуя рабочий день, есть результаты. оказывается не хватало еще фильтра. Найден методом тыка и безисходства.
Кликните здесь для просмотра всего текста

Теперь встал следующий вопрос. В программе можно вызвать проперти фильтра, в частности кроссбара, там можно указать с какого входа слушать видео. Вопрос, а каким макаром из кода это сделать?
Кликните здесь для просмотра всего текста
2
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
18.07.2014, 08:48
AlexCB400, есть предположение, что тут вам может помочь IAMCrossbar.Route()

Добавлено через 2 минуты
Вот, нашел немного инфы, п.3.3.2
1
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
18.07.2014, 14:35  [ТС]
Цитата Сообщение от Cupko Посмотреть сообщение
Вот, нашел немного инфы, п.3.3.2
Большое спасибо, данная статья очень помогла. В пунке 3.3.2 доработал фун-ю нахожу кроссбар, нахожу его пины и какого они типа и через UI выбираю с какого слушать видео.
0
7 / 7 / 1
Регистрация: 25.06.2014
Сообщений: 34
29.07.2014, 11:22  [ТС]
Хочу добавить, по поводу настройки кроссбара и самого девайса. Можно програмно вызвать окно его свойств и уже там применять новые настройки или сбрасывать по умолчанию. Все делается с помощью интерфейса ISpecifyPropertyPages.
Есть собранный граф:
C#
1
public IFilterGraph2 Graph;
В графе находим нужный нам фильтр по имени
C#
1
2
IBaseFilter filter;
    Graph.FindFilterByName(MyDevice.Name, out filter);
Приводим к интерфейсу ISpecifyPropertyPages
C#
1
2
3
4
5
var propertyPages = filter as ISpecifyPropertyPages;
    if (propertyPages == null)
    {
        throw new ApplicationException("IBaseFilter doesn't implement ISpecifyPropertyPages");
    }
Дале вызываем метод, который нужно импортировать
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        [DllImport("oleaut32.dll", CharSet = CharSet.Auto)]
        internal static extern int OleCreatePropertyFrame(
            IntPtr hwndOwner,
            uint x, uint y,
            [MarshalAs(UnmanagedType.LPWStr)]
        string caption,
            uint objectCount,
            [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.IUnknown)]
        object[] lplpUnk,
            int cPages,
            IntPtr pageClsID,
            Guid lcid,
            uint dwReserved,
            IntPtr lpvReserved);
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        DsCAUUID pages;
            FilterInfo info;
 
            int hr = filter.QueryFilterInfo(out info);
            CheckHr(hr, "Сообщение о ошибке");
 
            hr = propertyPages.GetPages(out pages);
            CheckHr(hr, "Сообщение о ошибке");
 
            var filters = new object[1];
            filters[0] = filter;
            hr = OleCreatePropertyFrame(form, 0, 0, info.achName, 1, filters, pages.cElems, pages.pElems, Guid.Empty, 0, IntPtr.Zero);
            Marshal.FreeCoTaskMem(pages.pElems);
            CheckHr(hr, "Сообщение о ошибке");
Про метод OleCreatePropertyFrame лучше почитать на MSDN. так как я своим корявым языком не смогу доходчиво объяснить. Скажу про непонятные параметры. Параметр form - это IntPtr owner окна, в C# значение IntPtr находится следующим образом:
C#
1
System.Windows.Interop.WindowInteropHelper(this).Handle
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.07.2014, 11:22
Помогаю со студенческими работами здесь

При запуске с Дискретной карты Вылетает Ошибка Будь эта игра или программа
Ноутбук Lenova z570 Core i5 Nvidea 540m 2g 6gb ОЗУ Проблема в том что при запуске игры или программы будь она тяжелой или...

Устройство видеозахвата
Посоветуйте хорошее устройство видеозахвата,нужно записывать видео со спутниковых тюнеров,ПК и PS 3,желательно чтоб был HDMI вход.Бюджет до...

Посоветуйте устройство видеозахвата
Добрый день! Ребят, посоветуйте пожалуйста какую вещицу приобрести, хочу оцифровать видео с кассеты vhs, причем вместо магнитофона...

Карты видеозахвата
Приветствую! Встал вопрос по поводу качественной картинки при записи обзора с экрана ноутбука, на просторах инета увидел что существуют...

Подключение карты видеозахвата
Добрый день.Вот такая ситуация получилась.Решил собрать новый компьютер для всевозможных целей,это и работа с видео и просто работы,и...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru