IT技术之家 网络技术 Seafile 社区版/专业版开启视频缩略图/预览图教程(支持MP4、mov、avi、flv等视频格式)

    Seafile 社区版/专业版开启视频缩略图/预览图教程(支持MP4、mov、avi、flv等视频格式)

    Seafile作为一款优秀的开源文件同步与共享解决方案,默认支持图片缩略图生成,但对视频文件的支持需要额外配置。本文将详细介绍如何在Seafile社区版和专业版中启用视频缩略图功能,支持包括MP4、AVI、FLV在内的常见视频格式。

    Seafile

    一、环境准备

    Seafile服务器版本:7.1及以上(因为7.1版本以后默认未开启,需要手搓。)

    首先安装好seafile,安装教程可以参照之前的文章:

    Centos8/Ubuntu 22安装 seafile 8.0.11/9.0.16 专业版&企业版 一键安装脚本教程

    seafile专业版|seafile企业版 7.0.14 安装教程

    seafile 通用依赖环境安装:

    pip3 install 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
    
    # 存放缩略图文件的目录的绝对文件系统路径
    # 非默认安装改为实际路径
    THUMBNAIL_ROOT = '/opt/seafile/seahub-data/thumbnail/thumb/'

    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","3gp","rmvb","wmv"]

    如果不清楚在干嘛,可以直接用我已经改好的(只适用于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"

    针对seafile 9.0.16专业版

    发现默认代码下9.0.16生成预览图成功率极低,20%左右,参照8.0.11代码,改写,成功率100%.

    1、修改/seafile-pro-server-9.0.16/seahub/seahub/utils/__init__.py

    # 搜索mp4,添加"mkv", "flv","3gp",'rmvb'支持
    VIDEO: ('mp4', 'ogv', 'webm', 'mov',"avi", "mkv", "flv","3gp",'rmvb','wmv'),

    最终效果如下:

    PREVIEW_FILEEXT = {
        IMAGE: ('gif', 'jpeg', 'jpg', 'png', 'ico', 'bmp', 'tif', 'tiff', 'psd'),
        DOCUMENT: ('doc', 'docx', 'ppt', 'pptx', 'odt', 'fodt', 'odp', 'fodp'),
        SPREADSHEET: ('xls', 'xlsx', 'ods', 'fods'),
        SVG: ('svg',),
        PDF: ('pdf', 'ai'),
        MARKDOWN: ('markdown', 'md'),
        VIDEO: ('mp4', 'ogv', 'webm', 'mov',"avi", "mkv", "flv","3gp",'rmvb','wmv'),
        AUDIO: ('mp3', 'oga', 'ogg'),
        #'3D': ('stl', 'obj'),
        XMIND: ('xmind',),
        CDOC: ('cdoc',),
    }

    2、修改前端JS

    最后重启seahub服务

    systemctl restart seahub

    针对seafile 13.0.12专业版

    1、进入thumbnail-server容器内部

    修改/opt/seafile/thumbnail-server/seafile_thumbnail/utils.py

    # 搜索mp4,添加"mkv", "flv","3gp",'rmvb'支持
    VIDEO: ('mp4', 'ogv', 'webm', 'mov',"avi", "mkv", "flv","3gp","rmvb","wmv","asf","rm","ts"),
    

    或直接执行

    curl -k -L "https://yun.ittel.cn:1443/f/f3d49eee5c664fbf80a4/?dl=1" -o "/opt/seafile/thumbnail-server/seafile_thumbnail/utils.py"

    2、修改前端JS

    3、固化配置

    #激进做法,永久有效
    docker commit seafile seafileltd/seafile-pro-mc:13.0-latest
    docker commit thumbnail-server seafileltd/thumbnail-server:13.0-latest
    
    #老司机做法,后续要在.env中更改镜像名称
    docker commit seafile ittel/seafile-pro-mc:13.0-latest
    docker commit thumbnail-server ittel/thumbnail-server:13.0-latest
    

    最后不要忘记重启seafile和thumbnail-server服务

    docker-compose restart seafile thumbnail-server

    针对seafile 13.0.14专业版(二进制安装)

    发现默认代码下13.0.14生成预览图成功率极低,20%左右,参照8.0.11代码,改写,成功率100%.

    安装依赖

    pip3 install imageio==2.37.2  imageio_ffmpeg==0.6.0 moviepy==2.2.1

    1、修改/seafile-pro-server-13.0.14/seahub/seahub/utils/__init__.py

    # 搜索mp4,添加"mkv", "flv","3gp",'rmvb'等支持
    VIDEO: ('mp4', 'ogv', 'webm', 'mov',"avi", "mkv", "flv", "3gp", "rmvb", "wmv", "asf", "rm", "ts"),

    最终效果如下:

    PREVIEW_FILEEXT = {
        IMAGE: ('gif', 'jpeg', 'jpg', 'png', 'heic', 'ico', 'bmp', 'tif', 'tiff', 'psd', 'webp', 'jfif'),
        DOCUMENT: ('doc', 'docx', 'docxf', 'oform', 'ppt', 'pptx', 'odt', 'fodt', 'odp', 'fodp', 'odg', 'pages'),
        SPREADSHEET: ('xls', 'xlsx', 'ods', 'fods'),
        SVG: ('svg',),
        PDF: ('pdf', 'ai'),
        MARKDOWN: ('markdown', 'md'),
        VIDEO: ('mp4', 'ogv', 'webm', 'mov',"avi", "mkv", "flv","3gp","rmvb","wmv","asf","rm","ts"),
        AUDIO: ('mp3', 'oga', 'ogg', 'wav', 'flac', 'opus'),
        #'3D': ('stl', 'obj'),
        SEADOC: ('sdoc',),
        TLDRAW: ('draw',),
        EXCALIDRAW: ('exdraw',),
    }

    2、修改前端JS

    最后重启seahub服务

    systemctl restart seahub

    三、测试效果

    不得不说,效果还是很不错的,特别是一个目录下有很多视频,想知道视频的女主角只能一个个点开看,费时又费力。有了预览图就一目了然了,无论是管理影视资源还是工作素材,都能大幅提升检索与浏览效率,节省宝贵时间。

    • 支持rmvb、MP4、flv、3gp、avi等视频生成预览图。
    • 特别感谢站内用户 @蛋蛋 提供的测试素材(保护隐私,部分已打码)

    seafile 13视频预览效果

    1、本站提供的软件均为 “试用版” 或者 “免费版”,仅供学习和研究使用
    2、友情提醒:内容全部搜集自网络,安装教程参照压缩包内的Readme.txt编写
    3、因使用本站软件产生的法律责任由使用者自行承担,本站不承担任何连带责任。
    4、如有内容不慎侵犯了您的权益,请速与我联系!
    如有转载请注明出处:https://www.ittel.cn/archives/53838.html
    guest
    2 评论
    内联反馈
    查看所有评论
    userch02
    userch02
    1 年 前

    更新重启后服务起不来,麻烦看看,Job for seafile-server.service failed because the control process exited with error code. See “systemctl status seafile-server.service” and “journalctl -xe” for details

    联系我们

    联系我们

    QQ:877196754

    在线咨询: QQ交谈

    邮箱: ittel@qq.com

    工作时间:周一至周日,8:00-21:00
    返回顶部
    2
    0
    希望看到您的想法,请您发表评论x