Назад | Перейти на главную страницу

Справка: настройка базовой прямой трансляции для просмотра в браузере

Конечная цель моего проекта - создать систему, которая записывает телепрограммы с карты видеозахвата, транслирует их в режиме реального времени для просмотра на веб-странице и хранит копию на жестком диске. Это кажется довольно простой концепцией, но я боролся с этим в течение нескольких недель. Я спрашивал на справочных форумах Ubuntu, форумах VideoLAN.org и сейчас здесь. Кто-то должен был сделать что-то подобное, не используя один из дорогих потоковых серверов (Adobe Streaming Server / Wowza).

Ключевой момент, на котором я застрял, - это прямая трансляция, потому что она имеет следующие характеристики.

  1. Когда пользователь начинает просмотр потока, он начинает с текущей точки, а не с начала (это можно сделать с любой системой с возможностью поиска, даже с псевдостримером).
  2. Поток должен динамически обновляться, чтобы проигрыватель (Flowplayer или JWplayer) мог продолжать показывать вновь закодированные данные. Я попробовал mod_flv_streaming для lighttpd и столкнулся с проблемой, заключающейся в том, что когда пользователь начинает потоковую передачу, плеер считает файл "завершенным" и не будет получать новые данные с сервера, даже если новые данные добавляются каждую секунду.

Моя ближайшая попытка заключалась в использовании потоковой передачи VLC через HTTP. Я использовал следующую строку кодировки:

:sout=#transcode{vcodec=h264,vb=800,scale=1,width=320,height=240,acodec=mp4a,ab=128,channels=2,samplerate=44100}:std{access=http,dst=192.168.0.75:8080/file.flv}

Отладки

  1. РАБОТАЕТ - Доступ к потоку локально (тот же ящик Ubuntu, который передает его) в отдельном экземпляре доступа к VLC - http://192.168.0.75:8080/file.flv.

  2. ПОЛУРАБОТЫ - Доступ к потоку с другого компьютера в локальной сети. Я говорю, что semi работает, потому что для загрузки потока требуется от 45 секунд до минуты, что является странным и сигнализирует о том, что что-то не так.

  3. РАБОТАЕТ - я могу заставить Flowplayer воспроизводить поток при доступе из локального окна Ubuntu, указывая на его собственный веб-сервер Apache, указав Firefox на http://192.168.0.75/flowplayer/example/index.html (which references the stream athttp://192.168.0.75:8080/file.flv`).
  4. ПОЛУЧАЙНО УЖАСНО РАБОТАЕТ - Если я попытаюсь получить доступ к тому же html-файлу с компьютера в локальной сети, появится игрок с кружащимся логотипом на мгновение, а затем он окажется пустым с текстом «flowplayer» в левом нижнем углу. Ни видео, ни звука, просто пусто. При наведении указателя мыши на него отображаются элементы управления. Как ни странно, если я оставлю браузер открытым на несколько часов, я имею в виду часы, в конечном итоге видео появится и начнется прямая трансляция.

Мои основные вопросы связаны со следующими концепциями: Следует ли мне использовать RTP / RTSP / RTMP VLC? Если да, то как мне это настроить? Я пробовал миллиард раз и еще не настроил что-то локально, не говоря уже об удалении. Я ограничен только файлами FLV? Важно только то, что Flowplayer может воспроизводить его в кросс-браузерной манере, так что, может, мне повезет с другим контейнером? WTF - это файл / сегментатор .ts? Единственный ли мой вариант - заставить работать что-то вроде Red5 или купить один из дорогих серверов? Если да, то почему у VLC есть опция RTP, но она никогда не работает?

Будем очень признательны за любые рекомендации или предложения. Вот моя оригинальная ветка на форумах VLC, на которых, к сожалению, есть сверчки.

Если вы любите приключения, вы можете дать мне Сервер прямой трансляции на основе WebM тест-драйв. Это ранний выпуск, он не будет сохранять поток на стороне сервера (но вы можете сохранить копию с помощью wget, например, через сервер).

Он работает через HTTP и совместим с HTML5. <video> тег.

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