Потоковое видео в браузере (с низкой задержкой)

Я хочу транслировать видео в реальном времени в браузер с низкой задержкой.

насколько я понял, есть два клиента:

  • HTML5 Видео тега
  • Flash-видео-плеер

существует несколько способов отправки потока:

  • TCP / IP с использованием HTTP, используя прогрессивные загрузки (и HTML5 диапазон-запрос)
  • UDP (который использует Flash)

и есть несколько решений для трансляции поток:

  • использование HTTP Live Stream от Apple (который предоставляет m3u-плейлист небольших сегментов файлов)
  • ...?

и существует проблема публикации и распространения потока через интернет.

Мне нужно

  • синхронизация видео контента с javascript
  • низкая латентность accros страна / мир для многих зрителей
  • media server: (пользовательское) настольное приложение (или браузерное решение) для загрузить веб-камеру поток
  • другие существующие программные решения для обслуживания носителей?

    1. будет ли HTTP Live Stream вызывать высокую задержку, потому что поток должен быть сегментирован и загружен в небольшие файлы? (Исключая html5-решения?)
    2. что нужно Flash player для ввода (т. е. веб-адрес, файл на сервере?)
    3. что нужно Flash player для сервера? (кроме того, распространять его для многих зрителей?)
    4. как я загрузить видео на флэш? (т. е. существующие программные решения / можно ли написать пользовательское приложение, которое загружает веб-камеры трансляция?)

большое спасибо за ответ на этот сложный вопрос!!

2 ответов


3 лет более поздно, в 2014, WebRTC приобретает больше и больше принятие и популярность. Хотя он ограничен только современными браузерами, его преимущества по качеству и производительности намного перевешивают устаревшие Flash или ограниченные HTML5-решения.

Google Hangouts использует технологию WebRTC, и есть сторонние службы, которые предоставляют библиотеки и серверы, необходимые для потоковой передачи, трансляции и подключения видео.


Если вам нужно рассмотреть проблемы с производительностью в сценарии приложения, как вы уже упоминали, вам придется использовать истинную потоковую передачу. Поэтому необходимо настроить потоковый сервер и потоковый клиент-потребитель. Один из широко доступных вариантов-использовать Red5 с открытым исходным кодом streaming server [http://www.red5.org/] для ваших потоковых сервисов. С другой стороны, вы можете использовать Flex sdk [http://flex.org/] для вашего веб-клиента. Обычный способ-использовать flash builder, который полностью интегрирован с eclipse для создания ваших проектов на основе flash / flex только с плагином red5.

хороший стартовый учебник можно найти здесь:

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