2011-07-11 90 views
3

我正在對HTML5提供的視頻播放功能進行一些研究。我剛剛發現,Google Chrome和Firefox的最新版本支持通過帶有標記的HTTP播放WebM編碼的實況視頻流。我在哪裏可以找到有關WebM live http streaming的信息?

我在任何地方都找不到有關如何實際實施的信息。在Apple HTTP Live Streaming協議中有很多鏈接,但在WebM流媒體上沒有多少鏈接。

任何有用的鏈接將不勝感激。

回答

2

基本上你需要一個可以爲你流式傳輸WebM的服務器。

WowzaFlumotion是一些例子。

你可以閱讀關於它的討論here

+3

這些鏈接在使用什麼工具等方面很有用,但我實際上想知道在客戶端和服務器之間的協議方面會發生什麼。通過查看Firebug輸出,客戶端似乎創建了一個到服務器的HTTP套接字。只要套接字保持打開狀態,服務器就會保持套接字處於打開狀態並泵送視頻數據。您可以暫停播放器,但視頻仍然在後臺下載。這肯定與Apple HTTP直播或Microsoft SilverLight SmoothStreaming有很大不同。 –

1

這是我如何做了它在Ubuntu:

首先,從源代碼編譯的ffmpeg到包括libvpx驅動器(即使你使用的是有它的一個版本,你需要最新的(截至本月)流式傳輸webm,因爲他們只是添加了包含全局標頭的功能)。我在Ubuntu服務器和桌面上執行了此操作,並且this guide向我顯示了操作方法 - 其他操作系統can be found here的操作說明。

一旦你已經得到適當版本的ffmpeg/ffserver,你可以將它們設置爲流式傳輸,在我的情況下,這是按如下方式完成的。

在視頻捕獲裝置:

ffmpeg -f video4linux2 -standard ntsc -i /dev/video0 http://<server_ip>:8090/0.ffm 
  • 的是, 「-f video4linux2 - 標準NTSC -i的/ dev/video0的」 部分可以變化取決於輸入信號源(礦爲視頻採集卡)。

相關ffserver.conf摘錄:

Port 8090 
#BindAddress <server_ip> 
MaxHTTPConnections 2000 
MAXClients 100 
MaxBandwidth 1000000 
CustomLog /var/log/ffserver 
NoDaemon 

<Feed 0.ffm> 
File /tmp/0.ffm 
FileMaxSize 5M 
ACL allow <feeder_ip> 
</Feed> 
<Feed 0_webm.ffm> 
File /tmp/0_webm.ffm 
FileMaxSize 5M 
ACL allow localhost 
</Feed> 

<Stream 0.mpg> 
Feed 0.ffm 
Format mpeg1video 
NoAudio 
VideoFrameRate 25 
VideoBitRate 256 
VideoSize cif 
VideoBufferSize 40 
VideoGopSize 12 
</Stream> 
<Stream 0.webm> 
Feed 0_webm.ffm 
Format webm 
NoAudio 
VideoCodec libvpx 
VideoSize 320x240 
VideoFrameRate 24 
AVOptionVideo flags +global_header 
AVOptionVideo cpu-used 0 
AVOptionVideo qmin 1 
AVOptionVideo qmax 31 
AVOptionVideo quality good 
PreRoll 0 
StartSendOnKey 
VideoBitRate 500K 
</Stream> 

<Stream index.html> 
Format status 
ACL allow <client_low_ip> <client_high_ip> 
</Stream> 
  • 注意這個被配置用於在feeder_ip以執行上述的ffmpeg命令的服務器,並且在SERVER_IP服務器,以便向服務器通過client_high_ip而client_low_ip在server_ip上處理mpeg到webm對話(繼續)。

此FFMPEG命令在機器上執行先前稱爲SERVER_IP(它處理實際的MPEG - > WEBM轉換並將其反饋到ffserver的在不同的進料):

ffmpeg -i http://<server_ip>:8090/0.mpg -vcodec libvpx http://localhost:8090/0_webm.ffm 

一旦這些文件全部啓動(首先是ffserver,然後是feeder_ip ffmpeg進程,然後是server_ip ffmpeg進程),您應該能夠訪問http://:8090/0.webm上的實時流並檢查http中的狀態://:8090/

希望這會有所幫助。

相關問題