![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
rain87 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 25.3.2008 Репутация: нет Всего: нет |
есть юсб камера. требуется прога, которая будет высылать видеопоток на какой-то сервер в инете, который будет показывать его live (ну, фактически ретранслировать всем подключившимся клиентам. короче неважно)
начал работать с WIA API. нахожу камеру, спокойно могу смотреть её на локальном компе или делать отдельные скрины (с помошью IWiaVideo) но не могу понять, как мне получить от неё видеопоток в таком виде, в котором её, к примеру, сможет просмотреть media player classic (если им открыть камеру как устройство то он её вполне показывает) пока что единственное что нашёл в мсдн на эту тему это IWiaDataTransfer, но сэмпл в мсдн показывает как с его помощью получается один кусок (снимок), а не поток видео в общем, может кто помочь? если уже делал нечто подобное. или подскажите какой то другой способ. язык программирования неважен, пишу тут потому что не придумал где ещё написать :( |
|||
|
||||
Яхонт |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 14.4.2008 Репутация: 1 Всего: 1 |
Привет, товарисч по несчастью! Я над этой темой бьюсь уже месяцев восемь. Есть много решений. Вот парочка:
1) легкое (и быстрое): юзаешь Windows Media Encoder SDK. Для этого достаточно набора dll-к, а весь код может быть написан на C#. Все делается буквально в одну строчку: и захват, и вещание, установка качества передачи и т д и т п. Документация по Windows Media Encoder SDK есть в MSDN. Недостаток в том, что отсутствует гибкость - ты будешь работать лишь в рамках этих dll-к. К тому же, как я выяснил, в них есть глюки, которые могут свести на нет все твои старания. 2) трудное Самое гибкое и кардинальное решение - по сути создание нового Skype или Windows Messenger. Проектируешь систему в под DirectShow. Строишь граф захвата видео с веб-камеры, пишешь ком-сервера: фильтр, отправляющий данные по сети, и фильтр, принимающий данные из сети. Это на основе сокетов, например. Весь механизм передачи данных, есесно пишешь с нуля. По сети передаешь все форматы и команды синхронизации, а главное - сэмплы. Чтоб плеер мог принять видео, надо обговорить форматы, хотя, в данном случае проще написать свой собственный плеер. В Direct Show для этого уже есть готовые ком-сервера, которые уже практически являются плеерами. Между фитльтром, представляющим драйвер веб-камеры и фильтром-отправителем нужен фильтр-кодировщик, а на другой стороне - соответствинно декодер. Но это задача на долгие месяцы (а может и годы). 3) Ну еще можешь воспользоваться библиотеками Window Media Format (это даже труднее, чем под DirectShow), но суть одна: захват - кодирование - передача по сэмплам - прием сэмплов - раскодирование - воспрооизведение. Судя по всему, тебе придется все это реализовывать вручную. |
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |