自动化文件处理软件FileFlows

在这里插入图片描述

什么是 FileFlows ?

FileFlows 是一款文件处理软件,可以转码、转换、压缩和管理任何文件类型,包括视频、音频、图像和漫画书。它支持多个平台、硬件编码器以及强大的流程和报告功能。

在这里插入图片描述

FileFlows 通过监视“库”(文件夹/路径)中的文件,会自动或根据时间表处理这些文件。例如,您可以将所有视频文件转码为适合您需求的格式。一个非常典型的用例是让 FFmpeg 将所有视频文件转换为特定的编解码器、音频编解码器、从视频中删除黑条、删除不需要的音频、字幕、重新复用为 mkv/mp4

FileFlows 提供了插件和脚本扩展,可以将多个操作合成一个流程,以便在单个步骤中执行多个操作,实现了类似 n8n 的自动化处理。

文章传送门:开源工作流自动化工具n8n

FileFlows 绝大部分应用场景是不需要订阅的,但一些更高级的功能,如更好的仪表板、外部数据库支持、更多的处理节点(免费中有 2个)需要 patreon 订阅。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 fileflows ,选择第一个 revenz/fileflows,版本选择 latest

本文写作时, latest 版本对应为 23.10

在这里插入图片描述

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 fileflows 和 子目录
mkdir -p /volume1/docker/fileflows/{data,logs,media/{pictures,output},temp}# 进入 fileflows 目录
cd /volume1/docker/fileflows# 运行容器
docker run -d \--restart unless-stopped \--name fileflows \-p 5040:5000 \-v /var/run/docker.sock:/var/run/docker.sock:ro \-v $(pwd)/data:/app/Data \-v $(pwd)/logs:/app/Logs \-v $(pwd)/temp:/temp \-v $(pwd)/media:/media \-e TempPathHost:$(pwd)/temp \revenz/fileflows
  • 目录说明:
文件夹装载路径说明
docker/fileflows/data/app/Data存放数据库、插件等
docker/fileflows/logs/app/Logs存放日志
docker/fileflows/temp/temp临时目录
docker/fileflows/media/media媒体目录

media 有两个子目录,和安装没有关系,主要是用于后面的示例,其中:

 pictures :用于存放需要转换的图片;output:用于存放转换完成后的图片;
  • 环境变量
可变
TZ时区设置
TempPathHost设置临时目录

更多的环境变量,请参考官方文档:https://fileflows.com/docs/installation/docker#parameters

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:fileflows:image: revenz/fileflowscontainer_name: fileflowsrestart: unless-stoppedports:- 5040:5000volumes:- /var/run/docker.sock:/var/run/docker.sock:ro- ./data:/app/Data- ./logs:/app/Logs - ./temp:/temp- ./media:/mediaenvironment:- TZ=Asia/Shanghai- TempPathHost=/volume1/docker/fileflows/temp

然后执行下面的命令

# 新建文件夹 fileflows 和 子目录
mkdir -p /volume1/docker/fileflows/{data,logs,media/{pictures,output},temp}# 进入 fileflows 目录
cd /volume1/docker/fileflows# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

NVIDIA 支持

如果你的群晖带 NVIDIA 显卡,可以使用硬件编解码,但是很抱歉,老苏的小机器没法帮大家测试、验证

# 运行容器(支持N卡)
docker run -d \--restart unless-stopped \--name fileflows \--runtime nvidia \-p 5040:5000 \-v /var/run/docker.sock:/var/run/docker.sock:ro \-v $(pwd)/data:/app/Data \-v $(pwd)/logs:/app/Logs \-v $(pwd)/temp:/temp \-v $(pwd)/media:/media \-e TempPathHost:$(pwd)/temp \-e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility \ -e NVIDIA_VISIBLE_DEVICES=all \revenz/fileflows

如果你是 unRAID,不仅支持 NVIDIA,也支持 Intel Quicksync (QSV)

其实群晖也是可以启用 Intel Quicksync (QSV) 的,具体检测办法可以参考老苏之前写的文章👇

文章传送门:

  • 用Dim搭建轻量级媒体服务器
  • 用Portainer安装Jellyfin媒体服务器(安装篇)

运行

在浏览器中输入 http://群晖IP:5040 ,第一次会有设置向导

在这里插入图片描述

设置完成后的主界面

在这里插入图片描述

安装插件

Plugins 中勾选全部,然后右键选择 download

在这里插入图片描述

下载完成后,全部都启用 enabled

在这里插入图片描述

设置 SMTP

FileFlows 支持 AppriseDiscordEmail 等通知方式,老苏选择了 Email,还是以 88 邮箱为例

  • SMTP Server:为 smtp 服务的地址;
  • SMTP Port:为 smtp 服务的端口;
  • SMTP Username:用户;
  • SMTP Password:密码;
  • Sender:显示发送电子邮件的电子邮件地址;

在这里插入图片描述

如果你要使用 Apprise,可以看老苏之前写的文章

文章传送门:几乎每个平台都可以使用的推送通知apprise

简单示例

假设我们的需求是:将其他的图片格式转为 png 格式

建流程

第一步、首先要在 FlowsADD 一个新的流程

在这里插入图片描述

如果template 显示空白,你会在日志中找到下面的错误,因此要确保你的群晖能连上 raw.githubusercontent.com

Error -> ExceptionMiddleware: Resource temporarily unavailable (raw.githubusercontent.com:443)

在这里插入图片描述

选择 Image File,然后点 NEXT

在这里插入图片描述

现在我们有了第一个节点,其他的节点要在右侧选取

在这里插入图片描述

第二个节点用的是 Image Format

在这里插入图片描述

  • Format 选择了 PNG

在这里插入图片描述

第三个节点用的是 Move File

  • Destination Folder:目标输出路径选择了 /media/output

在这里插入图片描述

第四个节点用的是 Send Email

  • Recipients:收件人的地址;
  • Subject:邮件主题;
  • Body:邮件的内容;

在这里插入图片描述

现在一个基本的流程就完成了,取名为 Image2png

在这里插入图片描述

建库

第二步、在 LibrariesADD 一个库

  • Template:下拉选择了 Image Library
  • Flow:选择我们前面创建的 Image2png 流程;

在这里插入图片描述

  • Scan:启用,并将 Scan Interval 设置为 3600

在这里插入图片描述

保存

在这里插入图片描述

添加文件

/fileflows/media/pictures 目录中丢一张图片

在这里插入图片描述

转换完成后,如果邮件设置没问题的话,会收到提醒邮件

在这里插入图片描述

/fileflows/media/output 中能看到转换后的 png 文件

在这里插入图片描述

遗留问题

  1. 本来想在邮件中设置使用图片文件名的,但是看了半天文档也没搞明白;
  2. 虽然转换成功了,但是原始的 jpg文件分辨率是 1920*1301,但是转换完成的 png分辨率是 1301*1301的;

在这里插入图片描述

  1. 多了一个文件,看起来像是群晖特有的;

在这里插入图片描述

参考文档

revenz/FileFlows: FileFlows is a file processing application that can execute actions against a file in a tree flow structure.
地址:https://github.com/revenz/FileFlows

FileFlows
地址:https://fileflows.com/

Docker | FileFlows
地址:https://fileflows.com/docs/installation/docker

FileFlows: Self hosted file processing, videos, audio, images, anything : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/15jledo/fileflows_self_hosted_file_processing_videos/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/327647.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

商家如何通过会员充值消费管理系统提升业务运营与用户体验

在当今数字化商业环境中,会员充值消费管理系统已经成为各类商家提高客户粘性、优化服务流程、增强市场竞争力的重要工具。那么如何通过会员充值消费管理系统提升业务运营与用户体验,商家是否有所了解呢?下面就带大家简单了解。 首先&#xf…

完美版视频网站模板 – 苹果CMS v10大橙子vfed主题

源码下载: https://download.csdn.net/download/m0_66047725/88700504 这次提供的大橙子 vfed 模板 已经完美,只去除了授权验证和正版主题神秘后门,不影响任何功能体验性。主题优化:全站响应式自带主题设置面板自带联盟资源库大全…

jquery图形验证码

效果展示 js图形随机验证码&#xff08;表单验证&#xff09; html代码片段 <form class"formwrap"><div class"item"><input type"text" id"code_input" value"" placeholder"请输入验证码"/>…

使用 go-elasticsearch v8 基本请求

使用 go-elasticsearch 请求示例 你可以通过参考Go 官方文档找到简单的示例&#xff0c;所以我认为先看看这个是个好主意。 连接客户端有两种方式&#xff0c;如下图。 至于两者的特点&#xff0c;TypedClient有类型&#xff0c;更容易编写&#xff0c;但文档较少。另外&…

关于谷歌Gemini大模型

2023年12月7日&#xff0c;谷歌AI宣布发布新一代基于Transformer架构的大模型Gemini。 Gemini的名字来源于双子座&#xff0c;象征着模型的双重性质&#xff1a; 一方面&#xff0c;它是一个强大的训练模型&#xff0c;可以在各种下游任务上进行微调&#xff0c;如文本摘要、机…

【面试】面向对象编程的三大概念(实例辅助记忆)

【面试】面向对象编程的三大概念&#xff08;实例辅助记忆&#xff09; 虑面向对象编程的三大特性&#xff0c;它们是&#xff1a; 封装&#xff08;Encapsulation&#xff09;&#xff1a; 将对象的状态和行为封装在一起&#xff0c;对外部隐藏对象的内部实现细节。这样可以防…

UnityVR入门之六 如何让3DUI层级在场景模型之上

一、问题来源 根据 UnityVR入门之五 射线检测交互-CSDN博客 这一章节我们了解到VR要与UI交互需要将Canvas设置为World Space属性&#xff0c;然后使用碰撞盒的方式进行射线交互。 正常我们ui是始终叠加在3d场景之上的&#xff0c;如此设置当ui与场景模型相交就会遮挡穿模 二、解…

LeetCode 2807. 在链表中插入最大公约数【链表,迭代,递归】1279

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

C# Entity Framework 中不同的数据的加载方式

延迟加载 延迟加载是指在访问导航属性时&#xff0c;Entity Framework 会自动查询数据库并加载相关数据。这种方式在我们需要访问导航属性时比较方便&#xff0c;因为我们无需手动加载相关数据&#xff0c;而且只会在需要时才会进行查询&#xff0c;从而减少了不必要的开销。但…

uniapp 文字超出多少字,显示收起全文按钮效果demo(整理)

收起展开 <template><view class"font30 color000 mL30 mR30"><text :class"showFullText ? : clamp-text">{{ text }}</text><view v-if"showToggleBtn && text.length > 42" click"toggleShowFu…

计算机组成原理 指令流水线

文章目录 指令流水线指令流水线的概念流水线性能分析流水线的吞吐率流水线的加速比流水线的效率 影响流水线的因素结构相关 (资源冲突)数据相关 (数据冲突)控制相关 (控制冲突) 流水线分类超量流水线 指令流水线 #mermaid-svg-vSsJnNqZf24LgjVK {font-family:"trebuchet m…

轻量检测模型NonoDet-Plus解析

官方解读&#xff1a;超简单辅助模块加速训练收敛&#xff0c;精度大幅提升&#xff01;移动端实时的NanoDet升级版NanoDet-Plus来了&#xff01; - 知乎 official implementation&#xff1a;https://github.com/RangiLyu/nanodet Backbone backbone部分没有变化&#xff0…