我正在尝试创建一个Python CGI,用于从我服务器中的隐藏位置加载视频,然后打印"该视频到stdout以便HTTP客户端可以获得它的内容。
这是我的python CGI脚本:
import os
import sys
filePath = "test_video.mp4"
print "Last-Modified: Fri, 24 Apr 2015 22:09:52 GMT"
print "Accept-Ranges: bytes"
print "Content-Length:", os.path.getsize(filePath)
print "Content-type: video/mp4\n"
sys.stdout.flush()
content = file(filePath, "rb").read()
sys.stdout.write(content)
sys.stdout.flush()
当我打开指向视频的链接时,例如使用Google Chrome(http://192.168.0.4/~fccoelho/mpeg/test_video.mp4),视频就会完美播放。但是,当我打开(http://192.168.0.4/~fccoelho/mpeg/test.py)这是用于提供相同文件的CGI脚本时,视频不会播放。
奇怪的是,当我同时使用wget时,所提供的文件完全相同。
我还用curl检查了标题:
curl -I http://192.168.0.4/~fccoelho/mpeg/test.py
HTTP/1.1 200 OK
Date: Fri, 24 Apr 2015 23:09:34 GMT
Server: Apache/2.4.7 (Ubuntu)
Accept-Ranges: bytes
Last-Modified: Fri, 24 Apr 2015 22:09:52 GMT
Content-Length: 32445874
Content-Type: video/mp4
curl -I http://192.168.0.4/~fccoelho/mpeg/test_video.mp4
HTTP/1.1 200 OK
Date: Fri, 24 Apr 2015 23:09:55 GMT
Server: Apache/2.4.7 (Ubuntu)
Last-Modified: Fri, 24 Apr 2015 22:09:52 GMT
ETag: "1ef15b2-5147fa7cfbd80"
Accept-Ranges: bytes
Content-Length: 32445874
Content-Type: video/mp4
它们似乎兼容。 有人能说出为什么这种方法无效吗?
我已经在Firefox中尝试了所有内容,但它确实有效。 但让我感到害怕的是,即使收到相同的回复,Google Chrome的行为也会有所不同。