Отображение локального потока gstreamer в браузере - PullRequest
3 голосов
/ 12 сентября 2010

У меня есть камера, поступающая на Linux-машину с использованием интерфейса V4l2 в качестве источника конвейера gstreamer. Я создаю интерфейс для управления камерой, и я хотел бы сделать это в HTML / javascript, общаясь с локальным сервером. Проблема заключается в получении канала из gst конвейера в браузер. Возможные варианты для этого:

  • Шлейф от gst к устройству v4l2, отображаемый с помощью поддержки веб-камеры flash
  • Вывод потока MJPEG, который отображается в браузере
  • Вывод потока RTSP, который отображается вспышкой
  • Написание плагина для браузера
  • Наложение нативного приложения X через браузер

Кто-нибудь имел опыт решения этой проблемы раньше? Наиболее важным требованием является, чтобы подача была как можно ближе к реальному времени. Я хотел бы избежать вспышки, если это возможно, хотя это может быть не так. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 12 сентября 2010

Вы уже думали о нескольких решениях. Вы также можете транслировать в ogg / vorbis / theora или vp8 на сервер icecast, см. Вики OLPC GStreamer для примеров .

Поскольку вы ищете также решение для Python (в соответствии с вашими тегами), рассматривали ли вы возможность использования Flumotion ? Это потоковый сервер, написанный поверх GStreamer с Twisted, и вы можете интегрировать его со своим собственным решением. Он может передавать по HTTP, поэтому вам не нужен сервер Icecast.

В зависимости от кодеков, существуют различные настройки для обеспечения малой задержки. Как правило, с Flumotion локально вы можете получить задержку в несколько секунд, и я думаю, что ее можно уменьшить (x264enc может быть настроен так, чтобы достигнуть менее чем второй задержки, iirc). Как правило, вам необходимо уменьшить расстояние до ключевого кадра, а также ограничить оценку вектора движения несколькими соседними кадрами: это, вероятно, снизит качество и повысит битрейт.

1 голос
/ 06 декабря 2010

На какие браузеры вы ориентируетесь?Если вы игнорируете Internet Explorer, вы сможете передавать потоковое видео OGG / Theora и / или видео WebM прямо в браузер с помощью тега.Если вам нужна поддержка IE, хотя вы, вероятно, используете флеш-апплет.Я просто настроил веб-поток, используя Flumotion и бесплатную версию Flowplayer http://flowplayer.org/, и он работает очень хорошо.Flowplayer обладает множеством расширенных функций, которые я едва начал изучать.

...