我正在准备响应发送视频和接收错误的http请求:Broken Pipe
if self.path.endswith(".ts"):
f = open("filename.ts", 'r')
self.send_response(200)
self.send_header('Content-Type', "video/mp2t")
self.end_headers()
self.wfile.write(f.read())
return
以下相同的响应正常。
if self.path.endswith(".mov"):
f = open("filename.mov", 'r')
self.send_response(200)
self.send_header('Content-Type', "video/mpeg")
self.end_headers()
self.wfile.write(f.read())
return
我怀疑它与mimetype问题有关。任何人都可以建议我如何使用video / mp2t与baseHttpServer ??
答案 0 :(得分:1)
好的,我会试一试。服务器端的“断管”通常意味着客户端在服务器仍在发送数据时关闭连接。根据您之前的问题,我假设您的客户端是浏览器(使用<video>
标记)。这很可能意味着浏览器不支持播放MPEG传输流。实际上我还没有听说任何支持它的浏览器。
也许您应该尝试流式传输Ogg Theora视频(MIME类型“video / theora”)进行测试 - Firefox 3.1+支持开箱即用。如果可行,那么您的服务器实现是正确的。
答案 1 :(得分:0)
在mpeg2ts的上下文中,客户端(浏览器中的Quicktime)请求多个GET请求中的特定字节范围。根据请求的字节范围准备响应修复了问题。