2010-10-08 120 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: