说明:云转码系统估计很多人知道,比较火的大概有七彩云、PPVOD等云转码,博主也用过一两个,感觉都不是很适合自己,恰好最近看到了个基于nodejs制作的开源免费的云转码切片系统,功能上基本可以满足个人日常需求了,而且博主感觉nodejs的转码切片速度比现有的很多php转码程序都快些,不知道是姿势问题还是啥,这里就分享下,给有需求的人用。

提示:本文主要介绍的是开源免费版的功能及其源码的安装方法,仅供学习交流使用。且不能用于非法用途,否则后果自负!

项目介绍

该云转码不再是简单的云转码系统,而是CMS系统+云转码系统一体化,自带整个完备的并且对移动端友好的,而且非常利于SEO优化的自适应CMS系统,根据后台的分类系统和门户CMS管理系统,直接在首页达成完备的在线视频播放系统,适用于在线教育、企业内部培训视频、在线视频自媒体门户等多种运用方向。

如果你不想使用CMS,也可以单独当它是一个可以在线视频转码的工具,对视频进行在线格式转换,很适合用来做一个视频转码的网站。

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

官方网站:https://www.moemv.com/
开源地址:https://ffmpeg.moejj.com/
开源版演示:https://www.moejj.com

特别提示

目前高级版和纯净版云转码程序都已开发,包括即将开发完成的在线视频APP安卓/IOS APP软件,真正的做到CMS+转码切片+APP全方位一体化,上手更简单,并且转码和切片上比开源版强很多,切片质量也是非常的好,不管是在切片加载情况,播放切片时的流畅度及系统负载等方面,都有不错的表现,用过的人都知道,且高级版结合了最新的CPU+GPU混合转码,在转码速度大幅度提高下,质量和压缩率都十分完美,同时纯净版和高级版都会长期频繁更新。

注意:对高级版或者纯净版有兴趣的看文章后面的介绍,有购买需求的可以加微信rats54。

这里感谢下购买过并支持作者的人,有您的支持,以后该程序会越来越强大,功能越来越多,同时我们也会提供最好的服务,并耐心给您解决一些疑难问题。

截图

请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述

更新

【2019.1.17】
更新部分安装步骤,使出错率更小。

为什么要使用云转码

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

具体功能

  • 后台云转码加切片,运用最精简的代码,做成最快的转码+切片功能。
  • 秒切功能,切片速度领先所有市面收费云转码系统。
  • 视频分类、视频筛选、视频搜索,后台一应俱全。
  • 防盗链、token防盗链,多重防盗链,避免流量损失,可以设置指定域名只能iframe调用。
  • 字幕烧录,水印烧录,超级简单的操作,即可将字幕烧录进视频或者添加水印到视频中。
  • 支持vtt字幕,后台可以根据不同的视频上传不同的vtt字幕,前台播放自动加载字幕。
  • 视频截图,后台配置截图数,云转码切片的时候自动截图。
  • ts分发,多服务器同步内容,ts文件自动循环加域名前缀,负载均衡。
  • cms系统配置,站点名称设置、seo标题设置、seokeywords设置,seodescription设置,前台显示截图设置,前台自动生成cms系统,自适应布局,针对移动端优化,seo效果极佳。

新增功能

#增加会员系统
增加会员系统,可以不开启CMS,独立开启会员系统,双向验证,安全可靠,后台可以配合卡劵生成,前台用户使用卡劵进行升级。

#真正意义上的权限系统
路由层面的权限系统,非网上的播放器假权限,根据权限不同,相同的M3U8播放文件返回不同的内容,比如普通会员只能播放3分钟,就只会返回3分钟的切片内容,升级之后才会返回完整的切片内容。

#卡劵系统
后台设定卡劵生成,可以设置开通会员时间,用户前台使用即可升级到对应的会员,到期之后权限失效,需要重新开通,如果连续使用则是累加会员时间。

安装

如果你觉得安装很困难,想很快安装好,可以使用博主写的Linux一键脚本,脚本地址:点击访问

安装教程官网其实有,不过仅有Ubuntu的手动教程,其它系统都没有,博主发现该程序所需的大部分环境宝塔面板均可以直接安装,鉴于为小白着想,这里就用宝塔面板安装该程序,支持的系统也多。

所需环境:nodejsexpressjsmongoDbffmpegRedis

1、安装宝塔

#Centos系统
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
#Ubuntu系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh
#Debian系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh

安装完成后,进入面板,点击左侧软件管理,然后安装MongoDbRedisNginx(使用域名访问才需要安装,反之不用)。注意Debian安装MongoDb之前还需要使用命令apt install sudo,不然可能存在MongoDb启动不了的情况。

2、安装ffmpeg

wget https://www.moerats.com/usr/down/ffmpeg/ffmpeg-git-$(getconf LONG_BIT)bit-static.tar.xz
tar xvf ffmpeg-git-*-static.tar.xz
mv ffmpeg-git-*/ffmpeg  ffmpeg-git-*/ffprobe /usr/bin/
rm -rf ffmpeg-git-*

3、安装Nodejs

#Debian/Ubuntu系统
curl -sL https://deb.nodesource.com/setup_8.x | bash -
apt install -y nodejs git

#Centos系统
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install nodejs git -y

安装PM2express

npm install -g pm2 express

4、创建数据库
创建之前建议去面板软件管理那里找到MongoDb数据库重启一下。

#这里数据库名,用户和密码都是ffmpeg
mongo
use ffmpeg
db.createUser({user:"ffmpeg",pwd:"ffmpeg",roles:[{role:"readWrite",db:"ffmpeg"}]})
db.auth("ffmpeg","ffmpeg")

如果显示1则增加用户正确,再使用Ctrl+D退出。这里如果有No such file or directory报错,请检查下数据库运行状态。

5、配置云转码

git clone https://gitee.com/quazero/express-ffmpeg.git
cd express-ffmpeg
#创建config文件夹
mkdir config
cd config

创建并编辑auth.js配置文件:

nano auth.js

将以下代码复制进去:

#该配置比很早的版本多了三个设置项,很多人出错就在这里,secret是session需要的秘钥,login是后台登陆地址,loginmsg 是后台未登录显示的内容,默认是404。
module.exports = {
    user: "admin",
    password: "admin",
    db: "ffmpeg",
    dbuser: "ffmpeg",
    dbpassword: "ffmpeg",
    secret: "yoursecret",
    login: "/adminlogin",
    loginmsg: "404 Not Found"
};

再使用Ctrl+XY确认退出编辑模式,参数从上往下依次是登陆云转码平台的账号,密码,数据库,数据库用户名,数据库密码。本教程安装的mongodb数据库为ffmpeg,用户名和密码都是ffmpeg,可以自行进行修改。

6、安装并运行云转码

cd /root/express-ffmpeg
npm install
#如果服务器重启,则必须在express-ffmpeg源码文件里重新运行命令启动
pm2 start bin/www -i 0

7、反向代理
点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:3000,再启用反向代理即可。

8、站点配置
最后打开xx.com/adminlogin,输入设定的账号密码,本教程设置的是adminadmin,进入之后点击设置,转码设置需要绑定域名,截图数需大于0,然后域名分发可以不设置,但需要提交下、CMS设置也需要绑定域名,播放器设置需要关闭强制QQ浏览器播放,当然其它设置需要自行修改,不然视频很可能因为某个设置的问题放不了。

最后就可以直接分享视频,也可以在别的网站贴视频什么的。

云转码高级版

演示站:https://www.leimulamu.com/

云转码付费高级版功能在开源版功能前提下,新增如下:

  • 拥有全新的主题,样式更好看了。
  • 新增加多码率版本,可以同时转码240P360P480P720P1080P,后台可以自行配置。
  • 新增跑马灯广告,后台直接设置广告文字,速度,多长时间出现一次,无需任何复杂的配置。
  • 新增用户组权限,根据后台配置,可以自行设置用户组可观看分辨率。
  • 新增超级截图功能,比原来截图速度快100倍,并无夸张,只需要1秒钟即可截图设定数量的图片。
  • 新增推广功能,用户个人中心获取推广链接,根据IP访问增加积分,积分累计升级用户组,解锁更高分辨率。
  • 新增标签化和截取视频片段生成gif动态图。
  • 新增一键获取视频所有分辨率m3u8m3u8地址全部随机目录。
  • 自适应m3u8,根据用户的带宽自动加载其中一个分辨率的m3u8
  • 云储存,用户可自建minio,或者利用亚马逊s3,自动将所有资源分发至云储存。
  • 高级试看功能,根据用户状态,同一m3u8返回不同内容,超级防盗链。

其他更多功能可以看更新日志:

【2019年3月3日】
新增了多服务器多域名分发配置。
新增了大量对接网盘系统的API配置。
根据所填写分发配置,m3u8中的ts会随机的添加分发域名。
通过多服务器同步切片或者直接反代,就可以实现多服务器负载均衡的效果。或者直接分发CDN域名,也可以解决带宽和负载问题。

【2019年3月12日】
增加一个新的分辨率640P的选项。
增加保留mp4的新选项640P。
修复一些BUG,比如点击推荐然后删除出错的问题。
增加自定义每个分辨率的码率功能,可以设置自己需要的码率。

【2019年3月20日】
增加单独图片水印单独位置的水印烧录功能,这个算是一个比较大的重构功能。
删除原有的配置中的水印配置,并且重新了设计了水印功能,可以设置每一个位置设置不同的图片水印。
很智能的自动匹配视频的大小,也就是所有视频转码之后,图片水印的大小都是自适应的,都是一样的大小。
后台水印管理中,可以添加四个位置四个图片水印,可以完全不同,也可以相同,不添加则不会添加图片水印。
后台预留了文字水印的位置,估计以后会再加上文字水印功能。

【2019年4月5日】
m3u8地址整体优化,更利于切片的管理和储存。
电视剧模块增加生成海报功能,因为m3u8地址的改变,所以如果升级新版本需要在电视剧模块中点击一下生成海报的按钮。
增加对ass字幕烧录的支持,很多视频的字幕就是ass特效字幕,原来srt字幕,现在增加了对ass字幕的支持,在movies文件夹中与视频同名的ass字幕会优先烧录进视频中,也就是如果同时存在srt字幕和ass字幕,则会直接烧录ass字幕。
增加了视频定制化转码的配置。在现在这个每一个视频都不一样的变化的时代,当然要对视频有定制化转码的选项,所以现在可以选择部分或者仅仅一部视频,进行定制化转码的配置。
增加了跑马灯广告中文本颜色,描边颜色,描边大小的设置。非常的炫酷。再配合字体文件,可以完美自定义跑马灯的样式。

【2019年4月24日】
增加多码率的试看功能,重写了全部的获取m3u8和处理m3u8的逻辑,使其完美支持了分发设置下的试看功能。
真正意义上的试看功能,并非播放器上边的模拟试看,相同的m3u8根据用户的状态返回完全不同的内容。
完美支持了高级版多码率版本的试看功能,如果在后台开启试看功能,则未登录的用户所有分辨率只能试看一分钟,注册之后用户组对应的分辨率可以观看全片,但是对应分辨率如果用户组权限不够还是只能试看一分钟。
有一个很有趣的场景:开始开放m3u8给第三方采集,突然有一天后台一键开启试看功能,所有外面引用的m3u8就全部变成了一分钟试看,是不是非常有趣。
试看功能完美支持分发设置,也就是说使用cdn的用户也可以使用试看功能,试看功能的原理是捕获用户的m3u8静态文件请求,将请求完全交给源代码处理,不走静态静态目录,所以相同的m3u8根据用户的状态直接返回完全不同的内容。
试看功能一旦开启,就拥有了类似优酷、爱奇艺相同级别的防盗链功能,但是仅限于使用本源码配套的cms,试看功能意味着永久的杜绝防盗链。
对接了支付宝的官方接口,可以直接使用支付宝充值积分。往后可能会陆续增加大量的支付接口,方便用户选用。
增加了订单管理功能,通过支付宝充值的订单将在订单管理中进行管理。
更新了前端的提示功能,在移动端上非常友好,增加了试看的提醒等。
修复了电影和电视剧上传海报的问题。
修复了少数bug。

【2019年5月29日】
增加了大量的对接APP的API接口。
增加了一键生成视频海报的功能。
修复和优化了大量已知问题,前端重写了很多逻辑。
获取m3u8增加详尽,增加动态图,截图,mp4地址。
增加了多视频转码功能,后台可设置同时转码多少个视频,全方位利用CPU效能。
APP对接完成,演示APP地址:https://www.iqi360.com/topic/5ce4277cac599a7c35b49eb8

【2019年6月8日】
超现代的响应式模板。
绝佳设计,绝佳的用户体验。
最新的BOOTSTARP4框架新模板。
更新了超大量的代码和优化了大量的程序代码,首页完全内存缓存

【2019年6月22日】
增加了高级版CMS的评论功能,后台审核功能。
增加了用户编辑功能,可以编辑用户名,邮箱,重设密码,vip用户组,VIP到期日期。
完全改进了发布流程,视频转码完成之后,有一个中间状态,点击正式发布,视频才会发布到前端。
改进了网页上传机制等。

【2019年6月30日】
新增用户上传功能,用户可以在自己的专用上传页面,上传视频,后台CMS管理中可以设置用户上传视频审核通过之后可以增加的积分。用户上传之后获得积分,可以使用积分升级用户组,包月或者包年,解锁观看权限。
增加了所有视频状态的捕获和展示机制,分别有四种状态:审核中,剧集,电影,转码中或者等待发布。
美化了用户上传视频页面,和已经上传视频列表。

【2019年8月03日】
增加了云储存功能,向云更近一步,用户可自建minio集群对象储存或者使用亚马逊s3,可将源片,转码后各分辨率mp4,m3u8和切片文件,截图,动态图等全部自动转存至云储存,用户可直接调用云储存的资源进行播放。
增加了自适应m3u8功能,根据视频转码出来的多个分辨率,根据用户自身的带宽情况自动加载其中一个分辨率的m3u8,非常智能。以后只需要放出一个自适应m3u8就够了。
新增导出表格功能,用户需要分工功能怎么办,一个人管理视频转码,一个人管理CMS运营,这个时候导出表格功能就有用了,一键导出所选视频的所有m3u8信息成表格。
新增了保留源片的选项,新增了保留源片的选项,建议配合云储存使用。

【2019年8月6日】
新增了GPU转码的支持,在翻阅了国内外大量的文档之后,重新规划设计的GPU转码功能,完全遵守最新的NVIDIA规范,使用CPU+GPU混合转码模式,同时利用CPU和GPU的效能,保证无论低码率还是高码率的质量和速度,同时做到了和CPU转码同样的压缩率和画质,堪称最完美的GPU转码功能。
##转码测试
测试文件:1.81G,时长2个小时10分钟。
转码设置:同时转码480P,720P,1080P,码率设置为500,1000,2000,并且同时添加图片水印和跑马灯。使用GPU转码。
结果:用时7分钟,整个多码率全部完成转码,如果不要1080P,则最多需要3分钟即可完成转码,纯CPU转码i9需要25分钟左右。保持了和纯CPU同样的压缩率,同样画面效果也和CPU转码一致。
GPU性价比之选:配合德国机器94欧元,也就是744人民币即可搭建出GPU转码服务器。

目前高级版18881年更新,可以在多台服务器上安装,可永久使用,程序完美兼容LinuxWindows系统,并提供各种新手教程/一键安装脚本,安装不再困难,一个命令即可装好,有需求的可以加微信rats54

云转码纯净版

该系统利用阿里巴巴开源的最强大的nodejs框架egg.js将整个转码切片系统抽离出来,最后制作完成了这款最好用、也最容易上手、安装也最简单的视频转码系统,称之为theone ffmpeg转码切片系统,也是用企业级标准制作的一款高性能极致视频转码切片系统。

定位:极致的方便,极致的使用体验,极致的用户自定义,极致的转码切片效率,为极致转码切片而生,企业级设计和编码。

主要功能如下:

1、所有码率自定义。
2、5个分辨率可选择。
3、选择是否切片,选择是否保留mp4文件,选择是否秒切。
4、选择是否截图GIF动态图,宽度,截取时长,系统会智能截取视频中间最精彩位置进行截取。
5、水印图片自适应,根据生成视频分辨率自适应图片宽高,所有分辨率转码出来图片水印都一样大小。
6、多地方水印烧录,可以同时将水印添加到视频的四个地方。
7、切片时长自己设定。
8、超级截图,生成10个截图只需要1秒钟。
9、全方位优化代码,设置简单,功能超级强大。
10、安装极简,带宽允许情况下2分钟即可安装完成,安装完成直接使用无需配置。
11、一键批量获取m3u8,一键获取视频所有截图,mp4和m3u8等全部信息,一键自动复制。
12、跨域放行防护配置项,如果开启则域名调用会有跨域判断,如果不开启,则可以将m3u8给所有网站调用。
13、自定义储存视频路径,一键可自动入库,srt字幕自动烧录。
14、跑马灯自定义,跑马灯广告间隔,速度,跑马灯文字。
15、高级特性 切片默认自动缓存进内存,默认缓存1000个ts切片,用户播放直接从内存读取,突破硬盘io,但是请每一个核搭配至少2g内存,比如8核服务器,请至少16g内存。如果内存不够,可以适当调低缓存量。
16、可替换型片头系统,多片头随机播放,多片头随时替换,替换立刻生效,所有视频自动加片头广告。
17、智能批量复制m3u8,按照第三方CMS格式一键复制视频m3u8,非常方便。
18、自带采集页面,简单配置,即可火车头入库所有第三方CMS。
19、高级版剪切片头功能,可随意定制保存前端或后端,或者两个都保存,并且剪切之后可入库使用。批量剪切片头功能可作为视频剪切工具使用。
20、可选多视频同时转码,充分利用CPU效能。

更多新增功能可以查看更新日志::

【2019年3月24日】
增加是否前台展示采集页面配置项。
增加前台专用采集页面,简单配置火车头可以发布到任何CMS中去

【2019年4月27日】
增加了分发设置,重写了某些逻辑。
后台增加分发设置页面,可以自行设置。
必须将public文件夹整个同步到储存服务器,比如移动到/website,目录结构就是/website/public,然后绑定域名到/website,之后将域名填写到分发设置中即可,可以无限添加分发域名。

【2019年5月19日】
增加了ts加密的功能。
修复了使用秒切,无法截图的问题。
优化了大量转码切片逻辑,更加稳定持久,出现错误会自动跳过。
增加后台分类管理功能。
前台采集页面增加了分类筛选的功能。
增加了视频选择分类的功能。

【2019年5月27日】
增加了前台采集页面的分类筛选功能。
后台增加了状态展示,全部视频,正在转码,转码完成等数量。
后台增加了编辑片名和上传海报的功能。
前台和后台都优化了获取m3u8的展示效果。
增加了同时转码视频数量设置,可以设置同时转码多个视频,充分利用cpu效能。

【2019年7月8日】
增加了批量剪切片头的功能,可以选择一批正在等待的视频,设置剪切时间轴,然后一键批量剪切视频片头。
增加了停止转码队列的功能,点击停止转码队列,会停止自动下一个转码进程,之后方便使用批量剪切片头功能剪切片头。
增加了智能切片功能,在保持最大兼容性的情况下,根据用户自己设置的切片时长进行智能切片,可以做到720P在800码率的情况下,单个TS切片文件100KB左右,加载速度极快。
比如设置切片时长为1秒,则在智能切片情况下,ts的时长大部分为1秒钟,少部分为0.5秒到2秒之间,保证了动态码率和视觉上,甚至播放器上的超高兼容性。
增加了授权机制,保证本人和用户双方权益。

【2019年7月12日】
增加了片头广告的开关,设置开启片头广告,则所有转码完成的视频广告会添加到所有的视频片头中去。
新增了可替换片头广告管理中心,在这里可以上传片头视频广告,进行片头视频广告的转码切片处理,最后强行植入到所有视频的片头中。
实现了片头广告的超强兼容,片头广告超快加载,片头广告可替换、可更改、可任意多个片头广告的功能。
片头广告的原理:利用源码智能更改m3u8文件,每次请求的时候,将片头广告智能嵌入至原来的m3u8文件中,形成新的m3u8文件直接返回到用户播放器中。而且本源码针对所有视频广告全部做了兼容性的转码切片工作,使其变成多个很小的TS切片,用户加载极快,并且可以多个片头广告随机加载其中一个,在用户进行下载合并分发中,就可以做到同一个视频,但是多个片头广告。
片头广告还可以用作将一个特定视频添加到所有的视频开头,来做到一些原来意想不到的作用,比如如果将纯净版商用提供服务,则可以在每一个视频开头都加上自己的企业的宣传视频,例如爱剪辑。

【2019年8月3日】
完善了批量剪切片头的功能。增加了多个选项,可选择保存剪切的前端或者后端,现在剪切片头广告可直接作为视频剪切的工具使用。
增加了格式化的批量复制功能,格式满足大部分第三方CMS编辑的格式。
增加了对ASS字幕的烧录支持。

目前纯净版分为366888元两档价格,只在安装的台数上有区别,其它均一模一样,包一年更新,并永久使用,程序完美兼容LinuxWindows系统,并提供各种新手教程/一键安装脚本,安装不再困难,一个命令即可装好,有需求的可根据自身经济条件进行选择,欢迎加微信rats54前来咨询。

最后如果你只是玩玩,那建议使用开源版,如果正式使用,或者想要功能多,那建议选择纯净版或者高级版。