Подтвердить что ты не робот

Как использовать прямые трансляции VLC с видео в формате HTML5?

Я пробовал HTTP Ogg/Theora и работает хорошо с Chrome, но не с Firefox 7.

Конфигурация VLC:

Для тестирования я потоковал рабочий стол, используя следующую конфигурацию командной строки vlc:

vlc.exe screen://: screen-fps = 30: screen-caching = 100: Sout = # перекодировать {vcodec = Theo, VB = 800, масштаб = 1, ширина = 800, высота = 600, acodec = нет}: {HTTP Мультиплексор = OGG, ДСТ =: 8181/настольные}: no-sout-rtp-sap: no-sout-standard-sap: ttl = 1: sout-keep

Конфигурация видео тегов HTML5:

<video id="video" src="http://my_host_name:8181/desktop" type="video/ogg; codecs=theora" autoplay="autoplay"/>

Любые идеи?

4b9b3361

Ответ 1

Я боролся с этим некоторое время, и я смог проверить, что Ogg/Theora отлично работают в Firefox 7, Nightly 10 и Opera Next.

Теперь все работает в Google Chrome. Проблема с Chrome заключалась в том, что последней версии Chrome в XP больше не требуется команда "-enable-webgl", переданная в командной строке. Единственная запись в командной строке, требуемая в XP, это "--ignore-gpu-blacklist", поскольку графические процессоры занесены в черный список в XP.

Кроме того, мне удалось проверить, что Chrome отлично работает с потоками Web-m/VP8/Vorbis. Opera и Firefox еще не поддержали его.

Основные проблемы, которые я нашел, были:

1 - Загрузка страницы: Если вы загружаете свою страницу из своей файловой системы, а не из веб-браузера, видео не будет отображаться (любое видео, vlc или файл).

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

2 - Live/Real Time Streaming: VLC использовался, и для того, чтобы он работал, мне пришлось перемещаться по ограничениям безопасности видео в WebGL/HTML5. Случается, что потоки видео, которые не происходят из одного и того же веб-сервера и веб-контекста или субконтекста, не будут воспроизводиться из-за ограничений безопасности.

Чтобы исправить это, просто перед сервером приложений с веб-сервером Apache и настройте поток VLC под веб-контекстом с загруженных веб-страниц. Например, в Apache 2.2 включите mod proxy и добавьте следующие строки в ваш файл httpd.conf:

# Mod_proxy Module
ProxyReceiveBufferSize 16384

ProxyRequests On
ProxyVia On
ProxyPreserveHost On

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

# VLC server stream
ProxyPass /desktop/video/stream.ogg http://vlc_streaming_host:8181/desktop.ogg
ProxyPassReverse /desktop/video/stream.ogg http://vlc_streaming_host:8181/desktop.ogg

# If content is on another server (JBoss, Spring, etc...) then uncomment next lines
#ProxyPass /desktop http://server_content_host:8080/streamer
#ProxyPassReverse /desktop http://server_content_host:8080/streamer

Если вы также используете Apache для хранения контента, а затем, основываясь на приведенном выше примере, просто разместите html-страницу под каталогом под названием "рабочий стол".

Заключение: Несмотря на то, что спецификации HTML5 для видеороликов предоставляют возможности для потоков, до сих пор мой вывод заключается в том, что видео HTML5 почти не готово к потоковой трансляции. В моих экспериментах тег видео всегда буферизуется, и я не мог найти способ отключить его, и это заканчивается, что приведет к отставанию, по крайней мере, от 5 до 8 секунд.

Итак, я думаю, что на данный момент решения на базе Flash и RTMP все еще остаются.