Thanks to visit codestin.com
Credit goes to github.com

Skip to content

一个基于 PyQt6 和 FFmpeg 开发的现代化视频压缩工具,采用深色主题设计,支持批量视频压缩。

License

Notifications You must be signed in to change notification settings

LijiangTn/video_compression_tool

Repository files navigation

力江 视频压缩工具

一个基于 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' 后缀

UI/UX 特性

  • ✅ 采用深色主题为主色调,搭配高对比度交互元素
  • ✅ 布局清晰分区:文件列表区、参数设置区、控制区、进度展示区
  • ✅ 支持拖拽文件到窗口添加任务
  • ✅ 操作反馈:压缩成功/失败提示、错误日志查看
  • ✅ 适配不同屏幕分辨率,窗口可缩放

技术特性

  • ✅ 使用 PyQt6 的 QThread 实现后台压缩,避免 UI 卡顿
  • ✅ 集成 FFmpeg 作为视频处理引擎,提供高质量压缩
  • ✅ 压缩过程中显示实时帧率、剩余时间预估
  • ✅ 支持常见视频格式的识别与处理
  • ✅ 异常处理:文件损坏提示、格式不支持警告、磁盘空间不足提醒
  • ✅ 独立可执行文件,无需安装 Python 环境

安装要求

系统要求

  • Windows 10/11(推荐)
  • 至少 2GB 可用磁盘空间

安装方式

方法一:使用安装包(推荐)

  1. 下载 LijiangVideoCompressionTool_Setup_v1.0.0.exe
  2. 双击运行安装程序
  3. 按照安装向导完成安装
  4. 安装完成后可从桌面快捷方式或开始菜单启动
  5. 首次运行会自动检测并配置FFmpeg环境

方法二:从源码运行

  1. 下载项目到本地
  2. 安装 Python 3.11+ 环境
  3. 安装依赖包:
    pip install -r requirements.txt
  4. 运行程序:
    python main.py

使用方法

启动程序

python main.py

基本操作

  1. 添加文件

    • 点击"添加文件"按钮选择视频文件
    • 或者直接拖拽视频文件到程序窗口
  2. 设置压缩参数

    • 使用滑块调节压缩比例(10%-90%)
    • 实时查看预估输出大小
  3. 开始压缩

    • 点击"开始压缩"按钮
    • 查看实时进度和状态信息
  4. 管理任务

    • 可以随时点击"取消压缩"停止任务
    • 支持清空文件列表

文件管理

  • 文件列表显示:文件名、格式、大小、状态
  • 支持多选删除文件
  • 支持拖拽排序

项目结构

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 阻塞
  • 信号槽机制:实现组件间通信
  • 异常处理:完善的错误处理和用户反馈

核心组件

  1. MainWindow:主窗口,协调各个组件
  2. FileListWidget:文件列表管理
  3. CompressionControlWidget:压缩参数控制
  4. ProgressWidget:进度显示
  5. VideoCompressor:视频压缩核心逻辑
  6. FFmpegVideoCompressor:FFmpeg 压缩实现
  7. FileHandler:文件处理工具
  8. ThreadPoolManager:线程池管理

压缩算法

  • 使用 FFmpeg 进行高质量视频处理
  • 保持原始宽高比
  • 支持多种视频格式
  • 自动优化编码参数
  • 提供多种压缩质量选项

故障排除

常见问题

  1. 程序无法启动

    • 检查 Python 版本(需要 3.11+)
    • 确认已安装所有依赖包
    • 检查 FFmpeg 文件是否完整
  2. 压缩失败

    • 检查输入文件是否损坏
    • 确认磁盘空间充足
    • 检查文件格式是否支持
    • 检查 FFmpeg 可执行文件权限
  3. 界面显示异常

    • 检查 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!

更新日志

v1.0.0 (2025-09-20)

  • ✅ 初始版本发布
  • ✅ 支持基本视频压缩功能
  • ✅ 深色主题UI设计
  • ✅ 批量文件处理
  • ✅ 实时进度显示
  • ✅ 集成 FFmpeg 支持
  • ✅ 提供 Windows 安装包
  • ✅ 支持拖拽文件操作
  • ✅ 完善的错误处理和用户反馈
  • ✅ 模块化架构设计
  • ✅ 多线程处理支持
  • ✅ 配置文件管理
  • ✅ 版权声明和MIT许可证
  • ✅ 完整的构建和打包流程

About

一个基于 PyQt6 和 FFmpeg 开发的现代化视频压缩工具,采用深色主题设计,支持批量视频压缩。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages