如何使用HTML5视频使用VLC直播流?

时间:2011-10-27 14:58:51

标签: html5 firefox video-streaming html5-video vlc

我尝试使用HTTP Ogg / Theora,可以使用Chrome,但不能使用Firefox 7.

VLC配置:

为了进行测试,我一直使用以下vlc命令行配置来流式传输桌面:

  

vlc.exe screen://:screen-fps = 30:screen-caching = 100   :SOUT =#{转码了vcodec =西奥,VB = 800,标度= 1,宽度= 800,高度= 600,acodec =无}:HTTP {MUX = OGG,DST =: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"/>

有什么想法吗?

1 个答案:

答案 0 :(得分:35)

我挣扎了一段时间,我能够验证Ogg / Theora在Firefox 7,Nightly 10和Opera Next中运行得很好。

现在一切都在Google Chrome上运行。我在Chrome上遇到的问题是,XP中最新版本的Chrome不再需要在命令行中传递“--enable-webgl”指令。 XP中所需的唯一命令行条目是'--ignore-gpu-blacklist',因为GPU在XP中被列入黑名单。

此外,我还能够验证Chrome与Web-m / VP8 / Vorbis流的工作正常。 Opera和Firefox尚未支持它。

我发现的主要问题是:

1 - 页面加载:如果您从文件系统加载页面而不是从网络浏览器加载页面,则不会显示视频(任何视频,vlc或文件)。

要解决此问题,请确保从网络服务器加载内容。

2 - 实时/实时流媒体:使用了VLC,为了使其工作,我不得不浏览WebGL / HTML5视频安全限制。发生的情况是,由于安全限制,不会来自同一Web服务器和Web上下文或子上下文的视频流将不会播放。

要解决此问题,请使用Apache Web服务器将应用程序服务器放在前面,并将VLC流配置为从加载的网页下的Web子上下文中。例如,在Apache 2.2中启用mod代理并将以下行添加到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页面放在名为“desktop”的目录下。

到目前为止

结论: 尽管HTML5视频规范为流提供了空间,但到目前为止,我的结论是HTML5视频还没有为现场直播做好准备。在我的实验中,视频标签总是缓冲,我找不到让它被禁用的方法,这最终导致滞后至少5到8秒。

所以,我想现在基于Flash和RTMP的解决方案还有很长的路要走。