Реализация веб-видео в реальном времени с помощью веб-сайтов HTML5

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

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

Будет проведен хороший учебник, а также уже построенное решение, за которое я должен заплатить.

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

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

Ответ 1

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

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

Поскольку вы упоминаете python, я бы рекомендовал посмотреть скрученную реализацию веб-сайтов.

У вас могут быть все ваши клиенты "зарегистрированы" на сервере веб-сервера с идентификатором callerID, поэтому сервер знает, где найти данный идентификатор вызывающего абонента.

Тогда вашему серверу понадобится API-приглашение, в котором caller1 "приглашает" caller2.

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

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

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

  • caller1.wav: звук, записанный на caller1 mic
  • caller2.wav: звук, записанный на caller2 mic

браузер caller1 добавит caller2.wav в атрибут audio.src после установки вызова (caller1 будет проинформирован об этом событии через websocket) и, надеюсь, если сервер python добавит необработанные аудиоданные в caller2.wav, поскольку он получает его, он начнет играть.

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

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

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

Ответ 2

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

Используемая техника:

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

Смотрите: labs.ericsson.com:


Видео на YouTube: Помимо HTML5: разговорная головоломка и видеоролик | Лаборатории Эрикссон

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

Ответ 3

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

Смотрите демонстрацию: https://apprtc.appspot.com (убедитесь, что вы смотрите в правильном браузере) и код <а2 >


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

Ответ 4

@работа/должна быть быстрой

Проверьте javaScript getUserMedia (CanIUse) - API (W3)

Ответ 5

webrtc - это ответ.

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