我在我的django网站显示我的视频.我想显示这些视频像缩略图,但我不知道如何为我的视频创建缩略图.我已经通过管理模块存储我的视频.这里是我的代码
models.py
class Video(models.Model):
title = models.CharField(max_length=200, null=True, blank=True)
video = models.FileField(upload_to='static/gallery/videos',
null=False,
help_text=_("video file")
)
admin.py
from django.contrib import admin
from .models import Video
admin.site.register(Video)
任何一个帮助我如何存储我的视频缩略图格式在数据库或如何显示我检索到的视频缩略图格式。
先谢谢你了
3条答案
按热度按时间rekjcdws1#
您可以添加一个可空的文件字段来存储缩略图,并在
save
方法中手动填充或使用模型保存信号。您可以使用这些问题的答案来了解如何生成这些缩略图:
https://stackoverflow.com/a/1843043/1823497
https://stackoverflow.com/a/27565893/1823497
由于生成缩略图可能是一项耗时的工作,我建议使用celery task在后台完成,而不会阻塞您的Web服务器。
au9on6nz2#
1)安装opencv-python 2)检查文件是视频还是图像3)我不知道从内存中视频捕获,所以将文件写入磁盘,然后使用cv2.videocapture加载4)取第一帧并写入磁盘5)再次从磁盘加载图像并保存在数据库6)删除磁盘中的临时文件
bxfogqkk3#
这里是一个生成缩略图的例子。你可以根据Django项目的需要调整代码。
我用的是ffmpeg-python: Python bindings for FFmpeg