2011-10-27 140 views
40

我尝试HTTP的Ogg/Theora格式和工作正常的与Chrome,但不与Firefox 7如何在HTML5视频中使用VLC直播流?

VLC配置:

为了测试,我一直在使用下面的VLC命令行配置流桌面:

vlc.exe屏幕://:丝网FPS = 30:屏幕缓存= 100 :SOUT =#{转码了vcodec =西奥,VB = 800,标度= 1,宽度= 800,高度= 600,acodec = none}:http {mux = ogg,dst =:8181/desktop} :no-sout-rtp-sap:no-sout-standard-sap:tt L = 1:SOUT-保持

HTML5视频标签的配置:

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

任何想法?

+0

为什么流式传输很慢?我怎样才能让它快速? – YumYumYum

回答

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子上下文中。例如,在Apache 2.2的支持国防部代理,并添加以下行到你的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的解决方案仍然是一条路。

+2

非常感谢您回答您的问题,它对我有帮助。 – coder000001

+0

对此有何更新?我一直在尝试将mjpeg流转码为mp4以节省带宽,但这种方法有点奏效,但视频每隔几秒就会结束。 'vlc --intf = rc http:// localhost:8080/stream?topic =/image_raw --sout ='#transcode {vcodec = theo,vb = 800,scale = 1,width = 640,height = 480,acodec = none}:http {mux = ogg,dst =:8181/desktop.ogg'}:no-sout-rtp-sap:no-sout-standard-sap:ttl = 1:sout-keep' –

+0

如何制作流快?它的缓慢缓慢......越多的时间经过 – YumYumYum