如何使用Google App Engine提供视频(博客)

时间:2015-02-08 19:41:56

标签: python google-app-engine video-streaming html5-video blobstore

我正在尝试学习如何使用blobstore提供视频而不需要将所有屏幕视频视频,例如

这里我将视频导入为video_model

class ViewVideo(webapp.Reque...,blobstore_handlers.BlobstoreDownloadHandler):

  def get(self):
    video_id = self.request.get('video_id')
    video_instance = None        
    if video_id:
        video_instance = video_model().get_video_content(video_id)
        self.response.headers['Content-Type'] = 'video/mp4' 
        self.send_blob(video_instance.content.key())            

class Video(db.Model):

  content = blobstore.BlobReferenceProperty()
  title = db.StringProperty()

  def get_video(self,video_id):
    return Video.get_by_id(video_id)


  def get_video_content(self,content):
    query_str = "SELECT * FROM Video WHERE content =:content"
    return db.GqlQuery(query_str,content=content).get() 

如果video_id来自给定的网址,但正如你所看到的那样,我把它直接放在send_blob()函数中,当我测试它时,所有的屏幕只是为了看视频,我想知道我该如何服务来自我的应用程序的视频没有发生这种情况,我在想嵌入式HTML,但我无法弄清楚源代码是什么

任何帮助都将不胜感激

如果缺少回答问题的内容,我会对其进行编辑

1 个答案:

答案 0 :(得分:0)

没有HTML5,这是一个棘手的混乱。 使用 HTML5,它变得简单&优雅。服务于用户浏览器,作为您所服务的任何页面的一部分,以下HTML(5)代码段:

<video width="320" height="240" controls>
  <source src="/getmp4?video_id=whatever" type="video/mp4">
Your browser does not support the video tag: please upgrade it!
</video>

并使用ViewVideo处理程序仅提供/getmp4网址,而不是用户通过浏览器直接获取的网址。

320240以及显示controls的选项,当然都是可选的 - 因为更多的是whatever用于视频ID! - )