|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.10.2017, 08:16 | #1 |
Пользователь
Регистрация: 05.02.2007
Сообщений: 91
|
Вопрос по Directshow;
Есть потокTS состоящий из 8 программ ТВ (видео и звук),строю граф ,показывает только один так как указаны ( pid video и pid audio ) ,из этого TS потока.
если я делаю 2 графа фильтров одинаковые но указываю другие (пиды видео и звука) то показывает только последний загруженный . (и всегда показывает только 1). в одном приложении или процессе не работает копия созданного графа, созданная ранее. если делаю типа сервера и клиенты подключаются с копией графа фильтров то работают все каналы. но неохота делать клиента и сервера отдельно. Работал с DSHOW на базе bass video , или bass video (но не могу найти там куда данные ему пихать типа (buff,len) , в BASS (звук) там есть типа этого chan:=BASS_StreamCreate(44100, 2,0, STREAMPROC_PUSH, nil); BASS_StreamPutData(chan,Buff, len); если такое для DSHOW я не нашел ,было бы тогда проще. Может кто что подскажет .Спасибо за помощь. Суть в чём мне нужно вывести все каналы с TS потока. Последний раз редактировалось АНАТОЛИЙ249; 05.10.2017 в 09:31. |
07.10.2017, 13:39 | #2 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Чтобы не заморачиваться и не терять свое время на построение правильной работы в DSHOW попробуйте использовать PasLibVlc в нем уже все реализовано для работы в DSHOW, он хорошо работает с потоковыми видео любого протокола и формата, работает даже с torrent stream, youtube трансляциями, может работать с видеонаблюдением по onvif и rtp протоколу, еще может сам делать трансляцию видео. Прост в использовании, универсален. С ним можно работать как напрямую с компонентом, так и и без него работая через его функции в DLL.
http://streletzcoder.ru/sozdanie-pro...tov-paslibvlc/ https://wiki.videolan.org/Using_libvlc_with_Delphi http://www.cyberforum.ru/delphi-mult...ad1622837.html http://prog.olsztyn.pl/paslibvlc/ Примеры для работы с PasLibVlc в интернете есть да и сам компонент. Последний раз редактировалось Aliens_wolfs; 07.10.2017 в 14:32. |
11.10.2017, 05:57 | #3 |
Пользователь
Регистрация: 05.02.2007
Сообщений: 91
|
Можно попробовать ,но нужно устанавливать VLC. Без него библиотека не работает.
Спасибо за помощь. |
11.10.2017, 07:55 | #4 |
Пользователь
Регистрация: 05.02.2007
Сообщений: 91
|
И еще вопрос по samlegrabber , захват кадра , ошибок нет
везде возвращает 0, но не работает. Как я понял проблема в типе видео или в субтипе видео. формат может не такой ,не понятно. Спасибо. Код:
Последний раз редактировалось Arigato; 17.10.2017 в 19:54. |
11.10.2017, 12:11 | #5 |
Форумчанин
Регистрация: 02.03.2013
Сообщений: 109
|
Чем BASS не устраивает?
|
11.10.2017, 12:38 | #6 |
Пользователь
Регистрация: 05.02.2007
Сообщений: 91
|
BASS устраивает , но там захват кадра идет в файл и с остановкой воспроизведения,мне нужно получить в bitmap и работать с ним ,сравнивать нужно 2 изображения через определенное время. как это сделать в bassvideo я не нашел даже
тут https://www.un4seen.com/ ,именно получить в bitmap , а не в файл. Да еще заметил , что не на всех файлах видео делаются скриншоты , толи формат разный что выдает не RGB24 а другое типа UYYU , как узнать что за формат как у меня описано выше ,что ошибок нет а не захватывает кадр в directshow; Последний раз редактировалось АНАТОЛИЙ249; 11.10.2017 в 14:41. |
12.10.2017, 15:58 | #7 |
Форумчанин
Регистрация: 02.03.2013
Сообщений: 109
|
А видео в каком формате? Не в .avi?
|
12.10.2017, 17:22 | #8 |
Пользователь
Регистрация: 05.02.2007
Сообщений: 91
|
А можно ли получить картинку в bitmap а не в файл в TPasLibVlcPlayer,там тоже в файл сохраняться ? нашел это http://www.cyberforum.ru/delphi-wina...ad1512508.html но в библиотеке нет
функций PasLibVlcPlayer.OnFrame:= PlayerOnFrame; PasLibVlcPlayer.bFrameFromMem := true; Как это применить не знаю. Спасибо. |
12.10.2017, 19:47 | #9 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Вот кое что нашел как в bitmap изображение вывести в DSHOW
http://www.programmersforum.ru/showp...7&postcount=17 http://www.programmersforum.ru/showthread.php?t=307328 Код:
Код:
Выкладываю свой проект работы по PasLibVlc в моем модуле UVideolibvlcList реализовано вывод изображения через DIB в Функции VideoLibvlcCreateDibBitmap рисует на канву и Bitmap, также я там вывожу нужную инфу, например канал остановлен, нет сигнала и т.д. также в этом модуле реализован ping потерянного интернет канала, при появлении канала делает загрузку автоматически, также одной функцией можно выводить много разных каналов. Последний раз редактировалось Aliens_wolfs; 12.10.2017 в 20:54. |
13.10.2017, 05:06 | #10 |
Пользователь
Регистрация: 05.02.2007
Сообщений: 91
|
Спасибо огромное за помощь , Да установил VLC скачал TPasLibVlcPlayer ,и начал писать , работает, даже нагружает систему меньше чем Bassvideo , впринципе устраивает , и еще вопрос как можно вывести индикаторы звука ? У меня TPasLibVlcPlayer версии 2.2.7 и VLC 2.4 скачивал тут
http://decoding.dax.ru/download/component/mm/mm.html Последний раз редактировалось АНАТОЛИЙ249; 13.10.2017 в 05:31. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DirectShow ? | wendstor | Мультимедиа в Delphi | 1 | 04.06.2012 21:21 |
c# directshow | world12_tk | Помощь студентам | 2 | 26.05.2011 07:27 |
DirectShow | @lexender | Мультимедиа в Delphi | 0 | 14.04.2009 18:06 |
DirectShow | Windows | Мультимедиа в Delphi | 4 | 22.10.2008 18:30 |