【问题标题】:How to play(stream instead of download) video file which was stored in GCS using Blobstore API如何使用 Blobstore API 播放(流式传输而不是下载)存储在 GCS 中的视频文件
【发布时间】:2014-06-08 07:26:35
【问题描述】:

如何播放(流式传输而不是下载)存储在 GCS 中的视频文件?该文件是使用 GAE Python 中的 Blobstore API 存储的吗? 目前,当我在前端使用 send_blob 返回的 url 时,视频会被下载。

我使用以下方式提供视频:

video_url = "/v?video_id="+video_blobkey 

:: 

class GCSFileServe(blobstore_handlers.BlobstoreDownloadHandler):
    def get (self): 
        blob_key = self.request.get('video_id') 
        self.send_blob(blob_key) 

:: 

app = webapp2.WSGIApplication([
    ('/', MainHandler), 
    ('/v', GCSFileServe), 
], debug=True)

我上传视频并存储 blobkey:

filename = bucket + "/user_video_"+str (user_index) + "_" + str (i) 
gcs_file = gcs.open (filename, 'w', content_type = 'video/avi') 
gcs_file.write (video) 
gcs_file.close () 
blobstore_filename = '/gs' + filename 
video_blobkey = blobstore.create_gs_key (blobstore_filename)

在前端,我将视频 URL 传递给 TINY Box 2 jquery modal plugin。如果我提供 youtube url 而不是上传到 GCS 的视频,这将非常有效。

我看到了Streaming Transfers topic in GCS docs,但可以理解如何在这种情况下使用它(如果这是解决方案)。

【问题讨论】:

    标签: jquery python google-app-engine google-cloud-storage


    【解决方案1】:

    最后,我自己想通了。 实际上,我提供视频的方式没有问题。问题出在我使用的Galleria jquery plugin 上。它可以播放来自 youtube 和更多网站的视频,但如果您指定不同的 URL(例如自托管视频文件),则不能。

    解决方案
    我切换到Videojs 在我的网站上播放视频。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多