के साथ स्ट्रीमिंग फाइलें मैं चेरीपी का उपयोग कर एक वीडियो फ़ाइल स्ट्रीम करने की कोशिश कर रहा हूं। जब मैं लोकहोस्ट पर जाता हूं: 8080/स्ट्रीम? वीडियो = video.avi यह डाउनलोड करना शुरू हो जाता है, लेकिन कुछ सेकंड बाद यह डाउनलोड को पूरा करता है चाहे फ़ाइल कितनी बड़ी हो। मैं इसके लिए नया हूं और यह नहीं पता कि यह ऐसा क्यों कर रहा है। इसके अलावा, अगर यह Matroska (.mkv) है तो यह फ़ाइल को क्यों पहचान नहीं सकता है?चेरीपी
class Stream(object):
@cherrypy.expose
def default(self, video=None):
BASE_PATH = ".."
video = os.path.join(BASE_PATH, video)
if video == None:
return "no file specified!"
if not os.path.exists(video):
return "file not found!"
f = open(video)
size = os.path.getsize(video)
mime = mimetypes.guess_type(video)[0]
print(mime)
cherrypy.response.headers["Content-Type"] = mime
cherrypy.response.headers["Content-Disposition"] = 'attachment; filename="%s"' % os.path.basename(video)
cherrypy.response.headers["Content-Length"] = size
BUF_SIZE = 1024 * 5
def stream():
data = f.read(BUF_SIZE)
while len(data) > 0:
yield data
data = f.read(BUF_SIZE)
return stream()
default._cp_config = {'response.stream': True}
कुछ ऐसा करना। बफरिंग के समय भी एक प्रकार का स्टॉप प्राप्त करना और बफर आकार मिलने के बाद स्रोत को डाउनलोड करना जारी रखना भी सुनिश्चित नहीं है। – Twisty