一个用于上传和显示各种编解码器的视频的wagtail模块。
项目描述
基于 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 依赖
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装包 的信息。