VLC配置:
对于测试,我已经使用以下vlc命令行配置流式传输桌面:
vlc.exe screen:// :screen-fps=30 :screen-caching=100
:sout=#transcode{vcodec=theo,vb=800,scale=1,width=800,height=600,acodec=none}:http{mux=ogg,dst=:8181/desktop}
: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"/>
有任何想法吗?
解决方法
现在,所有内容也都在使用Google Chrome。我使用Chrome的问题是,XP中的最新版本的Chrome不再需要在命令行中传递的“–enable-webgl”指令。 XP中需要的唯一命令行条目是“–ignore-gpu-blacklist”,因为GPU在Windows XP中被列入黑名单。
此外,我能够验证Chrome的工作原理与Web-m / VP8 / Vorbis流。 Opera和Firefox还没有支持它。
我发现的主要问题是:
1 – 页面加载:如果从文件系统加载页面,而不是从Web浏览器加载页面,则不会显示视频(任何视频,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的解决方案仍然是要走的路。