通过http将视频流传输到Windows Media Player

3
尝试从Servlet (渐进式下载样式)向Windows Media Player流式传输视频。流媒体可用,但是我遇到了一些奇怪的行为,我想排除这不是由于我的实现问题造成的。
当使用WMP打开来自servlet的url时,WMP将针对相同资源执行总共4个http-get请求,但每次请求的标头略有不同。前3个请求的连接似乎在请求(包括标头)发送后立即关闭。第四个请求保持连接状态,我实际上可以提供响应标头和文件内容。
尝试使用Wireshark观察前三个请求。所有4个请求的响应启动都相同,并且前3个请求在关闭之前已经成功发送了响应标头和部分文件内容。(不知道是否相关,但必须启用“支持来自IP TSO-enabled硬件的数据包捕获”以便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)
1个回答

0
前三个请求的连接似乎在请求(包括头部)发送后立即关闭了。
“似乎”?在继续之前,我会确定一种方法。如果在响应头设置后结束连接,可能是播放器期望出现非常特定的标头。例如,可以包括范围:缓存控制:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接