Seafile作为一款优秀的开源文件同步与共享解决方案,默认支持图片缩略图生成,但对视频文件的支持需要额外配置。本文将详细介绍如何在Seafile社区版和专业版中启用视频缩略图功能,支持包括MP4、AVI、FLV在内的常见视频格式。
目录
一、环境准备
Seafile服务器版本:7.1及以上(因为7.1版本以后默认未开启,需要手搓。)
首先安装好seafile,安装教程可以参照之前的文章:
Centos8/Ubuntu 22安装 seafile 8.0.11/9.0.16 专业版&企业版 一键安装脚本教程
seafile专业版|seafile企业版 7.0.14 安装教程
seafile 通用依赖环境安装:
pip3 install pillow imageio imageio-ffmpeg moviepy
测试依赖是否有效
>>python 回车
from moviepy.editor import VideoFileClip
如果没有报错,就可以继续往下做
Centos8+seafile9可以按如下安装依赖
Centos8默认使用Python 3.6,默认安装会导致依赖冲突,下面是测试可行的方案。
#20250810开启视频预览图支持,感谢@蛋蛋提供测试环境
pip3 install --timeout=3600 -i http://mirrors.aliyun.com/pypi/simple "imageio<2.16.0" "imageio-ffmpeg<0.4.7" moviepy==1.0.3 --trusted-host mirrors.aliyun.com
Centos 8+seafile8可以按如下安装依赖
版本矩阵:
- Python 3.6 + decorator 4.4.2 + moviepy 1.0.3 是验证可用的组合
- 新版本 decorator (5.x+) 需要 Python 3.7+
- imageio-ffmpeg里自带ffmpeg,所以无需单独安装ffmpeg
pip3 install \
numpy==1.19.5 \
decorator==4.4.2 \
imageio==2.9.0 \
imageio-ffmpeg==0.4.3 \
moviepy==1.0.3 \
二、seafile配置教程
1、修改配置文件
编辑seahub_settings.py
:
# NOTE: since version 7.1
ENABLE_VIDEO_THUMBNAIL = True
# 将第5秒的画面作为缩略图使用
THUMBNAIL_VIDEO_FRAME_TIME = 5
# 缩略图:高度(像素)和宽度(像素)
THUMBNAIL_DEFAULT_SIZE = 48
2、修改前端代码
针对seafile 8.0.11专业版
编辑/seafile-pro-server-8.0.11/seahub/media/assets/frontend/static/js/app.chunk.deff85b63033.js
:
搜索:
{return j.a.imageCheck(e.name)&&!e.encoded_thumbnail_src}
替换成:
{return (j.a.imageCheck(e.name) || j.a.videoCheck(e.name)) && !e.encoded_thumbnail_src}
编辑/seafile-pro-server-8.0.11/seahub/media/assets/frontend/static/js/commons.chunk.bae5010e0931.js
:
搜索:
["mp4","ogv","webm","mov"]
替换成
["mp4","ogv","webm","mov","avi","mkv","flv"]
如果不清楚在干嘛,可以直接用我已经改好的(只适用于seafile 8.0.11专业版)
一键替换命令(推荐):
只适用于seafile 8.0.11专业版,如需要其它版本,可以底部与我联系,技术交流。
#切换到seafile主程序目录,这里以/opt/seafile为例
cd /opt/seafile
#下载
curl -k -L "https://yun.ittel.cn:1443/f/2a21f3da47f54d148f53/?dl=1" -o "./seafile-pro-server-8.0.11/seahub/media/assets/frontend/static/js/app.chunk.deff85b63033.js"
curl -k -L "https://yun.ittel.cn:1443/f/80be3d7a64974e28b46a/?dl=1" -o "./seafile-pro-server-8.0.11/seahub/media/assets/frontend/static/js/commons.chunk.bae5010e0931.js"
curl -k -L "https://yun.ittel.cn:1443/f/49ac4824bc6d49e997a6/?dl=1" -o "./seafile-pro-server-8.0.11/seahub/seahub/utils/__init__.py"
最后重启seahub服务
systemctl restart seahub
三、测试效果
不得不说,效果还是很不错的,特别是一个目录下有很多视频,想知道视频的女主角只能一个个点开看,费时又费力。有了预览图就一目了然了,无论是管理影视资源还是工作素材,都能大幅提升检索与浏览效率,节省宝贵时间。
- 支持rmvb、MP4、flv、3gp、avi等视频生成预览图。
- 特别感谢站内用户 @蛋蛋 提供的测试素材(保护隐私,部分已打码)