人生就是由众多的细节组成的
正因为是个细节,所以常被人所淡忘

崇胜网络科技-视频转码服务系统 v1.1.6 _20191101

项目概述

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

官网地址:https://www.ctcms.cn/

崇胜网络科技-视频转码服务系统核心架构

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)

  • Upload.php – 文件上传(支持分片上传、MD5秒传)
  • Video.php – 视频管理(列表、详情、删除、转码状态查询、执行转码)
  • Vlist.php – 分类管理
  • Setting.php – 系统设置
  • Play.php – 视频播放
  • M3u8.php – M3U8文件输出(支持加密、防盗链)
  • Login.php – 后台登录
  • Install.php – 系统安装
  • Home.php – 前台首页

核心库(Libraries)
Xyz.php – 视频处理核心类

  • transcode() – 视频转码
  • format() – 获取视频信息
  • vodtojpg() – 视频截图
  • vodtogif() – 生成GIF动图
  • watermark_zm() – 添加水印/字幕
  • m3u8aes() – M3U8加密

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

辅助函数(Helpers)

  • m3u8_link() – 生成M3U8播放链接
  • m3u8_dir() – 生成存储路径
  • sys_auth() – 加密/解密函数
  • formatsize() – 格式化文件大小
  • formattime() – 格式化时长
  • is_referer() – 防盗链验证
  • safe_replace() – SQL注入过滤

5. 核心功能特性

视频上传

  • 分片上传(支持大文件)
  • MD5秒传(避免重复上传)
  • 支持格式:avi, wmv, mpeg, mp4, mov, mkv, flv, f4v, m4v, rmvb, rm, mpg
  • 临时文件自动清理

视频转码

  • 转码为HLS(m3u8 + ts分片)
  • 支持自定义TS时长(默认5秒)
  • 支持多码率转码
  • 支持视频缩放
  • 支持码率控制
  • 支持跳过片头
  • 支持秒切(快速转码)
  • 转码速度可调(ultrafast到slower)

视频加密

  • AES-128加密
  • 自定义密钥
  • TS文件伪装后缀
  • 加密链接(防盗链)
    水印功能
  • 支持4个位置(左上、右上、左下、右下)
  • 支持PNG水印图片
  • 支持ASS字幕

截图功能

  • 自动截图(可设置张数、间隔、尺寸)
  • GIF动图生成
  • 自定义截图时间点

防盗链

  • Referer验证
  • 域名白名单
  • M3U8地址加密
  • 直接播放控制

队列管理

  • 自动转码队列
  • 转码进度实时查询
  • 失败自动重试
  • 进程监控(防止卡死)

API同步

  • 支持外部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. 优化特性

  • 秒切模式(MP4直接转封装)
  • 多码率支持
  • 临时文件清理
  • 进程监控防卡死
  • 转码速度可调
  • 原文件可选保留/删除

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

赞(0) 打赏
未经允许不得转载:毛桃博客 » 崇胜网络科技-视频转码服务系统

评论 抢沙发

评论前必须登录!

 

实践是学习的最佳途径

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

了解更多看平潭

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册