一套只能在单台电脑上运行的 Python 视频处理引擎,功能不少,但每个使用者都得自己装环境、自己跑。我们把它改造成了多人在线使用的 Web 平台:用户在浏览器或手机上上传视频、选好风格就能出片;任务在服务器上排队,由后台 Worker 按机器负载调度;另有会员、卡密与完整的管理后台,可以直接对外运营。
这个项目的起点,是一套运行在单台电脑上的 Python 视频处理引擎:能做镜头切分、片段拼接、解说和配音,但使用者要在自己电脑上装好 Python、FFmpeg 和一堆依赖,一次只能一个人用,出片进度、失败原因也只能看命令行输出。
客户希望把它变成一个能对外提供服务的在线平台:多人同时在网页或手机上提交任务,服务器排队处理而不被挤爆;AI 能力按需接入,没配 AI 密钥时也能出片;还要有账号、会员、卡密和管理后台,以及一个能装在手机上的 APP 入口。
我们保留原有的 Python 处理能力,在它外面补齐了一个在线服务需要的全部部分:Web 前台、业务 API、任务队列与调度、AI 接入层、会员体系、管理后台和部署工具,并把原来“一次跑一个”的处理流程改造成由常驻 Worker 并发执行的后台任务。
浏览器或手机上传视频(单个不超过 500 MB,支持 mp4 / mov / avi / mkv),按“上传视频 → 风格配置 → 提交出片”三步完成:目标时长、节奏包、5 档输出清晰度、弹幕、解说、配音和封面都在同一页设置。
任务进入 Redis 队列,由常驻 Python Worker 取出执行;并发数按 CPU 负载动态调整,负载达到 90% 时暂停接新任务等待冷却;处理进度通过 SSE 实时推送到前台。
内置 12 个混剪节奏包(节奏快闪、故事弧线、产品展示、知识切片等)和 12 种解说风格,另可选解说开头风格和语气;素材先按镜头自动切分再组合,同一素材重复处理时复用已有的媒体信息与分镜结果。
解说、配音、封面每个环节都可选“仅本地 / 自动 / 强制 AI”三种运行模式,默认只走本地引擎;未配 AI 配音时自动使用 Edge TTS,失败再降级到本地 espeak;封面未配 AI 时由本地引擎用关键帧加文字生成。
前台提供会员中心、卡密兑换和邀请好友;管理后台共 29 个页面,覆盖系统总览、环境检测、Worker 管理、AI 厂商配置、任务与作品管理、会员与卡密、客服 FAQ、公告和系统监控。
Linux 服务器一键部署脚本,Worker 由进程守护常驻;后台可一键把前台 H5 打包成安卓 WebView APP,直接用 aapt2、d8 等命令行工具构建,不依赖 Gradle。
以下为交付版本的实际界面,未在本案例中介绍的功能入口已打码。
前台、业务 API 和视频处理分为三层,彼此通过数据库和 Redis 队列衔接,处理层可以单独扩容: