尝试从servlet (渐进式下载样式)将视频流到windows媒体播放器。流工作,但我有一些奇怪的行为,我想排除这不是由我的实现问题造成的。
当使用WMP从servlet打开一个url时,WMP将对相同的资源执行总共4个http-get请求,但每次的头会略有不同。前3个请求的连接似乎在请求(包括标头)发送后立即关闭。第四个请求仍然是连接的,我实际上可以传递响应头和文件内容。
曾尝试使用wireshark观看前三次请求。对所有4个请求都发送相同的响应启动,前3个请求在关闭之前设法发送响应头和文件内容的某些部分。(不知道它是否相关,但必须为wireshark启用“支持IP TSO启用硬件的数据包捕获”来正确解析流,否则包含http-response的第一个数据包被视为格式错误。)
下面的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)发布于 2011-12-05 12:23:09
前3个请求的连接似乎在请求(包括标头)发送后立即关闭。
“似乎是”?在继续之前,我一定要找出一种办法或办法。如果在设置响应头之后结束连接,则可能是播放机期望出现一个非常特定的标题。例子可以包括Range:或Cache-Control:。
https://stackoverflow.com/questions/3893381
复制相似问题