python开源 视频处理小工具,给视频添加透明通道

项目开源地址:项目首页 – MP4视频添加透明通道工具:选择一张灰度图片,选择一个Mp4视频,一键转化为带透明通道的webm视频,适用于弹幕互动游戏的入场动效,配合AI生成视频可以做很多效果 – GitCode

MP4 to WebM Converter 🎬

一个基于Python和Streamlit的Web应用程序,用于将MP4视频转换为带透明通道的WebM格式视频。

视频加透明通道功能界面

✨ 功能特性

  • 🎥 视频转换: 将MP4视频转换为带透明通道的WebM格式
  • 🖼️ 透明通道: 使用灰度图片作为视频的透明通道
  • 🚀 视频合并: 支持多个视频文件合并,可选统一尺寸和转场效果
  • ⏱️ 视频倍速调整: 支持按倍速或目标时长调整视频播放速度
  • 📱 Web界面: 现代化的Streamlit Web界面,操作简单直观
  • 👀 实时预览: 支持上传文件的实时预览功能
  • 🔄 智能重命名: 根据文件MD5值自动重命名,避免文件冲突
  • 📁 文件管理: 支持图片、视频和WebM文件的增删改查和预览
  • ⏰ 时间戳命名: 输出文件使用年月日时分秒格式命名
  • 📥 下载功能: 处理完成后可直接下载结果文件

🚀 快速开始

环境要求

  • Python 3.7+
  • FFmpeg 7.0.2(已包含在项目中)

安装依赖

pip install -r requirements.txt

启动应用

python -m streamlit run app.py

应用将在 http://localhost:8501 启动。

打包为独立可执行程序

本项目支持打包为独立的Windows可执行程序(.exe),无需安装Python环境即可运行。

方法一:使用批处理文件(推荐)

  1. 双击运行项目根目录下的 build.bat 文件
  2. 等待打包完成,打包后的可执行文件将位于 dist 目录中

方法二:手动打包

  1. 安装必要的依赖:
    pip install -r requirements.txt
    
  2. 运行打包脚本:
    python build.py
    
  3. 打包完成后,可执行文件将位于 dist 目录中

使用打包后的应用

  1. 进入 dist 目录
  2. 双击运行 MP4转WebM工具.exe
  3. 应用将自动启动并在浏览器中打开界面

📖 使用说明

基本使用流程

  1. 启动应用: 运行上述命令启动Web界面
  2. 选择功能: 在顶部选项卡中选择需要的功能
    • 视频合并: 合并多个视频文件
    • 视频倍速调整: 调整视频播放速度
    • 视频加透明通道: 将MP4视频转换为带透明通道的WebM格式
    • 文件管理: 管理已上传的图片、视频和WebM文件
  3. 上传文件: 根据选择的功能上传相应文件
  4. 设置参数: 根据需要调整处理参数
  5. 执行操作: 点击相应的处理按钮
  6. 查看结果: 处理完成后可预览和下载结果文件

文件处理说明

  • 输入文件: 上传的文件会根据MD5值重命名并保存到对应目录
    • 视频文件保存到 video/ 目录
    • 图片文件保存到 image/ 目录
  • 输出文件: 处理后的文件保存到相应目录
    • WebM文件保存到 webm/ 目录
    • 合并或调速后的视频保存到 video/ 目录
    • 文件名格式: YYYYMMDDHHMMSS.xxx(如:20250819180045.webm)

文件管理功能

 文件管理功能界面

  • 浏览文件: 查看已上传的图片、视频和WebM文件
  • 预览文件: 支持图片预览和视频播放
  • 下载文件: 一键下载已处理的文件
  • 删除文件: 删除不需要的文件
  • 文件信息: 显示视频文件的大小、时长和分辨率等信息

📁 项目结构

mp42webm/
├── app.py                 # 主程序文件
├── launcher.py            # 启动器脚本(用于打包后的应用)
├── build.py               # 打包脚本
├── build.bat              # 打包批处理文件
├── requirements.txt       # Python依赖包
├── README.md              # 项目说明文档
├── ffmpeg7.0.2/           # FFmpeg工具
│   └── bin/
│       └── ffmpeg.exe     # FFmpeg可执行文件
├── image/                 # 图片文件存储目录
├── video/                 # 视频文件存储目录
├── webm/                  # 输出WebM文件目录
└── dist/                  # 打包后的可执行文件目录(打包后生成)
    └── MP4转WebM工具.exe   # 打包后的可执行文件

🛠️ 技术实现

核心技术栈

  • Streamlit: Web界面框架
  • FFmpeg: 视频处理引擎
  • Pillow: 图片处理库
  • Python: 主要编程语言

转换原理

程序使用FFmpeg的alphamerge滤镜将灰度图片作为alpha通道合并到视频中:

ffmpeg -i video.mp4 -i alpha.png -filter_complex "[0:v][1:v]alphamerge" -c:v libvpx-vp9 -pix_fmt yuva420p output.webm

关键功能实现

  • MD5计算: 使用hashlib计算文件MD5值进行重命名
  • 文件管理: 自动创建和管理目录结构,支持文件增删改查
  • 视频转换: 集成FFmpeg进行高质量视频转换
  • 视频合并: 使用FFmpeg的concat demuxer合并多个视频
  • 视频倍速: 根据视频是否包含音频动态构建FFmpeg命令调整速度
  • 错误处理: 完善的异常处理和用户反馈

🎯 使用场景

  • 视频特效制作: 为视频添加透明效果
  • 网页视频: 制作带透明背景的网页视频素材
  • 动画制作: 创建透明背景的动画视频
  • UI设计: 制作界面动效素材
  • 视频编辑: 调整视频播放速度,制作快进或慢动作效果
  • 视频合集: 将多个视频片段合并为单个文件
  • 素材管理: 统一管理和预览项目中的媒体文件

📝 注意事项

  1. 图片格式: 建议使用灰度图片作为透明通道,白色区域为不透明,黑色区域为透明
  2. 视频质量: 转换过程会保持原视频的质量和帧率
  3. 文件大小: WebM格式通常比MP4文件稍大,但支持透明通道
  4. 浏览器兼容: WebM格式在现代浏览器中有良好支持

🔧 故障排除

常见问题

Q: 转换失败怎么办? A: 检查视频和图片文件格式是否正确,确保FFmpeg路径配置正确。

Q: 预览不显示怎么办? A: 确保上传的文件格式受支持,刷新页面重试。

Q: 转换速度慢怎么办? A: 转换速度取决于视频大小和计算机性能,大文件需要更长时间。

📄 许可证

本项目采用 MIT 许可证。

🤝 贡献

欢迎提交Issue和Pull Request来改进这个项目!


开发者: Trae AI Assistant
版本: 1.1.0
更新时间: 2025-08-25

欢迎转载,请尊重作者劳动成果,保留原站链接
老念博客🌈 » python开源 视频处理小工具,给视频添加透明通道

简单课程表 - 小念的个人博客