«

PHP双码率视频云转码服务系统源码 m3u8切片秒切

逍遥客 发布于 阅读:430


项目概述

这是一个基于 CodeIgniter 框架的视频云转码系统(版本 v1.1.6),由桂林崇胜网络科技开发,主要功能是将上传的视频文件转码为 HLS(m3u8)格式,借助云转码,实现加密、水印、截图等功能。

核心架构

1. 技术栈

后端框架: CodeIgniter 3.x
数据库: MySQL 5.6+
PHP版本: PHP 7.1+
服务器: Linux + Apache(推荐)
转码工具: FFmpeg/FFprobe
前端: Layui + jQuery

2. 目录结构

ctcms/
├── apps/                    # 应用程序目录
│   ├── application/         # 主应用
│   │   ├── controllers/     # 控制器
│   │   ├── models/          # 模型
│   │   ├── libraries/       # 自定义库
│   │   ├── helpers/         # 辅助函数
│   │   └── config/          # 配置文件
│   └── system/              # CI框架核心
├── libraries/               # 核心库文件
│   ├── config.php          # 系统配置
│   ├── database.php        # 数据库配置
│   └── ctcms.php           # 系统初始化
├── packs/                   # 资源包
│   ├── ffmpeg/ffmpeg.exe   # Windows转码工具
│   ├── ffmpeg              # Linux转码工具
│   ├── layui/              # UI框架
│   ├── jquery/             # JS库
│   ├── plupload/           # 上传组件
│   ├── ckplayer/           # 播放器
│   └── logo.png            # 水印图片
├── template/                # 模板文件
├── video/                   # 视频存储
│   ├── data/               # 原始视频
│   └── m3u8/               # 转码后的m3u8文件
├── index.php               # 前台入口
└── admin.php               # 后台入口

3. 数据库设计

三张核心表:
mu_video – 视频记录表

id, cid(分类ID), name(视频名称)
path(原文件路径), m3u8(m3u8路径), pic(截图路径)
md5(文件MD5), vid(自定义ID)
sid(转码状态:0待转码/1完成/2失败/3异常)
duration(时长), size(大小), addtime(上传时间)

mu_queue – 转码队列表

id, vid(视频ID), xu(码率序号)
path(源文件), jpg(截图路径), gif(动图路径), m3u8(m3u8路径)
duration(时长), sid(状态), addtime(转码开始时间)

mu_class – 分类表

id, name(分类名称), xid(排序)

4. 核心功能模块

控制器(Controllers)

核心库(Libraries)

Xyz.php – 视频处理核心类

Ffm.php – ZIP压缩库(加密混淆)

辅助函数(Helpers)

5. 核心功能特性

视频上传

视频转码

视频加密

截图功能

防盗链

队列管理

API同步

6. 配置项(config.php)

主要配置包括:

域名配置(站点域名、转码域名、M3U8域名)
后台账号密码
截图设置(开关、张数、间隔、尺寸)
GIF设置(开关、时长、尺寸)
转码设置(加密、秒切、码率、尺寸、多码率)
水印设置(4个位置开关)
字幕设置
文件路径(上传路径、转码路径、FFmpeg路径)
防盗链设置
API同步设置
上传设置(秒传、外部上传、支持格式)

7. 工作流程

上传阶段:
用户上传视频 → 分片上传 → 合并文件
检查MD5(秒传) → 获取视频信息(FFprobe)
写入video表 → 生成队列记录

转码阶段:
前端轮询getpro接口 → 检查队列
调用transcode接口 → 执行FFmpeg转码
生成m3u8 + ts分片 + 截图 + GIF
添加水印/字幕/加密
更新转码状态 → 删除队列记录

播放阶段:
访问play页面 → 获取m3u8链接
如果开启加密:通过M3U8控制器输出
防盗链验证 → 返回视频流

8. 安全机制

SQL注入过滤(safe_replace)
XSS防护
文件类型验证
防盗链验证
加密传输(AES-128)
后台登录验证(Cookie + MD5)
目录权限控制

9. 优化特性

这是一个功能完整的商业级视频云转码系统,适合搭建视频网站、在线教育平台等需要视频处理的场景。

PHP双码率视频云转码服务系统源码 m3u8切片秒切

请先 登录 再评论