Аудио/видео в прямом эфире между двумя браузерами, какие технологии?

Я ищу лучшие технологии с открытым исходным кодом для использования двунаправленной аудио/видеосвязи между двумя браузерами.
Пока я обнаружил эти треки:

  • WebRTC Спецификация W3C и реализация Ericsson
  • Red5 и реализация BigBlueButton в качестве примера
  • Cumulus Редкая реализация Cirrus
  • HTML5 и его многочисленные новые функции (но не раньше 2014-2015 гг.).
  • Возможно, некоторые реализации Jabber/Speex, которые мне не хватает

Есть ли что-то, что мне не хватает?
Какое может быть наилучшее решение?

Также (точнее), я хотел бы реализовать эту функцию в своем приложении, разработанном с использованием Django/Python.

Ответ 1

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

Существует три общих подхода: используйте HTML5, используйте существующую технологию плагинов или создайте свой собственный плагин.

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

Для второго варианта теперь есть три основные технологии плагинов, которые ActiveX мертв: Flash, Silverlight и Java-апплеты. Я бы посоветовал вам прочь от Silverlight, так как он не совсем портативен.

Это дает вам возможность использовать Flash, апплеты и HTML5. Из них Flash является наиболее широко используемым, но он имеет свои недостатки, и мир отходит от него. HTML5 - это волна будущего, и хотя стандарт не будет завершен до 2014 года, он не ожидается, что он изменится (последний звонок был в мае 2011 года), а основные браузеры уже поддерживают его, хотя, видимо, еще не API WebRTC, хотя я уверен, что скоро это будет в Firefox и Chrome.

Ответ 2

Вы пытаетесь создать нечто похожее на Chatroulette? Они поддерживают двунаправленную поточную передачу видео и микрофоны. Они используют возможности Flash Player 10 peer-to-peer и Wowza Media Server для питания своего сайта.

Ответ 3

К сожалению, реальный ответ на вопрос, где мы сейчас находимся, - это Flash. К счастью, есть haxe, компилятор с открытым исходным кодом для Flash SWF-формата. Вы можете использовать его для создания всех видов материала.

Сервер в связанном примере написан в haxe (в основном AS3) и скомпилирован к инструкциям для NekoVM (модуль Apache), но он должен предоставить неплохой пример, если ничего другого.