为什么通过CGI提供的视频不会被浏览器播放

时间:2015-04-24 23:19:08

标签: python google-chrome cgi html5-video

我正在尝试创建一个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的行为也会有所不同。

0 个答案:

没有答案