Skip to content

FastMovieAI 是一个功能完整的开源短剧/短视频创作平台,采用前后端分离架构,提供 AI 驱动的视频内容创作能力。平台集成了用户管理、支付系统、内容管理、视频生成等完整功能模块,适合内容创作者和视频制作团队使用。

License

Notifications You must be signed in to change notification settings

xhadmincn/FastMovieAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastMovieAI Banner

FastMovieAI

可商用的一站式短剧创作平台

在线演示 | 官方网站 | English

NestJS Webman Vue TypeScript Vite License


📖 项目介绍

FastMovieAI 是一个功能完整的开源短剧/短视频创作平台,采用前后端分离架构,提供 AI 驱动的视频内容创作能力。平台集成了用户管理、支付系统、内容管理、视频生成等完整功能模块,适合内容创作者和视频制作团队使用。

FastMovieAI 平台展示

🎯 我们的愿景

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 仓库组成,需要分别克隆:

# 创建项目目录
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. 启动后端服务

cd fastmovie-admin
php start.php start -d

或在宝塔面板配置进程守护(推荐)

3. 删除安装目录

# 删除安装目录(重要!)
rm -rf public/install

⚠️ 重要提示

  • 首次登录后立即修改默认管理员密码
  • 确保 .env 文件权限安全,不要暴露到公网
  • install.lock 文件用于防止重复安装,请勿删除

手动安装(高级用户)

如果不使用 Web 安装向导,可以手动配置:

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. 前端安装

cd fastmovie-vue

# 安装依赖
npm install

# 配置后端 API 地址
# 编辑 .env.development 文件,设置 VITE_API_URL

4. 启动服务

后端服务

cd fastmovie-admin

# 开发模式启动
php start.php start

# 守护进程模式(生产环境)
php start.php start -d

# 停止服务
php start.php stop

# 重启服务
php start.php restart

# 查看状态
php start.php status

前端服务

cd fastmovie-vue

# 启动开发服务器(默认端口 36310)
npm run dev

# 构建生产版本
npm run build

5. 访问系统

⚠️ 安全提示: 首次登录后请立即修改默认密码!

🔧 生产环境部署

宝塔面板部署(推荐)

  1. 创建站点

    • 在宝塔面板中创建新站点
    • 将站点运行目录设置为 fastmovie-admin/public
    • 配置 PHP 版本为 8.1 或更高
  2. 配置伪静态

在站点设置的"伪静态"选项中,复制 fastmovie-admin/nginx.example 文件的全部内容并保存。

nginx.example 完整内容:

# 站内信推送
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)
  1. 启动后端服务
cd /www/wwwroot/your-site/fastmovie-admin
php start.php start -d
  1. 配置进程守护

在宝塔面板的"进程守护"中添加:

  • 名称: FastMovieAI
  • 启动命令: cd /www/wwwroot/your-site/fastmovie-admin && php start.php start
  • 运行目录: /www/wwwroot/your-site/fastmovie-admin
  1. 访问安装向导

访问 http://your-domain.com/install 完成安装配置。安装程序会自动:

  • 生成 .env 配置文件
  • 创建数据库表结构
  • 生成随机的 PUSH_KEY 和 PUSH_SECRET
  • 同步更新 nginx.example 中的 PUSH_KEY
  • 创建管理员账号

安装完成后,记得删除 public/install 目录。

手动部署

后端部署

  1. 配置 Nginx 反向代理

参考 fastmovie-admin/nginx.example 配置文件,完整配置示例:

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 一致
  1. 启动后端服务
cd fastmovie-admin
php start.php start -d
  1. 配置进程守护

使用 systemd 或 supervisor 管理进程,确保服务自动重启。

systemd 示例 (/etc/systemd/system/fastmovie.service):

[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

启用服务:

sudo systemctl enable fastmovie
sudo systemctl start fastmovie

前端部署

  1. 构建生产版本
cd fastmovie-vue
npm run build
  1. 部署构建文件

构建完成后,将生成的文件部署到 fastmovie-admin/public/assets/ 目录,或配置独立的静态文件服务器。

  1. 配置 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;
    }
}

📚 使用说明

开发文档

插件系统

FastMovieAI 采用模块化插件架构,核心插件包括:

  • user - 用户管理和认证
  • finance - 支付和财务管理
  • marketing - 营销和推广工具
  • article - 内容管理系统
  • shortplay - 短剧创作核心功能
  • model - AI 模型管理
  • notification - 通知和消息推送
  • control - 平台控制和配置

每个插件都是独立的功能模块,可以根据需要启用或禁用。

开发命令

后端常用命令

# 查看所有命令
php webman

# 数据库迁移(如果支持)
php webman migrate

# 清除缓存
php webman cache:clear

前端常用命令

# 开发服务器
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 开源协议。

🔗 相关链接

⚠️ 免责声明

本项目仅供学习和研究使用,使用本项目所产生的一切后果由使用者自行承担。请遵守相关法律法规,不得用于非法用途。

💬 联系方式

如有问题或建议,欢迎通过以下方式联系:

加入社区

用户交流群
用户交流群
扫码加入,与创作者交流
商务合作
技术咨询 & 商务合作
扫码联系,洽谈合作

如果这个项目对你有帮助,请给我们一个 ⭐️ Star!

Made with ❤️ by FastMovieAI Team

About

FastMovieAI 是一个功能完整的开源短剧/短视频创作平台,采用前后端分离架构,提供 AI 驱动的视频内容创作能力。平台集成了用户管理、支付系统、内容管理、视频生成等完整功能模块,适合内容创作者和视频制作团队使用。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published