跳转到主要内容

一个用于上传和显示各种编解码器的视频的wagtail模块。

项目描述

https://gitlab.com/neonjungle/wagtailvideos/badges/master/pipeline.svg

基于 wagtailimages。目标是与图像具有相同的功能,但针对html5视频。包括使用ffmpeg将视频转码为html5兼容编解码器的功能。

要求

  • Wagtail >= 6.1(对于旧版wagtail版本请参阅标签)

  • ffmpeg(可选,用于转码)

安装

使用pypi进行安装

pip install wagtailvideos

wagtailvideos 添加到您的已安装应用中。

INSTALLED_APPS = [
    'wagtailvideos',
]

使用

在页面模型上

作为 ForeignKey 关系实现,与 wagtailimages 相同。

from django.db import models

from wagtail.admin.edit_handlers import FieldPanel
from wagtail.core.fields import RichTextField
from wagtail.core.models import Page

from wagtailvideos.edit_handlers import VideoChooserPanel


class HomePage(Page):
    body = RichtextField()
    header_video = models.ForeignKey('wagtailvideos.Video',
                                     related_name='+',
                                     null=True,
                                     on_delete=models.SET_NULL)

    content_panels = Page.content_panels + [
        FieldPanel('body'),
        VideoChooserPanel('header_video'),
    ]

在 Streamfield 中

包含 VideoChooserBlock

from wagtail.admin.edit_handlers import StreamFieldPanel
from wagtail.core.fields import StreamField
from wagtail.core.models import Page

from wagtailvideos.blocks import VideoChooserBlock


class ContentPage(Page):
  body = StreamField([
      ('video', VideoChooserBlock()),
  ])

  content_panels = Page.content_panels + [
      StreamFieldPanel('body'),
  ]

在模板中

视频模板标签需要一个必需的位置参数,即视频字段。所有额外的属性都添加到周围的 <video> 标签中。原始视频和所有额外的转码都作为 <source> 标签添加。

{% load wagtailvideos_tags %}
{% video self.header_video autoplay controls width=256 %}

还包括 Jinja2 扩展。

如何使用 ffmpeg 进行转码

使用左侧菜单中的视频集合管理器。在视频编辑部分,您可以看到可用的转码以及一个可以用来创建新转码的表单。假设您的 ffmpeg 编译版本具有转码所需的匹配编解码器库。

禁用转码

可以使用 WAGTAIL_VIDEOS_DISABLE_TRANSCODE 设置来禁用转码。

# settings.py
WAGTAIL_VIDEOS_DISABLE_TRANSCODE = True

修改缩略图扩展

可以使用 WAGTAIL_VIDEOS_THUMBNAIL_EXTENSION 设置来修改自动生成的缩略图扩展。默认值为 jpg。

# settings.py
WAGTAIL_VIDEOS_THUMBNAIL_EXTENSION = 'webp'

自定义视频模型

与 Wagtail Images 相同,可以使用自定义模型替换内置的视频模型,通过 WAGTAILVIDEOS_VIDEO_MODEL 设置。

# settings.py
WAGTAILVIDEOS_VIDEO_MODEL = 'videos.AttributedVideo'

# app.videos.models
from django.db import models
from modelcluster.fields import ParentalKey
from wagtailvideos.models import AbstractVideo, AbstractVideoTranscode

class AttributedVideo(AbstractVideo):
    attribution = models.TextField()

    admin_form_fields = (
        'title',
        'attribution',
        'file',
        'collection',
        'thumbnail',
        'tags',
    )

class CustomTranscode(AbstractVideoTranscode):
    video = models.ForeignKey(AttributedVideo, related_name='transcodes', on_delete=models.CASCADE)

    class Meta:
        unique_together = (
            ('video', 'media_format')
        )

# Only needed if you are using the text tracks feature
class CustomTrackListing(AbstractTrackListing):
    video = models.OneToOneField(AttributedVideo, related_name='track_listing', on_delete=models.CASCADE)

class CustomVideoTrack(AbstractVideoTrack):
    listing = ParentalKey(CustomTrackListing, related_name='tracks', on_delete=models.CASCADE)

视频文本轨道

要启用上传和显示 VTT 轨道(例如,字幕,字幕),您需要将 wagtail_modeladmin 添加到您的已安装应用中。一旦添加,管理中就会有一个新的区域,可以用于将 VTT 文件附加到带有相关元数据的视频。

未来功能

  • 一些文档

  • 富文本嵌入

  • 通过外部服务进行转码而不是 ffmpeg

  • 移除 wagtail-modeladmin 依赖

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

wagtailvideos-7.0.2.tar.gz (82.9 kB 查看散列)

上传时间

构建分布

wagtailvideos-7.0.2-py2.py3-none-any.whl (112.5 kB 查看散列)

上传时间 Python 2 Python 3

由以下支持