# FastMovieAI
**Repository Path**: elfbobo_admin_admin/FastMovieAI
## Basic Information
- **Project Name**: FastMovieAI
- **Description**: FastMovieAI 是一个功能完整的开源短剧/短视频创作平台,采用前后端分离架构,提供 AI 驱动的视频内容创作能力。平台集成了用户管理、支付系统、内容管理、视频生成等完整功能模块,适合内容创作者和视频制作团队使用。
- **Primary Language**: PHP
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://fastmovie.ai
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 9
- **Created**: 2026-01-30
- **Last Updated**: 2026-01-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

# FastMovieAI
**可商用的一站式短剧创作平台**
[在线演示](https://fastmovie.ai) | [官方网站](https://www.fastmovieai.com) | [English](./README.en.md)






---
## 📖 项目介绍
FastMovieAI 是一个功能完整的开源短剧/短视频创作平台,采用前后端分离架构,提供 AI 驱动的视频内容创作能力。平台集成了用户管理、支付系统、内容管理、视频生成等完整功能模块,适合内容创作者和视频制作团队使用。
## 🎯 我们的愿景
FastMovieAI 致力于打造**全球领先的开源短剧创作生态系统**,全面对标商汤 Seko、幻舟、巨日禄、可梦、Oii、麻署、Flova、百度智能创作、火山引擎、阿里云视频 AI 等业界顶尖的商业化短剧创作平台。
### 为什么选择 FastMovieAI?
🌟 **真正的开源自由** - 不同于闭源商业平台的黑盒操作,我们提供完全开放的源代码,让每一位开发者都能深度定制、二次开发,打造专属的短剧创作工具。
💰 **零成本商用** - 无需支付高昂的 SaaS 订阅费用,无需担心按量计费的天价账单,一次部署,永久使用,真正实现降本增效。
🚀 **持续进化** - 我们相信开源的力量,通过社区驱动的方式,快速迭代功能,响应用户需求,让平台始终保持技术领先。
🤝 **共创共赢** - 我们诚挚邀请影视制作公司、短剧团队、MCN 机构、独立创作者、技术开发者加入我们的生态,共同打磨产品细节,分享行业经验,让 FastMovieAI 成为真正懂创作者的工具。
### 我们的承诺
- ✅ **开放透明** - 所有代码开源,所有决策公开,接受社区监督
- ✅ **用户至上** - 认真对待每一条反馈,快速响应每一个需求
- ✅ **技术领先** - 紧跟 AI 技术前沿,持续引入最新的视频生成、语音合成、智能剪辑能力
- ✅ **生态共建** - 提供完善的插件机制,支持第三方开发者贡献功能模块
- ✅ **长期维护** - 承诺长期维护更新,不会因商业化而放弃开源版本
### 加入我们
无论你是:
- 🎬 **影视公司** - 寻求降低制作成本、提升创作效率的解决方案
- 📱 **短剧团队** - 需要批量化、工业化的内容生产工具
- 🎨 **个人创作者** - 想要低成本实现创意想法的独立制作人
- 💻 **技术开发者** - 对 AI 视频技术感兴趣的工程师
我们都欢迎你的加入!让我们一起,用开源的力量,重新定义短剧创作的未来,让每个人都能成为优秀的内容创作者!
### ✨ 核心特性
- 🎬 **AI 视频创作** - 基于 AI 的短剧视频生成和编辑能力
- 🎭 **角色管理** - 虚拟角色创建、配置和管理
- 🎙️ **语音合成** - 多语言语音合成和配音功能
- 📝 **剧本编辑** - 可视化剧本编辑器和分镜头管理
- 💰 **支付集成** - 支持支付宝、微信支付等多种支付方式
- 👥 **用户系统** - 完整的用户注册、登录、VIP 会员体系
- 💎 **积分系统** - 灵活的积分充值和消费机制
- 📱 **微信集成** - 支持微信公众号和小程序对接
- 🔌 **插件架构** - 模块化插件系统,易于扩展
- 🌍 **多语言支持** - 中文和英文界面切换
### 🎯 适用场景
- 短视频内容创作平台
- AI 驱动的视频制作工具
- 短剧创作和分发系统
- 内容创作者社区平台
## 🏗️ 技术架构
### 后端技术栈
- **框架**: Webman v2.1+ (基于 Workerman 的高性能 PHP 框架)
- **PHP 版本**: ≥8.1
- **数据库**: MySQL ≥8.0, Redis
- **ORM**: ThinkORM v2.1+
- **模板引擎**: ThinkTemplate v3.0+
- **支付**: Yansongda/Pay v3.7+ (支付宝、微信支付)
- **视频处理**: php-ffmpeg v1.3+
- **WebSocket**: webman/push v1.1+
### 前端技术栈
- **框架**: Vue 3.5+ (Composition API)
- **构建工具**: Vite 7.1+
- **语言**: TypeScript 5.9+
- **UI 框架**: Element Plus 2.11+
- **状态管理**: Pinia 3.0+
- **路由**: Vue Router 4.5+
- **视频处理**: @webav/av-cliper, mp4box
### 项目结构
```
fastmovieai/
├── fastmovie-admin/ # 后端应用 (PHP/Webman)
│ ├── app/ # 应用代码
│ ├── config/ # 配置文件
│ ├── plugin/ # 插件系统
│ ├── public/ # 公共资源
│ └── start.php # 启动入口
├── fastmovie-vue/ # 前端应用 (Vue3/TypeScript)
│ ├── src/ # 源代码
│ ├── public/ # 静态资源
│ └── vite.config.ts # Vite 配置
└── README.md # 项目文档
```
## 📦 环境要求
### 后端环境
- PHP ≥ 8.1
- MySQL ≥ 8.0
- Redis
- 必需的 PHP 扩展:
- PDO, PDO_MySQL, MySQLi
- Redis
- cURL, OpenSSL
- GD, Fileinfo
- MBString, JSON
- Event (推荐,提升性能)
### 前端环境
- Node.js (推荐 LTS 版本)
- npm 或 yarn
## 🚀 快速开始
### 1. 克隆项目
本项目由两个独立的 Git 仓库组成,需要分别克隆:
```bash
# 创建项目目录
mkdir fastmovieai
cd fastmovieai
# 克隆后端仓库
git clone https://gitee.com/yc_open/ai-short-play.git fastmovie-admin
# 克隆前端仓库
git clone https://gitee.com/yc_open/ai-short-play-vue.git fastmovie-vue
```
克隆完成后,目录结构如下:
```
fastmovieai/
├── fastmovie-admin/ # 后端仓库
└── fastmovie-vue/ # 前端仓库
```
### 2. 后端安装
#### 使用 Web 安装向导(推荐)
**步骤 1:配置站点**
如果使用宝塔面板:
1. 创建站点,将运行目录设置为 `fastmovie-admin/public`
2. PHP 版本选择 8.1 或更高
**步骤 2:访问安装向导**
访问 `http://your-domain.com/install`,按照向导完成安装:
1. **许可协议** - 阅读并同意开源协议
2. **环境检测** - 自动检测 PHP 版本、扩展、权限等
3. **参数配置** - 配置数据库和 Redis 连接信息,设置管理员账号
4. **开始安装** - 自动完成数据库初始化和配置文件生成
**安装完成后的操作:**
安装向导会自动完成以下工作:
- 生成 `.env` 配置文件(基于 `.env.example`)
- 自动配置数据库连接池参数
- 生成随机的 PUSH_KEY 和 PUSH_SECRET(32位字符串)
- 同步更新 `nginx.example` 中的 PUSH_KEY
- 创建 `install.lock` 锁定文件防止重复安装
安装完成后,页面会提示您完成以下操作:
**1. 配置伪静态规则**
- 复制 `fastmovie-admin/nginx.example` 文件的全部内容
- 在宝塔面板的"站点设置 → 伪静态"中粘贴并保存
- PUSH_KEY 已自动更新为实际生成的随机值
**2. 启动后端服务**
```bash
cd fastmovie-admin
php start.php start -d
```
或在宝塔面板配置进程守护(推荐)
**3. 删除安装目录**
```bash
# 删除安装目录(重要!)
rm -rf public/install
```
⚠️ **重要提示**:
- 首次登录后立即修改默认管理员密码
- 确保 `.env` 文件权限安全,不要暴露到公网
- `install.lock` 文件用于防止重复安装,请勿删除
#### 手动安装(高级用户)
如果不使用 Web 安装向导,可以手动配置:
```bash
cd fastmovie-admin
# 1. 复制环境配置文件
copy .env.example .env
# 2. 编辑 .env 文件,配置以下信息:
# 数据库配置
# - DATABASE_HOST=127.0.0.1
# - DATABASE_PORT=3306
# - DATABASE_NAME=your_database
# - DATABASE_USERNAME=your_username
# - DATABASE_PASSWORD=your_password
# - DATABASE_PREFIX=php_
#
# 数据库连接池配置(必需)
# - DATABASE_MAX_CONNECTIONS=10
# - DATABASE_MIN_CONNECTIONS=1
# - DATABASE_WAIT_TIMEOUT=3
# - DATABASE_IDLE_TIMEOUT=60
# - DATABASE_HEARTBEAT_INTERVAL=50
#
# Redis 配置
# - REDIS_HOST=127.0.0.1
# - REDIS_PORT=6379
# - REDIS_PASSWORD=
# - REDIS_DATABASE=2
#
# WebSocket 推送配置
# - PUSH_KEY=生成32位随机字符串
# - PUSH_SCERET=生成32位随机字符串
# - PUSH_API_PORT=37000
# - PUSH_WSS_PORT=37001
# 3. 导入数据库
mysql -u root -p your_database < database.sql
# 4. 更新 nginx.example 中的 PUSH_KEY
# 将 /app/PUSH_KEY 替换为 /app/你的实际PUSH_KEY值
```
### 3. 前端安装
```bash
cd fastmovie-vue
# 安装依赖
npm install
# 配置后端 API 地址
# 编辑 .env.development 文件,设置 VITE_API_URL
```
### 4. 启动服务
**后端服务**
```bash
cd fastmovie-admin
# 开发模式启动
php start.php start
# 守护进程模式(生产环境)
php start.php start -d
# 停止服务
php start.php stop
# 重启服务
php start.php restart
# 查看状态
php start.php status
```
**前端服务**
```bash
cd fastmovie-vue
# 启动开发服务器(默认端口 36310)
npm run dev
# 构建生产版本
npm run build
```
### 5. 访问系统
- **前端地址**: http://localhost:36310
- **后端 API**: http://localhost:36999
- **默认管理员账号**: admin
- **默认密码**: 123456
⚠️ **安全提示**: 首次登录后请立即修改默认密码!
## 🔧 生产环境部署
### 宝塔面板部署(推荐)
1. **创建站点**
- 在宝塔面板中创建新站点
- 将站点运行目录设置为 `fastmovie-admin/public`
- 配置 PHP 版本为 8.1 或更高
2. **配置伪静态**
在站点设置的"伪静态"选项中,复制 `fastmovie-admin/nginx.example` 文件的全部内容并保存。
**nginx.example 完整内容:**
```nginx
# 站内信推送
location /app/PUSH_KEY {
proxy_pass http://127.0.0.1:36302;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
# 将请求转发到webman
location ^~ / {
# 接口QPS插件,nginx版本需要选择:nginx openresty
# 如需使用接口QPS插件,取消注释
# access_by_lua_file $document_root/lua/qps.lua;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename){
proxy_pass http://127.0.0.1:36300;
}
}
# 拒绝访问所有以 .php 结尾的文件
location ~ \.php$ {
return 404;
}
# 允许访问 .well-known 目录
location ~ ^/\.well-known/ {
allow all;
}
# 拒绝访问所有以 . 开头的文件或目录
location ~ /\. {
return 404;
}
```
⚠️ **重要说明**:
- `/app/PUSH_KEY` 中的 `PUSH_KEY` 在安装完成后会自动替换为实际的 32 位随机字符串
- 如果手动安装,需要将 `PUSH_KEY` 替换为 `.env` 文件中的实际值
- `proxy_pass http://127.0.0.1:36300` 中的端口需要与 `.env` 中的 `SERVER_PORT` 一致(默认 36999)
3. **启动后端服务**
```bash
cd /www/wwwroot/your-site/fastmovie-admin
php start.php start -d
```
4. **配置进程守护**
在宝塔面板的"进程守护"中添加:
- 名称: FastMovieAI
- 启动命令: `cd /www/wwwroot/your-site/fastmovie-admin && php start.php start`
- 运行目录: `/www/wwwroot/your-site/fastmovie-admin`
5. **访问安装向导**
访问 `http://your-domain.com/install` 完成安装配置。安装程序会自动:
- 生成 `.env` 配置文件
- 创建数据库表结构
- 生成随机的 PUSH_KEY 和 PUSH_SECRET
- 同步更新 `nginx.example` 中的 PUSH_KEY
- 创建管理员账号
安装完成后,记得删除 `public/install` 目录。
### 手动部署
#### 后端部署
1. **配置 Nginx 反向代理**
参考 `fastmovie-admin/nginx.example` 配置文件,完整配置示例:
```nginx
upstream fastmovie {
server 127.0.0.1:36999;
keepalive 10240;
}
server {
listen 80;
server_name your-domain.com;
root /path/to/fastmovie-admin/public;
index index.html index.htm;
# 站内信推送(PUSH_KEY 需要替换为实际值)
location /app/YOUR_ACTUAL_PUSH_KEY {
proxy_pass http://127.0.0.1:37000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
# 将请求转发到 webman
location ^~ / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename){
proxy_pass http://fastmovie;
}
}
# 拒绝访问所有以 .php 结尾的文件
location ~ \.php$ {
return 404;
}
# 允许访问 .well-known 目录
location ~ ^/\.well-known/ {
allow all;
}
# 拒绝访问所有以 . 开头的文件或目录
location ~ /\. {
return 404;
}
}
```
⚠️ **配置说明**:
- `YOUR_ACTUAL_PUSH_KEY` 需要替换为 `.env` 文件中的实际 PUSH_KEY 值
- upstream 端口(36999)需要与 `.env` 中的 SERVER_PORT 一致
- WebSocket 推送端口(37000)需要与 `.env` 中的 PUSH_API_PORT 一致
2. **启动后端服务**
```bash
cd fastmovie-admin
php start.php start -d
```
3. **配置进程守护**
使用 systemd 或 supervisor 管理进程,确保服务自动重启。
**systemd 示例** (`/etc/systemd/system/fastmovie.service`):
```ini
[Unit]
Description=FastMovieAI Backend Service
After=network.target
[Service]
Type=forking
User=www-data
WorkingDirectory=/path/to/fastmovie-admin
ExecStart=/usr/bin/php start.php start -d
ExecStop=/usr/bin/php start.php stop
ExecReload=/usr/bin/php start.php restart
Restart=always
[Install]
WantedBy=multi-user.target
```
启用服务:
```bash
sudo systemctl enable fastmovie
sudo systemctl start fastmovie
```
### 前端部署
1. **构建生产版本**
```bash
cd fastmovie-vue
npm run build
```
2. **部署构建文件**
构建完成后,将生成的文件部署到 `fastmovie-admin/public/assets/` 目录,或配置独立的静态文件服务器。
3. **配置 Nginx**
```nginx
server {
listen 80;
server_name your-domain.com;
root /path/to/fastmovie-admin/public;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://127.0.0.1:36999;
}
}
```
## 📚 使用说明
### 开发文档
- [后端开发文档](./docs/backend-development.md) - PHP/Webman 后端开发指南
- [前端开发文档](./docs/frontend-development.md) - Vue3/TypeScript 前端开发指南
### 插件系统
FastMovieAI 采用模块化插件架构,核心插件包括:
- **user** - 用户管理和认证
- **finance** - 支付和财务管理
- **marketing** - 营销和推广工具
- **article** - 内容管理系统
- **shortplay** - 短剧创作核心功能
- **model** - AI 模型管理
- **notification** - 通知和消息推送
- **control** - 平台控制和配置
每个插件都是独立的功能模块,可以根据需要启用或禁用。
### 开发命令
**后端常用命令**
```bash
# 查看所有命令
php webman
# 数据库迁移(如果支持)
php webman migrate
# 清除缓存
php webman cache:clear
```
**前端常用命令**
```bash
# 开发服务器
npm run dev
# 生产构建
npm run build
# 预览构建结果
npm run preview
# 类型检查
vue-tsc --noEmit
```
### 端口配置
- **后端服务**: 36999 (可在 .env 中配置 SERVER_PORT)
- **前端开发**: 36310
- **WebSocket Push**: 37000
- **WebSocket WSS**: 37001
## 🤝 参与贡献
我们欢迎所有形式的贡献,包括但不限于:
1. 🐛 提交 Bug 报告
2. 💡 提出新功能建议
3. 📝 改进文档
4. 🔧 提交代码修复或新功能
### 贡献流程
1. Fork 对应的仓库(后端或前端)
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m '添加某个很棒的功能'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 提交 Pull Request
**注意**: 后端和前端是独立的仓库,请根据修改内容向对应的仓库提交 PR。
### 开发规范
- 后端代码遵循 PSR-12 编码规范
- 前端代码使用 ESLint 和 Prettier 格式化
- 提交信息使用中文,清晰描述改动内容
- 添加必要的代码注释和文档
## 📄 开源协议
本项目采用 [Apache License 2.0](./LICENSE) 开源协议。
## 🔗 相关链接
- [在线演示](https://fastmovie.ai)
- [后端仓库 (Gitee)](https://gitee.com/yc_open/ai-short-play)
- [前端仓库 (Gitee)](https://gitee.com/yc_open/ai-short-play-vue)
- [后端开发文档](./docs/backend-development.md)
- [前端开发文档](./docs/frontend-development.md)
- [问题反馈](https://gitee.com/yc_open/ai-short-play/issues)
## ⚠️ 免责声明
本项目仅供学习和研究使用,使用本项目所产生的一切后果由使用者自行承担。请遵守相关法律法规,不得用于非法用途。
## 💬 联系方式
如有问题或建议,欢迎通过以下方式联系:
- 提交 Issue:
- 后端问题: [ai-short-play Issues](https://gitee.com/yc_open/ai-short-play/issues)
- 前端问题: [ai-short-play-vue Issues](https://gitee.com/yc_open/ai-short-play-vue/issues)
- 邮箱: 416716328@qq.com
- 在线演示: [https://fastmovie.ai](https://fastmovie.ai)
### 加入社区
用户交流群
扫码加入,与创作者交流
|
技术咨询 & 商务合作
扫码联系,洽谈合作
|
---
**如果这个项目对你有帮助,请给我们一个 ⭐️ Star!**
Made with ❤️ by FastMovieAI Team