一款基于 FFmpeg 的 Windows 图形化批量媒体处理工具。选择输入文件后自动匹配可用操作,多选操作并独立配置参数,一键批量执行。
- 42 种操作,覆盖格式转换、视频剪辑、音频处理、分辨率/帧率、压缩、截图/缩略图、GIF、字幕、水印、滤镜、图片处理等
- 文件类型自动检测(视频 / 音频 / 图片),动态过滤可用操作列表
- 多选 + 独立参数:可勾选多项操作,每项单独配置参数,一键批量执行
- 实时执行日志:暗色终端风格日志,实时输出 FFmpeg 运行信息
- 输出自动避重:同名文件自动追加序号,多帧输出自动使用序列命名
- Windows(依赖 tkinter,字体路径硬编码 Windows 路径)
- Python 3(内置 tkinter,无需第三方依赖)
- FFmpeg(
ffmpeg+ffprobe已安装并加入系统PATH)
python ffmpeg_toolbox.py- 选择输入文件(视频 / 音频 / 图片),系统自动识别类型
- 勾选操作,在右侧面板配置每项参数
- 选择输出目录(默认自动填入输入文件所在目录)
- 点击 开始执行,实时查看日志,完成后可一键打开输出目录
| 分类 | 操作 |
|---|---|
| 基本信息 | 查看媒体信息 (ffprobe) |
| 格式转换 | 转 MP4 / MKV / WebM / MOV |
| 视频剪辑 | 按时间段截取、按时长截取 |
| 音频处理 | 提取 MP3 / WAV、去除音频、调整音量、替换音轨、音频转 MP3 / WAV / AAC / FLAC |
| 分辨率与帧率 | 缩放自定义宽度、缩放 720p、改变帧率 |
| 压缩与码率 | H.264 (CRF)、H.265/HEVC |
| 截图与缩略图 | 单张截图、定时截图序列、缩略图网格 |
| GIF 制作 | 基础 GIF、高质量 GIF(调色板) |
| 字幕处理 | 嵌入软字幕、硬字幕烧录 |
| 水印 | 图片水印(5 位置)、文字水印(5 位置) |
| 实用滤镜 | 水平/垂直翻转、旋转 90°、亮度/对比度/饱和度、黑白、模糊 |
| 实用技巧 | 加速播放、慢速播放、反转视频 |
| 图片处理 | 图片转 PNG / JPG、缩放图片 |
FFmpegTool/
├── ffmpeg_toolbox.py # 唯一源代码(单文件,约 930 行)
├── PRODUCT.md # 产品说明
└── README.md # 本文档
代码按职责分区:
| 区域 | 职责 |
|---|---|
| 文件类型定义 | 扩展名集合与 detect_file_type() |
| 工具函数层 | 滤镜路径转义、字体查找、输出路径生成、变速链构建 |
| 命令构建层 | 每个操作对应的 FFmpeg 命令拼接函数 |
操作注册表 OPERATIONS |
42 个操作的声明式元数据(id/类型/参数/构建函数) |
可滚动框架 ScrollFrame |
Canvas + Scrollbar 复用的滚动容器 |
主界面 FFmpegToolbox |
样式、UI 搭建、交互、后台任务调度、日志轮询 |
核心设计是数据驱动:新增操作只需在 OPERATIONS 列表追加一条记录并编写对应 build_xxx 函数,界面会自动生成参数面板。
- 仅在 Windows 上运行(字体路径硬编码
C:/Windows/Fonts/) - 快速剪辑(
-c copy)为流复制,起始帧可能不精确;如需精确请选择「精确帧(重新编码)」 - 文字水印通过临时文本文件渲染,支持任意特殊字符(单引号、冒号、百分号、反斜杠等),执行完成后自动清理临时文件
- 界面语言为简体中文