2011-10-27 139 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