Видео API Для Создания Приложения Для Видеоконференций

#video-streaming #webcam #tapi #h.323

Вопрос:

В течение следующих шести месяцев я собираюсь создать приложение, которое будет функционировать как система двусторонней видеоконференции, а также обмениваться некоторыми другими данными взад и вперед. Я, вероятно, буду использовать какую-нибудь относительно дорогую USB-веб-камеру и знаю о стандарте устройства класса USB Video, который, похоже, подходит.

Итак, что я могу использовать для программирования против этого (или в каком-либо другом направлении)? Операционная система не так важна, поскольку она не определена (будет выбрана в соответствии с общими потребностями), равно как и язык. Сеть будет VPN, в худшем случае симметричная 256 Кбит / с. В идеале он также будет обрабатывать кодирование и сжатие, но в основном я просто ищу какую-то отправную точку для начала исследований (только что нашел TAPI и H. 323, пока не уверен в лучшем способе их программирования).

Ответ №1:

с гномом у вас есть экига. Вы также можете скомпилировать его для win32. Под ним используется OPAL (Библиотека абстракции открытого телефона). Возможно, сам инструмент будет соответствовать вашим потребностям, в противном случае вы можете адаптировать его (OSS) или вы можете сохранить только низкоуровневый API

Ответ №2:

Я согласен с PW.

  • ОПАЛ-отличный выбор.
  • Он поддерживает аудио-и видеоустройства
  • Он компилируется в Windows, Linux и некоторых других

Кроме того, я рекомендую использовать протокол SIP (в отличие от H323) — Вам не нужно использовать Ekiga. Экига-это интерфейс OPAL. Вы можете взглянуть на образцы ОПАЛА и сделать выводы на их основе.

Ответ №3:

Я вообще не рекомендую использовать H. 323 для создания новых приложений, особенно ориентированных на пользователя. Я бы рекомендовал SIP из-за гораздо более простой и чистой сигнализации / переговоров и т. Д.

С другой точки зрения, я не рекомендую использовать OPAL, если вы строите что-то с плотностью вызовов более 5. Это связано с рядом архитектурных решений, размещенных там (управление потоками с некоторыми условиями гонки, очень сложное управление контейнерами с ленивым копированием, которое на самом деле делает вещи намного более опасными и так далее). Это связано с устаревшим подходом OpenH323 (действительно, библиотека ptlib, которая использовалась для OpenH323).

Может быть, что-то изменилось с тех дней, когда у меня болела голова с OpenH323 и ранней Опал, но я не думаю, что что-то основное.

Как насчет того, чтобы взглянуть на платформу FreeSWITCH? Люди говорят, что он гораздо лучше спроектирован.