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

Bru*_*tos 40 firefox html5 vlc video-streaming html5-video

我试过HTTP Ogg/Theora并且可以使用Chrome,但不适用于Firefox 7.

VLC配置:

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

vlc.exe屏幕://: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"/>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Bru*_*tos 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 - 页面加载:如果从文件系统加载页面而不是从Web浏览器加载页面,则不会显示视频(任何视频,vlc或文件).

要解决此问题,请确保从Web服务器加载内容.

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

要解决此问题,只需使用Apache Web服务器将应用程序服务器放在前面,然后将VLC流配置为从加载的Web页面下的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
Run Code Online (Sandbox Code Playgroud)

如果您还使用Apache来存储内容,那么,根据上面的示例,只需将您的html页面放在名为"desktop"的目录下.

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

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

  • 非常感谢您回答自己的问题,这对我有所帮助. (2认同)