随机
Enter 搜索 ↑↓ 切换 Esc 清空

fan-video-tr

命令

fan-video-tr 视频转码工具部署运维

补充说明

本教程介绍 fan-video-tr 从源码编译、发布 GitHub Release 到目标服务器一键安装、卸载、备份、恢复的完整流程,适用于个人项目自建发布链路。

项目:fan-video-tr|视频转码工具(基于 FFmpeg,单二进制 + 原生前端内嵌,无账号密码的内网工具) 仓库:https://github.com/meimolihan/fan-video-tr 镜像:mobufan/fan-video-tr(Docker Hub)、ghcr.io/meimolihan/fan-video-tr(GHCR),均为 linux/amd64 + linux/arm64 multi-arch

安装与卸载

安装 / 升级

bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/fan-video-tr/main/scripts/install.sh)"
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/fan-video-tr/main/scripts/install.sh)" -p 8790 -d /var/lib/fan-video-tr -s /vol2/1000/downloads/fan-video-tr -y

卸载命令

bash scripts/uninstall.sh -y --purge
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/fan-video-tr/main/scripts/uninstall.sh)" -y --purge

Docker 部署

docker pull mobufan/fan-video-tr:latest
docker run -d --name fan-video-tr --restart unless-stopped -p 8790:8790 \
  -e FVT_APP_MEDIA_DIR=/media \
  -v /vol1/1000/compose/fan-video-tr/data:/data \
  -v /vol2/1000/downloads/fan-video-tr:/media:ro \
  --device /dev/dri:/dev/dri \
  mobufan/fan-video-tr:latest

或使用一键脚本:dc_inst_fan-video-tr

bash <(curl -sL gitee.com/meimolihan/cmdbox/raw/master/sh/dc_inst_fan-video-tr.sh) 8790 /vol1/1000/compose/fan-video-tr

备份与恢复

fan-video-tr 仓库未提供专门的备份/恢复脚本,备份对象为数据目录(转码成品 output/、转码模板 profiles.json、配置 config.yaml、日志)。仓库内的 fan-video-tr backup / restore 子命令仅输出操作说明。

备份数据

sudo systemctl stop fan-video-tr
sudo tar -czf /vol2/1000/file/backup/fan-video-tr-data_$(date +%Y%m%d_%H%M%S).tar.gz \
  -C /var/lib/fan-video-tr data
sudo systemctl start fan-video-tr
bash <(curl -sL gitee.com/meimolihan/cmdbox/raw/master/sh/universal_backup.sh) /var/lib/fan-video-tr/data /vol2/1000/file/backup/fan-video-tr-backup 6
# 1.下载脚本到 /usr/local/bin/fan-video-tr_backup
curl -fsSL gitee.com/meimolihan/cmdbox/raw/master/sh/universal_backup.sh -o /usr/local/bin/fan-video-tr_backup

# 2.增加执行权限
chmod +x /usr/local/bin/fan-video-tr_backup

# 3.测试运行一次(源目录/备份目录/保留份数:/var/lib/fan-video-tr/data → /vol2/1000/file/backup/fan-video-tr-backup 保留6份)
/usr/local/bin/fan-video-tr_backup /var/lib/fan-video-tr/data /vol2/1000/file/backup/fan-video-tr-backup 6

# 4.追加 crontab(root):每日凌晨2点30分执行,防重复追加
(crontab -l 2>/dev/null | grep -Fq '/usr/local/bin/fan-video-tr_backup /var/lib/fan-video-tr/data /vol2/1000/file/backup/fan-video-tr-backup 6') || (crontab -l 2>/dev/null; echo '30 2 * * * /usr/local/bin/fan-video-tr_backup /var/lib/fan-video-tr/data /vol2/1000/file/backup/fan-video-tr-backup 6 >> /var/log/fan-video-tr_backup.log 2>&1') | crontab -

# 5.验证定时任务是否写入成功
crontab -l

恢复数据

# 1.停服务并保留现有数据
sudo systemctl stop fan-video-tr
sudo mv /var/lib/fan-video-tr/data /var/lib/fan-video-tr/data.bak.$(date +%Y%m%d_%H%M%S)

# 2.解压最新备份(备份包内顶层目录为 data/)
sudo tar -xzf "$(ls -1t /vol2/1000/file/backup/fan-video-tr-backup/*.tar.gz | head -1)" -C /var/lib/fan-video-tr
sudo chmod 755 /var/lib/fan-video-tr/data

# 3.启动服务并核对模板/成品
sudo systemctl start fan-video-tr
journalctl -u fan-video-tr -n 50 --no-pager

脚本命令

命令 说明
bash scripts/install.sh [-p PORT] [-d INSTALL_DIR] [-s VIDEO_DIR] [-b BIN] [-y] 安装 / 升级为 systemd 服务(无 systemd 回退后台运行)
bash scripts/uninstall.sh [-y] [--purge|--keep-data] 卸载 fan-video-tr
bash scripts/build-and-push.sh vX.Y.Z [--yes] [-m "备注"] 升版 + 打 tag + 推代码 + 触发发布流水线
bash scripts/build-release.sh [amd64|arm64] 本地交叉编译 dist/(含 sha256、安装/卸载脚本、示例配置)
fan-video-tr status 查看运行方式 / PID / 端口 / 内存 / 路径 / 健康检查
fan-video-tr start|stop|restart 启停服务(systemd 优先,其次直接管理进程)
fan-video-tr uninstall [-y] [--purge|--keep-data] 停止并移除安装
fan-video-tr backup|restore 备份 / 恢复说明
fan-video-tr -version(或 version / -v) 显示版本号
fan-video-tr help 显示帮助(含访问地址)

启动选项

选项 说明 默认值
-port <端口> 监听端口 8790
-data <目录> 数据目录 ./data 或配置 app.data_dir
-media <目录> 视频浏览根目录 当前工作目录或配置 app.media_dir
-output <目录> 转码输出目录 <data>/output
-worker <数量> 并发转码数 1
# 手动前台运行(调试用)
/var/lib/fan-video-tr/fan-video-tr -port 8790 -data /var/lib/fan-video-tr/data -media /vol2/1000/downloads/fan-video-tr -worker 2

日常管理命令

操作 命令
启动 systemctl start fan-video-tr
关闭 systemctl stop fan-video-tr
重启 systemctl restart fan-video-tr
状态 systemctl status fan-video-tr
详细状态(PID/内存/健康) fan-video-tr status
查看实时日志 journalctl -u fan-video-tr -f
查看最近 30 行日志 journalctl -u fan-video-tr -n 30 --no-pager
查看编码能力/硬件加速 curl -s http://127.0.0.1:8790/api/capabilities
健康检查 curl -s http://127.0.0.1:8790/api/health
版本信息 curl -s http://127.0.0.1:8790/api/version
关闭开机自启 systemctl disable fan-video-tr
端口放行 firewall-cmd --permanent --add-port=8790/tcp && firewall-cmd --reload(firewalld)

配置说明

优先级:命令行参数 > 环境变量 > config.yaml > 内置默认值。

变量 默认值 说明
FVT_APP_PORT 8790 监听端口
FVT_APP_DATA_DIR ./data 数据目录(转码输出、模板)
FVT_APP_MEDIA_DIR 空 视频浏览根目录(留空可浏览全盘)
FVT_APP_OUTPUT_DIR output 转码输出目录(相对 data_dir)
FVT_APP_WORKER 1 并发转码数
FVT_FFMPEG_ACCEL auto auto / none / nvenc / qsv / vaapi
FVT_FFMPEG_DETECT_ACCEL true 启动时真实微型编码自检
FVT_FFMPEG_PRESET veryfast 默认编码预设
FVT_FFMPEG_CRF 23 默认 CRF(仅 CRF 模式生效)
FVT_FFMPEG_HW_DECODE false 硬件解码(关闭时兼容性最好)
FVT_LOGGING_LEVEL info debug / info / warn / error
FVT_VERSION / APP_VERSION - 覆盖版本号显示

硬件加速

启动时会真实跑一次微型编码自检,结果可在界面「硬件加速」区或启动日志「编码能力」一行查看:

auto 按 NVENC → QSV → VAAPI → 软件 顺序回退;硬件路径默认关闭硬件解码(ffmpeg.hw_decode: false)以优先保证兼容性。

数据目录说明