# 视频压缩技术 **Repository Path**: SwetShen/video-compression-technology ## Basic Information - **Project Name**: 视频压缩技术 - **Description**: 此仓库只记录关于我对视频压缩技术的理解以及心得。 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-20 - **Last Updated**: 2026-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎬 OBS/会议视频一键批量压缩工具 (OBS Video Compressor) 一个基于 Python + Tkinter + FFmpeg 打造的轻量级视频压缩桌面工具。 针对 **OBS 屏幕录制、腾讯会议/Zoom 录屏、PPT 讲座、网课** 等场景进行了极致压缩调优,利用 **H.265 (HEVC)** 编码与动态帧率优化,可在保持画质清晰的前提下将视频体积减少 **70%~90%**(例如:40 分钟会议视频可压缩至 100MB 左右)。 ## 📸 界面预览 > *主界面示意图:支持批量选择、参数预设一键切换与后台多线程压缩* ## 📊 运行效果对比 (Performance Benchmark) 以下为不同场景下使用本工具 **“会议/PPT极小模式”** 压缩的真实效果对比: | **视频类型** | **原始时长** | **原始格式 / 编码** | **原始体积** | **压缩后体积** | **体积减少率** | **画质评估** | | --------------------- | ------------ | ------------------- | ------------ | -------------- | -------------- | ------------------------------------ | | **网课/PPT讲解** | 40 分钟 | 1080p 60fps (H.264) | **1.2 GB** | **98 MB** | **↓ 91.8%** | 画面文字清晰,文字边缘无明显杂噪 | | **腾讯会议录屏** | 60 分钟 | 1080p 30fps (H.264) | **850 MB** | **112 MB** | **↓ 86.8%** | 人声清晰,PPT/代码展示完全不影响观看 | | **代码演示/桌面操作** | 20 分钟 | 1080p 60fps (H.264) | **600 MB** | **65 MB** | **↓ 89.1%** | 鼠标轨迹流畅,编辑器代码高亮依然可辨 | ### 画质对比示意 | **原始视频 (1080P 60fps / 1.2GB)** | **压缩后视频 (1080P 15fps / 98MB)** | | ---------------------------------- | ----------------------------------- | | | | | *原始画面* | *压缩后(文字依然清晰可辨)* | ## ✨ 核心特性 - 🚀 **极致压缩算法**:针对 PPT/屏幕画面采用 **H.265 (libx265)** 编码与 **15 FPS** 限制,配合单声道人声优化,大幅削减冗余数据。 - 🎯 **一键预设模式**:内置“会议/PPT 极小模式”、“通用均衡模式”、“高清留存模式”,无需繁琐配置即可上手。 - 📁 **批量处理**:支持添加多个视频文件或直接导入整个文件夹。 - 🖥️ **异步 GUI 界面**:基于 Tkinter + 多线程构建,压制过程中界面流畅不卡顿,支持实时进度与日志打印。 - 🛠️ **免环境变量依赖**:支持直接指定本地 `ffmpeg.exe` 绝对路径运行。 ## 🛠️ 技术原理 腾讯会议与 OBS 网课录屏之所以能做到极小体积,核心在于针对场景的定制参数: | **优化维度** | **优化策略** | **效果** | | ------------------ | ---------------------------- | ------------------------------------------------ | | **视频编码** | 使用 **H.265 (libx265)** | 相同画质下比传统 H.264 体积小 30%~50% | | **质量因子 (CRF)** | 设定 `CRF = 28~32` | 屏幕文字/PPT 画质依然高清,静止图像体积急剧下降 | | **限制帧率** | 降至 `15 FPS` | 屏幕讲解无剧烈运动,直接砍掉一半冗余帧 | | **音频压制** | `AAC 48kbps` + 单声道 (Mono) | 语音清晰可辨的同时将音频轨道体积缩小至原来的 1/4 | ## 🚀 快速开始 ### 1. 环境准备 1. **安装 Python 3.x** 2. **下载并准备 FFmpeg**: 解压包含 `ffmpeg.exe` 的完整包(如 `D:\ffmpeg-7.0.2-essentials_build\bin\ffmpeg.exe`)。 ### 2. 运行源码 克隆本项目并直接运行 Python 脚本: Bash ``` git clone https://github.com/your-username/obs-video-compressor.git cd obs-video-compressor python compressor_gui.py ``` > **注意**:请在脚本中检查 `ffmpeg_bin` 变量,确保指向正确的 `ffmpeg.exe` 路径。 ## 💻 界面与使用说明 1. **添加视频**:点击“添加视频文件”或“添加整个文件夹”。 2. **选择预设**:下拉菜单选择 `会议/PPT极小模式 (推荐)`。 3. **开始压缩**:点击 `🚀 开始批量压缩`,生成的文件将自动存储在原视频同级目录下(文件名带有 `_compressed` 后缀)。 ## 📦 打包为单文件 EXE (可选) 如果想将工具打包为独立的 `.exe` 可执行文件: Bash ``` pip install pyinstaller pyinstaller -F -w compressor_gui.py ``` 打包完成后,即可在 `dist/` 文件夹下获得无需 Python 环境即可运行的 `compressor_gui.exe`。 ## 📄 开源协议 [![License](https://img.shields.io/badge/License-MulanPSL--2.0-blue.svg)](https://license.coscl.org.cn/MulanPSL2/) 本项目采用 **木兰宽松许可证, 第2版 (Mulan PSL v2)** 开源。 你可以自由地使用、修改和分发本软件,但必须在衍生代码中保留原作者的版权声明与许可证声明。详见 [LICENSE](LICENSE) 文件。