需自行安装 FFmpeg 并确保可被调用;Whisper 模型需首次运行时下载;服务默认监听 0.0.0.0:5000,需先创建 uploads 和 outputs 目录
video_processing_service
GeekyWizKidMIT长期未更新自动化视频处理服务,能从视频中提取音频、生成字幕并把字幕压回视频,省去手工剪辑和字幕对齐的麻烦。
Video Processing Service is an automated video processing service that supports extracting audio from videos, generating subtitles, and embedding subtitles into the video.
git clone https://github.com/GeekyWizKid/video_processing_service.git
cd video_processing_service
pip install -r requirements.txt
python app.pyREADME 未说明显存或 GPU 要求,仅注明 Python 版本 3.9.12
基于 Flask 的视频处理服务,自动完成音频提取、Whisper 字幕生成与字幕嵌入
自动化视频处理服务,能从视频中提取音频、生成字幕并把字幕压回视频,省去手工剪辑和字幕对齐的麻烦。
核心能力
- 从视频中提取音频并保存为 WAV,支持自定义采样率
- 调用 Whisper 模型自动生成中文及其他语言字幕
- 用 FFmpeg 将字幕嵌入视频,输出带字幕的 MP4
- 提供 Flask HTTP 接口,上传视频即返回下载链接
容易踩的坑
暂无 release 数据(可能没有发版,或尚未同步)。
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Video Processing Service
Slogan
从此再无生番!
项目介绍
Video Processing Service 是一个用于自动化视频处理的服务,支持从视频中提取音频、生成字幕并将字幕嵌入到视频中的功能。
该项目利用 FFmpeg 和 Whisper 等开源工具,提供高效、可扩展的处理流程,适用于各种视频和音频处理需求
功能特性
- 音频提取: 从视频中提取音频并保存为 wav 格式,支持自定义采样率
- 字幕生成:使用 Whisper 模型自动生成字幕,支持中文和其他语言
- 嵌入字幕:使用 FFmpeg 将生成的字幕嵌入到视频中,生成带有字幕的最终视频文件
- 支持多种格式:支持常见的视频格式(如 MP4)及音频格式(如 WAV)
项目结构
video_processing_service/
├── config/
│ └── paths.py # 配置文件,定义文件路径和目录
├── src/
│ └── video_processing.py # 主要的视频处理逻辑
├── uploads/ # 上传的视频文件存储目录
├── outputs/ # 处理后的文件输出目录
│ ├── audio/ # 提取的音频文件
│ ├── subtitles/ # 生成的字幕文件
│ ├── frames/ # 视频帧
├── app.py # Flask API 服务入口
└── requirements.txt # 项目的依赖列表
安装及运行
克隆项目
git clone https://github.com/GeekyWizKid/video_processing_service.git
cd video_processing_service
创建虚拟环境并安装依赖
注意:Python 版本 3.9.12,建议使用 Python 虚拟环境来隔离项目依赖。
创建虚拟环境(可以使用 venv 或 conda)
python -m venv venv
Mac/Linux
source venv/bin/activate
Windows
venv\Scripts\activate
安装依赖
pip install -r requirements.txt
配置路径
确保项目中的文件路径(如 uploads 和 outputs 文件夹)已创建。
你可以根据需要修改 config/paths.py 文件中的路径配置。
运行 Flask 服务
python app.py
注意: Flask 服务将在 http://0.0.0.0:5000 启动,你可以使用该服务进行视频上传和处理。
使用 API
测试服务,检查服务是否运行
curl http://127.0.0.1:5000/test
上传视频并处理
使用 POST 请求上传视频,服务会自动提取音频、生成字幕并将字幕嵌入到视频中。
请求示例
curl -X POST -F "file=@path_to_video.mp4" http://127.0.0.1:5000/upload
响应示例
{
"message": "视频处理完成",
"download_url": "/download/85_1734421479_with_subtitles.mp4"
}
下载处理后的视频
通过下载 URL 获取处理后的文件
curl -O http://127.0.0.1:5000/download/85_1734421479_with_subtitles.mp4
依赖
- Flask:用于构建 API 服务
- Whisper:OpenAI 的自动语音识别模型,用于生成字幕
- FFmpeg:用于视频和音频处理
贡献
如果你想贡献代码,可以通过以下步骤:
- Fork 本项目
- 创建一个新的分支 (git checkout -b feature-branch)
- 提交更改 (git commit -am 'Add new feature')
- 推送到分支 (git push origin feature-branch)
- 创建一个新的 Pull Request
贡献者
许可
该项目遵循 MIT 许可协议。