Реализация веб-видеочата в реальном времени с использованием веб-сокетов HTML5.

StackOverflow https://stackoverflow.com/questions/4220672

Вопрос

Кто-нибудь знает, как реализовать передачу голоса/видео по IP в веб-приложении с использованием веб-сокетов HTML5?

Было бы неплохо, если бы я мог реализовать это с помощью PHP или Python, поскольку на данный момент я (к сожалению) не знаю ни одного другого языка программирования.

Подойдет хорошее руководство, а также уже готовое решение, за которое мне придется заплатить.

Обновление1:
Добавлено видео, потому что оно касается не только аудио/voip.

Обновление2:
Первое приложение для видеоконференций HTML5 уже создано.Смотрите мой собственный ответ

Это было полезно?

Решение

Если вы хотите пойти с HTML5 только, вам понадобится браузер, реализующий HTML Media Capture. Проект (доступно здесь) Чтобы получить доступ к необработанным данным из микрофона.

Как только у вас есть эти данные в руках, вам нужно отправить его по сети. Websockets станет вариант HTML5, чтобы иметь достаточно быстрые круглые поездки с сервером (отправка локальных аудиоданных и приема удаленных аудиоданных одновременно)

Так как вы упоминаете Python, я бы порекомендовал оглянуться вокруг Вибрированная реализация Websockets.

Вы можете иметь все ваши клиенты «зарегистрироваться» на сервере WebSocket с помощью CallerID, поэтому сервер знает, где найти данную CallerID.

Тогда ваш сервер понадобится «приглашение» API, где Caller1 «приглашает» Caller2.

После настройки вызова и каждый клиент запускает отправку своих аудиоданных, сервер сможет отправлять эти аудиоданные данные на другую сторону.

После получения аудиоданных браузера нужно будет воспроизводить эти аудиоданные на динамиках, возможно, используя HTML5 Audiotag.

Для этого вы можете быть вынуждены использовать «трюк»: вместо того, чтобы наличие сервера WebSocket пересылать необработанные аудиоданные для клиента, вам может потребоваться имитировать 2 «бесконечных» файлов:

  1. Caller1.wov: звук захвачен на Caller1 Mic
  2. Caller2.wov: звук захвачен на Caller2 Mic

Browser Caller1 добавит позволитель2.WAV в атрибуте Audio.SRC после настройки вызова (Caller1 будет проинформирован об этом событии через Websocket) и, надеюсь, если Python Server добавляет необработанные аудиоданные данные в Caller2.wav, как это получает, Это начнут играть.

Это звучит как прохладный прототип, который вы собираетесь взломать!

Удачи в вашем путешествии,

Джером Вагнер

Другие советы

Похоже, Эрикссон создал первое приложение для видеоконференций на HTML5.

Техника, которую они использовали:

  • Реализован элемент устройства и Stream API (графический интерфейс элемента устройства в настоящее время написан на JavaScript/CSS).
  • Добавлен MediaStreamManager для сопоставления URL-адресов потоков с соответствующим конвейером в медиа-сервере.
  • Добавлен MediaStreamTransceiver для управления соответствующей обработкой и транспортировкой мультимедиа.
  • Добавлена ​​поддержка двоичных данных в протоколе WebSocket.

Видеть: labs.ericsson.com:


Видео на YouTube: Помимо HTML5:Разговорная голосовая и видео демонстрация | Ericsson Labs

К сожалению, Эрикссон не хочет делиться device_dialog.js (еще).

WEBRTC может быть ответом: http://www.webrtc.org/running-the-demos. (в настоящее время только Chrome Canary с включенным флаг MediaStream)

Смотрите Демо: https://Atsc.appspot.com. (Убедитесь, что вы смотрите в правильном браузере) и код http://code.google.com/p/webrutc-samples/source/browse/trunk/obntc/


Причина, по которой я пишу ... я получил действительно дешевый планшет Android и не могу Intall Skype ни VTOK, ни Google Voice недоступен за пределами США. Мне нужно найти решение на основе HTML5, так как я могу запустить Opera Mobile 12 и получил http://html5demos.com/ работает должным образом

@ Работа / должен быть быстрым

Проверьте JavaScript GetUsermedia.(Могу ли я использовать) - API. (W3)

yebrtc - это ответ сейчас.

для стопки Node.js - вы можете посмотреть на http://www.easyrtc.com/ Отказ Обратите внимание, что т.е. еще не создал поддержку API, которые делают WEBRTC работать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top