2010-10-08 121 views
3

試圖將視頻從servlet流式傳輸到Windows媒體播放器(漸進式下載樣式)。流媒體工作,但我有一些奇怪的行爲,我想排除不是由我的實施中的問題引起的。通過HTTP將視頻流式傳輸到Windows Media Player(

當使用WMP打開從servlet的URL,WMP將進行總共4 HTTP-GET請求對同一資源,但略有不同的頁眉各一次。前三個請求的連接似乎在請求(包括頭文件)發送後立即關閉。第四個請求保持連接,我可以實際提供響應標題和文件內容。

在使用Wireshark來觀看前三請求嘗試。所有4個請求都會發送相同的響應啓動,並且前3個請求會在關閉之前設法發送響應標頭和文件內容的某些部分。 (不知道是不是它的相關性,但必須啓用「啓用從TSO-IP硬件支持數據包捕獲」爲Wireshark來正確地解析流,否則包含HTTP響應的第一個數據包被視爲格式不正確。)

下面這裏的4個請求報頭:

GET /basic/test.mpg HTTP/1.1 
Accept: */* 
User-Agent: Windows-Media-Player/12.0.7600.16415 
Accept-Encoding: gzip, deflate 
Host: 192.168.1.34 
Connection: Keep-Alive 

GET /basic/test.mpg HTTP/1.1 
Cache-Control: no-cache 
Connection: Keep-Alive 
Pragma: getIfoFileURI.dlna.org 
Accept: */* 
User-Agent: NSPlayer/12.00.7600.16385 WMFSDK/12.00.7600.16385 
GetContentFeatures.DLNA.ORG: 1 
Host: 192.168.1.34 

GET /basic/test.mpg HTTP/1.1 
Accept: */* 
User-Agent: NSPlayer/12.00.7600.16385 WMFSDK/12.00.7600.16385 
Icy-Metadata: 1 
Accept-Encoding: gzip, deflate 
Host: 192.168.1.34 
Connection: Keep-Alive 

GET /basic/test.mpg HTTP/1.1 
Cache-Control: no-cache 
Connection: Keep-Alive 
Pragma: getIfoFileURI.dlna.org 
Accept: */* 
User-Agent: NSPlayer/12.00.7600.16385 WMFSDK/12.00.7600.16385 
GetContentFeatures.DLNA.ORG: 1 
Host: 192.168.1.34 

響應頭:

HTTP/1.1 200 OK 
Content-Type: video/mpeg 
Content-Length: 130549760 
ETag: TEST1286565215430 
ContentFeatures.DLNA.ORG: DLNA.ORG_PN=MPEG_PS_PAL;DLNA.ORG_OP=00 
Server: Jetty(6.1.x) 

回答

0

用於第一3所請求的連接似乎是作爲請求(包括標頭)儘快關閉已發送。

「好像是」?我會找出某種方式或之前的程序。如果結束連接響應頭設置後,它可能是玩家期待一個非常具體的報頭存在。示例可以包括Range:Cache-Control: