云转码切片管理平台Linux版本 基于nodejs开发

2018年9月4日大更新-云转码+cms一体化自动发布系统

这次完全更新完全改变了这套系统的定位,完全变成了云转码+cms一体化自适应自动发布系统,根据后台的分类和门户配置,在前台会自动生成CMS系统,拥有完备的视频播放系统,自适应,针对移动端完美优化,SEO优化效果极佳,无需额外配置,一键发布,一键分享。
更新了后台视频的分类和帅选、搜索功能,视频管理更加方便。
适用于:在线教育、在线培训,企业内部培训视频展示、视频自媒体发布等多种应用。
实际上线过后比截图更加完美,请自行测试。

增加会员系统

真正意义上的权限控制,路由层面的权限控制,相同M3U8文件,根据用户权限不同,动态返回不同的内容。

云转码切片管理平台介绍

  • 实现大文件分块上传,批量上传。
  • 实现服务器端自动动态码率转码并且切片,完成后会自动删除原视频文件。
  • 实现批量添加水印和字幕,和同时处理。
  • 实现截图,默认自动生成四张截图。
  • 一键获取分享链接,设置防盗链,token防盗链或者仅允许指定域名iframe调用。
  • ts切片文件域名分发,负载均衡,支持无限多服务器同步分发。

开源源码:云转码平台
官方网站:云转码express-ffmpeg

为什么要使用转码切片

传统视频如果没有正确的压缩,一般来说尺寸非常大,动则3Gb4Gb的大小,再者因为视频需要在网站中进行播放,传统中如果放置常规的flv或者mp4格式,那么浏览器会一直进行缓存,并且在缓存在一定播放长度之后才会进行播放,这样会消耗更多的带宽和让用户等待更长的时间,所以转码之后再进行切片是非常必须的,一来无损的压缩视频文件使其占用磁盘尺寸更小,并且基于hls格式,也是M3u8格式中储存了所有ts切片列表,这种模式加载,只需要加载第一个ts切片视频就可以开始播放,这样就使用户等待的时间更少,减少服务器带宽使用,并且画质的损失很小。这也就是为什么现在大部分视频网站都是使用hls格式来播放的。

安装说明

推荐环境ubuntu16.04,已经稳定运行并且提供服务多月。

一、安装ffmpeg(ubuntu16.04)

sudo add-apt-repository ppa:djcj/hybrid
sudo apt-get update  
sudo apt-get install ffmpeg

二、安装nodejs,expressjs,mongodb,pm2,nginx

这个篇幅过长,详情见:express+nodejs+redis+mongodb+pm2+nginx环境部署安装,生产环境及开发环境部署

三、创建/config文件夹并在里边创建auth.js文件

代码如下:

module.exports = {
     user: "username",
     password: "password",
     db: "dbname",
     dbuser: "dbuser",
     dbpassword: "dbpassword",
     secret: "yoursecret"
};

四、开启应用

进入应用文件夹,运行pm2 start ./bin/www -i 0
上边的-i 0的意思是以集群方式启动,根据当前服务器cpu线程数自动生成多线程共用一个端口。

五、增加中文字体

ffmpeg烧录字幕的时候会查找字体配置文件,/etc/fonts,如果里边没有fonts.conf,请将本源码中fonts.conf上传到/etc/fonts,有些linux系统没有中文字体支持,请将msyh.ttf上传至/usr/share/fonts里边。

软件开发框架介绍

  • nodejs v8.7.0版本
  • expressjs 4.16.0版本
  • mongoDb 3.6版本
  • ffmpeg 3.4.1版本

使用说明

  1. 创建/config文件夹并在里边创建auth.js文件 代码如下:
    module.exports = {
      user: "username",
      password: "password",
      db: "dbname",
      dbuser: "dbuser",
      dbpassword: "dbpassword",
      secret: "yoursecret"
    };
    
  2. 登陆后台之后请立刻在设置中进行设置。
  3. 上传视频即可上传视频。
  4. 转码页面一键转码。
  5. 支持后台字幕上传,名称与视频名一致,则系统会自动烧录字幕。例如:aaa.mp4,则srt字幕名为aaa.srt。(注意需要把srt文件转换成utf8格式)
  6. 支持一键入库,利用ftp等工具将视频上传至movies文件夹,后台可以一键入库,进行转码切片操作。
  7. 秒切功能,开启之后,无需进行转码的视频会直接切片。(后台可设置)
  8. 推荐手机和电脑都使用谷歌浏览器,手机上只有谷歌浏览器或者火狐浏览器才会加载vtt格式的外嵌字幕。

版本更新

V4.1版本

优化分类引用防盗链控制的逻辑,增加单分类开放浏览的选项。
优化后台视频管理数量选择,和一键批量修改。
后台增加设置选项,设置引用盗链跳转链接。
图集页展示更加完美。

V4版本

大更新,CMS怎么能没有图集发布和文章发布,这次更新增加图集和文章发布的完整支持。
图集发布,一键上传图片,一键完成封面截图,一键前端展示,点击翻页。
文章发布,集成editor.md,markdown编辑器,极其完美的书写体验。
增加分类编辑,编辑中可以针对分类添加防引用盗链,盗链功能颗粒化管理。
电影管理页,增加一键修改所有电影分类的功能。
增加播放器文字水印广告背景色和背景透明度设置。
完全重写分享页面的代码,速度更快。

V3.2版本

增加播放器进度条预览效果,鼠标移动到进度条会显示对应时间轴的预览图。
增加后台设置TS加密,设置加密之后,切片文件TS会全部加密。
Ts加密高级特性,每一个视频都对应一个独立的KEY文件,安全性大涨。

V3.1版本

增加队列转码功能,先上传的先转码,循环处理,转码失败会自动跳过
增加后台统计代码功能,可以添加第三方统计代码,分享链接和CMS单独设置
修复会员开通卡劵之后,m3u8浏览器缓存问题

V3版本

市面上唯一的路由层面的权限控制
完备可扩展的会员系统
VIP卡劵后台一键生成
根据权限不同,相同M3u8文件动态生成不同的内容

V2.1版本

增加防盗链域名多域名支持
针对手机QQ浏览器优化,支持显示播放器水印广告和文字链接广告
增加图表统计页面,炫酷图表统计和表格统计。
增加P2P功能,待测试效果。

V2版本:

大更新,增加门户CMS设置,内嵌CMS系统
增加播放器配置
播放器图片水印和文字广告
播放页面完全自定义图片水印和文字广告
增加P2P支持

v1.5版本

完全重构ffmpeg相关的所有代码。
将转码和切片合并成一次操作,提升双倍效率,原来是转码成mp4,然后再mp4切片。
完全重写切片代码,秒切的速度提升超过10倍,1G视频切片完成只需要半分钟。

v1.4版本

增加1080P的选项,支持更高清晰度转码切片。
增加ts文件分发功能,后台设置开启域名分发,m3u8文件会动态生成循环域名前缀的ts文件,一个m3u8里边就可以有多个同步服务器域名,达到负载均衡的目的。

v1.3版本

更改播放器为Dplayer播放。
增加VTT字幕支持,后台可以给视频分别上传vtt字幕,前台播放会自动加载。
增加一个webtorrent功能(测试玩)。

v1.2版本:

增加批量烧录字幕功能,支持srt字幕,改成和视频名一样,系统在转码的时候会自动把字幕烧录进去。如果存在srt字幕文件,则对应电影无论是否设置秒切都会进行转码。
增加批量入库功能,利用ftp或者其他工具将视频传至movies文件夹,在后台即可一键入库。
增加秒切功能,后台设置开启,即视频如果小于设置的分辨率并且编码为h264则会跳过转码直接切片。
增加自动生成截图功能,默认4张截图,路径yourdomain/videos/:id/(1|2|3|4).jpg。

v1.1版本:

批量上传视频,大文件切片上传。
批量转码并切片。
设置防盗链和分辨率,添加水印,一气呵成。

截图

cms图集

帮助

有需要帮助可以联系我:QQ195996048

设置应用为开发环境:https://moejj.com/she-zhi-express/
centos编译安装ffmpeg:https://moejj.com/ffmpeg-2/
centos安装nginx并设置反向代理:https://moejj.com/centosan-zhuang-nginx/
pm2集群多线程开启express应用:https://moejj.com/pm2-ji-qun-kai-qi-express/
服务器重启之后的步骤:https://moejj.com/yun-zhuan-ma-chongqi/
云转码系统推荐上传方式:https://moejj.com/yun-zhuan-ma-shang-chuan/