~/.local/bin 媒体工具箱
一组基于 fzf + ffmpeg 的命令行媒体处理脚本,编码参数数据库移植自 FFmpegFreeUI (3FUI) v6。
设计目标
- 所有媒体脚本使用 Bash,并优先采用
set -euo pipefail。 - 共享逻辑集中在
fzf-fftools-lib,避免重复实现选择器、编码器、日志和预览。 - 文件名统一按 Shell-safe 方式传递,支持空格与中文路径。
- 输出避免意外覆盖,任务与错误日志写入 XDG state 目录。
- fzf 是交互入口;非交互参数优先提供给脚本自动化使用。
依赖
必备:bash ffmpeg ffprobe fzf fd
按需:whisper-cli、ollama、chafa、yt-dlp、libplacebo/zscale。
运行 fzf-fftools 主菜单中的环境诊断可检查依赖和编码器。
核心组件
| 组件 | 作用 |
|---|---|
fzf-fftools |
总入口与环境诊断 |
fzf-fftools-lib |
文件选择、编码器、滤镜、日志、队列、预览等共享库 |
fzf-preview-video |
fzf 视频/图片/音频预览与缓存 |
fzf-ffmpeg-batch |
批量编码与可恢复队列 |
fzf-ffmpeg-preset |
内置与用户压制预设 |
工具分类
转码 / 编码
fzf-convert-media、fzf-ffmpeg-batch、fzf-ffmpeg-builder、fzf-ffmpeg-color、fzf-ffmpeg-preset、fzf-speed-video、fzf-target-size、fzf-trim-video
字幕
fzf-generate-subs、fzf-translate-subs、fzf-burn-subs、fzf-shift-subs、fzf-convert-subs
音频 / 图片
fzf-audio-tools、fzf-image-batch、fzf-add-watermark、fzf-mute-video、fzf-video-to-gif
合并 / 混流 / 抽流
fzf-merge-av、fzf-concat-video、fzf-mux-media、fzf-extract-streams、fzf-swap-audio
质量 / 分析
fzf-quality-eval、fzf-validate-media、fzf-media-report、fzf-screenshot-video
其他
fzf-download、fzf-pkg、battery-monitor、backlight、set-wallpapers、omarchy-show-done
Fish 集成
所有用户可直接调用的 fzf-* 工具都有对应的 Fish completion,文件位于 ~/.config/fish/completions/。
已清理已经合并/删除的旧 completion:fzf-compress-video、fzf-extract-audio。
fzf-fftools-lib、fzf-preview、fzf-preview-video 是内部库/预览回调,不提供普通命令补全。
状态与日志
- 运行日志:
~/.local/state/fzf-fftools/logs/ - 任务日志:
~/.local/state/fzf-fftools/tasks.log - 编码队列:
~/.local/state/fzf-fftools/queue.tsv - 预览缓存:
~/.cache/fzf-media-preview - 字体缓存:
~/.cache/fzf-fftools/fonts.tsv
用户预设
用户预设位于 ~/.config/fzf-fftools/presets/*.preset,格式示例:
desc=我的压制方案
args=-c:v libx265 -preset slow -crf 24 -pix_fmt yuv420p10le -c:a aac -b:a 192k
passes=1
ext=mp4
decode=
环境变量
| 变量 | 说明 |
|---|---|
FZF_SUBTITLE_FONT_SIZE / FZF_SUBTITLE_FONT_NAME / FZF_SUBTITLE_FONTS_DIR |
字幕默认样式 |
FZF_TRANSLATE_MODEL / FZF_TRANSLATE_BATCH |
Ollama 翻译模型与批量大小 |
FZF_VMAF_THREADS / FZF_VMAF_MODEL / FZF_VMAF_POOL |
VMAF 线程、模型和 pooling |
Shell 配置
Fish 主配置为 ~/.config/fish/config.fish,负责 CachyOS 默认层之上的用户覆盖、Starship、zoxide、fzf、Atuin、direnv 和 pay-respects 集成。
Starship 主配置为 ~/.config/starship.toml,采用紧凑单行左侧 prompt + 右侧状态信息布局,显示目录/Git、命令耗时、RAM、shell 与时间。











