我尝试了http ogg/theora,可以在chrome上使用,但不能在firefox 7上使用。
VLC配置:
为了测试,我使用以下VLC命令行配置对桌面进行了流式处理:
vlc.exe屏幕://:屏幕fps=30:屏幕缓存=100
:sout=transcode vcodec=theo,vb=800,scale=1,width=800,height=600,acodec=none:http mux=ogg,dst=8181/桌面
:无SOUT RTP SAP:无SOUT标准SAP:TTL=1:SOUT保持
HTML5视频标签配置:
<video id="video" src="http://my_host_name:8181/desktop" type="video/ogg; codecs=theora" autoplay="autoplay"/>
有什么想法吗?
最佳答案:
我为此挣扎了一段时间,并且我能够验证Ogg/Theora在Firefox 7、Nightly 10和Opera Next中的工作是否正常。
现在一切都在谷歌Chrome上运行。我对chrome的问题是,xp中最新版本的chrome不再需要在命令行中传递“--enable webgl”指令。xp中唯一需要的命令行条目是“--ignore gpu blacklist”,因为gpu在xp中被列入黑名单。
此外,我还能够验证chrome在web-m/vp8/vorbis流中的工作是否正常。Opera和火狐还没有支持它。
我发现的主要问题是:
1-页面加载:如果从文件系统加载页面而不是从Web浏览器加载,则不会显示视频(任何视频、VLC或文件)。
要修复它,只需确保从Web服务器加载内容即可。
2-实时/实时流媒体:VLC被使用,为了使其正常工作,我不得不绕过WebGL/HTML5视频安全限制。由于安全限制,不源自同一Web服务器和Web上下文或子上下文的视频流将无法播放。
要解决这个问题,只需在应用服务器前面安装一个ApacheWeb服务器,并将VLC流配置为在加载的网页的Web子上下文中。例如,在Apache2.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页面放在名为“desktop”的目录下即可。
结论:
尽管HTML5视频规格为流提供了空间,但到目前为止,我的结论是HTML5视频还没有为实时流做好准备。在我的实验中,视频标签总是会缓冲,我找不到一种方法来禁用它,最后导致至少5到8秒的延迟。
所以,我想目前基于flash和rtmp的解决方案仍然是可行的。