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

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

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

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

大更新截图
FireShot-Capture-2---------------http___localhost_3000_

FireShot-Capture-3---------------http___localhost_3000_

FireShot-Capture-4-----cms-----http___localhost_3000_admin_portal

FireShot-Capture-5----------http___localhost_3000_admin_categories

FireShot-Capture-6-----------http___localhost_3000_admin_movies

FireShot-Capture-7--------------------------_---http___localhost_3000_movie_5b8e49643c3ee95a185469a7

FireShot-Capture-8--------------------------_---http___localhost_3000_movie_5b8e49643c3ee95a185469a7

增加会员系统

真正意义上的权限控制,路由层面的权限控制,相同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"
};

四、开启应用

进入应用文件夹,运行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"
};

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

版本更新

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版本:

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

截图

-----2018-07-31---10.18.37
-----2018-07-31---10.18.51
QQ20180731-0
-----2018-06-15---6.25.07
-----2018-06-15---6.25.48

帮助

有需要帮助可以联系我: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/