Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Видео с юсб камеры, надо передать по инету 
:(
    Опции темы
rain87
Дата 25.3.2008, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 25.3.2008

Репутация: нет
Всего: нет



есть юсб камера. требуется прога, которая будет высылать видеопоток на какой-то сервер в инете, который будет показывать его live (ну, фактически ретранслировать всем подключившимся клиентам. короче неважно)

начал работать с WIA API. нахожу камеру, спокойно могу смотреть её на локальном компе или делать отдельные скрины (с помошью IWiaVideo)
но не могу понять, как мне получить от неё видеопоток в таком виде, в котором её, к примеру, сможет просмотреть media player classic (если им открыть камеру как устройство то он её вполне показывает)

пока что единственное что нашёл в мсдн на эту тему это IWiaDataTransfer, но сэмпл в мсдн показывает как с его помощью получается один кусок (снимок), а не поток видео

в общем, может кто помочь? если уже делал нечто подобное. или подскажите какой то другой способ.
язык программирования неважен, пишу тут потому что не придумал где ещё написать :(
PM MAIL   Вверх
Яхонт
Дата 14.4.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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), но суть одна: захват - кодирование - передача по сэмплам - прием сэмплов - раскодирование - воспрооизведение. Судя по всему, тебе придется все это реализовывать вручную.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0975 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.