【问题标题】:Stream Video From Gridfs using Python Pyramid and Mongoengine使用 Python Pyramid 和 Mongoengine 从 Gridfs 流式传输视频
【发布时间】:2016-06-19 20:19:28
【问题描述】:

我相当肯定我并不完全理解这里的机制,但我正在尝试通过使用 Mongoengine 存储的 Pyramid 框架从 GridFS 流式传输数据来显示视频内容。很遗憾,我的页面找不到内容。

神社2:

<div align="center" class="embed-responsive embed-responsive-16by9">
  <video class="embed-responsive-item" controls>
    {% if board.video %}                    
      <source src="{{ request.route_url('boards_video', name=board.name, videoname=board.video.filename) }}" type="video/*">
      Your browser does not support the video tag.  And that makes me sad.
    {% else %}
      <source src="#" type="video/*">
    {% endif %}
  </video>
</div>            

查看代码:

@view_config(route_name="boards_video")
  def boards_video(request):            
    from .models import Board
    name = request.matchdict["name"]
    board = Board.objects("name"=name).first().get()
    response = Response(content_type=board.video.content_type)
    response.content_length = board.video.get().length
    response.app_iter = FileIter(board.video)
    return response

路线:

config.add_route("boards_video", "/boards/{name}/videos/{videoname}")

型号:

class Board(document.Document):
    name = fields.StringField(required=True)
    video = fields.FileField()

当我检查 jinja2 生成的源时正在生成 URL,但生成的页面视频内容显示“没有找到支持格式和 MIME 类型的视频”。完成此任务的正确方法是什么?

【问题讨论】:

  • 嗯,我认为这肯定与 HTML 标记有关。提供给来自 video 标签的 src 属性的 URL 是有效的,并且可以全屏播放视频。我不确定除了 URL 的使用之外有什么区别肯定是一个请求,它会调用视图。本来以为在src属性中使用url,本质上也是一个请求,但或许不是这样的。

标签: python twitter-bootstrap-3 jinja2 pyramid mongoengine


【解决方案1】:

正如我所说,这归结为我对起作用的机制缺乏了解。问题确实出在 HTML 上。

在类型属性中使用星号是无效值。相反,该行应如下所示:

<source src="{{ request.route_url('boards_video', name=board.name, videoname=board.video.filename) }}" type="video/mp4">

我的特定用例是尝试播放 mp4,所以我必须明确。看来浏览器(在我最初的测试用例中,Firefox)能够通过完全删除 type 属性来确定值:

<source src="{{ request.route_url('boards_video', name=board.name, videoname=board.video.filename) }}">

我认为最好明确一点,以确保将错误降至最低。

更多信息:

http://www.w3schools.com/html/html5_video.asp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 2011-06-20
    • 2016-09-18
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多