一个基于 PyQt6 和 FFmpeg 开发的现代化视频压缩工具,采用深色主题设计,支持批量视频压缩。
推荐方式:下载安装包 https://izdax-jianying.oss-cn-beijing.aliyuncs.com/static/LijiangVideoCompressionTool_Setup_v1.0.0.exe
📦 最新版本: v1.0.0 已发布,包含完整的安装程序和所有功能。
开发方式:克隆项目后运行 python main.py
- ✅ 支持批量导入视频文件(MP4、AVI、MOV、MKV、WMV、FLV、WebM、M4V)
- ✅ 直观的压缩参数调节界面(10%-90%压缩比例)
- ✅ 实时显示预估输出大小
- ✅ 一键启动压缩功能,集成 FFmpeg 作为后端处理引擎
- ✅ 实时进度条展示压缩进度
- ✅ 支持单个/全部任务取消
- ✅ 完成后提示保存路径选择,默认保存至源文件目录并添加 '_compressed' 后缀
- ✅ 采用深色主题为主色调,搭配高对比度交互元素
- ✅ 布局清晰分区:文件列表区、参数设置区、控制区、进度展示区
- ✅ 支持拖拽文件到窗口添加任务
- ✅ 操作反馈:压缩成功/失败提示、错误日志查看
- ✅ 适配不同屏幕分辨率,窗口可缩放
- ✅ 使用 PyQt6 的 QThread 实现后台压缩,避免 UI 卡顿
- ✅ 集成 FFmpeg 作为视频处理引擎,提供高质量压缩
- ✅ 压缩过程中显示实时帧率、剩余时间预估
- ✅ 支持常见视频格式的识别与处理
- ✅ 异常处理:文件损坏提示、格式不支持警告、磁盘空间不足提醒
- ✅ 独立可执行文件,无需安装 Python 环境
- Windows 10/11(推荐)
- 至少 2GB 可用磁盘空间
- 下载
LijiangVideoCompressionTool_Setup_v1.0.0.exe - 双击运行安装程序
- 按照安装向导完成安装
- 安装完成后可从桌面快捷方式或开始菜单启动
- 首次运行会自动检测并配置FFmpeg环境
- 下载项目到本地
- 安装 Python 3.11+ 环境
- 安装依赖包:
pip install -r requirements.txt
- 运行程序:
python main.py
python main.py-
添加文件
- 点击"添加文件"按钮选择视频文件
- 或者直接拖拽视频文件到程序窗口
-
设置压缩参数
- 使用滑块调节压缩比例(10%-90%)
- 实时查看预估输出大小
-
开始压缩
- 点击"开始压缩"按钮
- 查看实时进度和状态信息
-
管理任务
- 可以随时点击"取消压缩"停止任务
- 支持清空文件列表
- 文件列表显示:文件名、格式、大小、状态
- 支持多选删除文件
- 支持拖拽排序
izdax_video_compression_tool/
├── main.py # 主程序入口
├── config.py # 配置文件
├── ui/ # UI模块
│ ├── __init__.py
│ ├── main_window.py # 主窗口UI
│ └── styles.py # 深色主题样式
├── core/ # 核心功能模块
│ ├── __init__.py
│ ├── video_compressor.py # 视频压缩核心逻辑
│ ├── ffmpeg_compressor.py # FFmpeg压缩实现
│ ├── file_handler.py # 文件处理工具
│ └── thread_pool_manager.py # 线程池管理
├── ffmpeg/ # FFmpeg 二进制文件
│ ├── bin/ # FFmpeg 可执行文件
│ │ ├── ffmpeg.exe
│ │ ├── ffplay.exe
│ │ └── ffprobe.exe
│ ├── doc/ # FFmpeg 文档
│ ├── presets/ # FFmpeg 预设文件
│ ├── LICENSE # FFmpeg 许可证
│ └── README.txt # FFmpeg 说明
├── build/ # 构建临时文件
├── dist/ # 构建输出目录
│ └── LijiangVideoCompressionTool.exe # 可执行文件
├── requirements.txt # 依赖包列表
├── build.py # 构建脚本
├── video_compression.spec # PyInstaller 配置文件
├── installer.nsi # NSIS 安装脚本
├── icon.ico # 程序图标
├── LICENSE # MIT 许可证
├── LijiangVideoCompressionTool_Setup_v1.0.0.exe # 安装包
├── README.md # 说明文档
├── add_copyright.py # 版权声明脚本
└── docs/ # 详细文档
├── README.md # 文档索引
├── BUILD.md # 构建说明
└── ICON_README.md # 图标文件说明
- 模块化设计:UI、核心逻辑、文件处理分离
- 多线程处理:使用 QThread 避免 UI 阻塞
- 信号槽机制:实现组件间通信
- 异常处理:完善的错误处理和用户反馈
- MainWindow:主窗口,协调各个组件
- FileListWidget:文件列表管理
- CompressionControlWidget:压缩参数控制
- ProgressWidget:进度显示
- VideoCompressor:视频压缩核心逻辑
- FFmpegVideoCompressor:FFmpeg 压缩实现
- FileHandler:文件处理工具
- ThreadPoolManager:线程池管理
- 使用 FFmpeg 进行高质量视频处理
- 保持原始宽高比
- 支持多种视频格式
- 自动优化编码参数
- 提供多种压缩质量选项
-
程序无法启动
- 检查 Python 版本(需要 3.11+)
- 确认已安装所有依赖包
- 检查 FFmpeg 文件是否完整
-
压缩失败
- 检查输入文件是否损坏
- 确认磁盘空间充足
- 检查文件格式是否支持
- 检查 FFmpeg 可执行文件权限
-
界面显示异常
- 检查 PyQt6 版本
- 尝试重启程序
- PyQt6 >= 6.4.0
- PyInstaller >= 5.0(仅构建时需要)
使用项目提供的构建脚本:
python build.py构建脚本会自动:
- 检测并安装 PyInstaller
- 检测 NSIS 安装(用于创建安装包)
- 打包应用程序为单个可执行文件
- 创建 Windows 安装包
- Python 3.11+
- PyInstaller(构建脚本会自动安装)
- NSIS(用于创建安装包,可选)
dist/LijiangVideoCompressionTool.exe- 独立可执行文件LijiangVideoCompressionTool_Setup_v1.0.0.exe- Windows 安装包
📖 详细构建说明: 请查看 构建文档 了解完整的构建流程、配置选项和故障排除指南。
- 遵循 PEP 8 编码规范
- 使用类型提示
- 完善的文档字符串
- 模块化设计
- 可以轻松添加新的视频格式支持
- 可以扩展压缩算法
- 可以添加更多UI主题
本项目采用 MIT 许可证。详见 LICENSE 文件。
- PyQt6: GPL v3 - 用于GUI界面
- PyInstaller: GPL v2 - 仅用于构建可执行文件
- FFmpeg: GPL v3 - 作为外部工具调用,用于视频处理
本软件使用FFmpeg作为外部工具进行视频处理。FFmpeg采用GPL v3许可证,但本软件仅调用FFmpeg作为外部可执行文件,不直接包含FFmpeg代码。
欢迎提交 Issue 和 Pull Request!
- ✅ 初始版本发布
- ✅ 支持基本视频压缩功能
- ✅ 深色主题UI设计
- ✅ 批量文件处理
- ✅ 实时进度显示
- ✅ 集成 FFmpeg 支持
- ✅ 提供 Windows 安装包
- ✅ 支持拖拽文件操作
- ✅ 完善的错误处理和用户反馈
- ✅ 模块化架构设计
- ✅ 多线程处理支持
- ✅ 配置文件管理
- ✅ 版权声明和MIT许可证
- ✅ 完整的构建和打包流程