免费视频云转码系统express-ffmpeg+CMS视频网站系统安装教程
项目介绍
实现大文件分块上传,批量上传。
实现服务器端自动动态码率转码并且切片,完成后会自动删除原视频文件。
实现批量添加水印和字幕,和同时处理。
实现截图,默认自动生成四张截图。
一键获取分享链接,设置防盗链,token防盗链或者仅允许指定域名iframe调用。
ts切片文件域名分发,负载均衡,支持无限多服务器同步分发。
开源源码:https://gitee.com/quazero/express-ffmpeg
官方网站:http://ffmpeg.moejj.com/
服务器租用联系QQ:28575315
截图
为什么要使用云转码
传统视频如果没有正确的压缩,一般来说尺寸非常大,动则3Gb、4Gb的大小,再者因为视频需要在网站中进行播放,传统中如果放置常规的flv或者mp4格式,那么浏览器会一直进行缓存,并且在缓存在一定播放长度之后才会进行播放,这样会消耗更多的带宽和让用户等待更长的时间,所以转码之后再进行切片是非常必须的,一来无损的压缩视频文件使其占用磁盘尺寸更小,并且基于hls格式,也是M3u8格式中储存了所有ts切片列表,这种模式加载,只需要加载第一个ts切片视频就可以开始播放,这样就使用户等待的时间更少,减少服务器带宽使用,并且画质的损失很小。这也就是为什么现在大部分视频网站都是使用hls格式来播放的。
具体功能
后台云转码加切片,运用最精简的代码,做成最快的转码+切片功能。
秒切功能,切片速度领先所有市面收费云转码系统。
视频分类、视频筛选、视频搜索,后台一应俱全。
防盗链、token防盗链,多重防盗链,避免流量损失,可以设置指定域名只能iframe调用。
字幕烧录,水印烧录,超级简单的操作,即可将字幕烧录进视频或者添加水印到视频中。
支持vtt字幕,后台可以根据不同的视频上传不同的vtt字幕,前台播放自动加载字幕。
视频截图,后台配置截图数,云转码切片的时候自动截图。
ts分发,多服务器同步内容,ts文件自动循环加域名前缀,负载均衡。
cms系统配置,站点名称设置、seo标题设置、seokeywords设置,seodescription设置,前台显示截图设置,前台自动生成cms系统,自适应布局,针对移动端优化,seo效果极佳。
安装
安装教程官网其实有,不过仅有Ubuntu的手动教程,其它系统都没有,博主发现该程序所需的大部分环境宝塔面板均可以直接安装,鉴于为小白着想,这里就用宝塔面板安装该程序,支持的系统也多。
所需环境:nodejs、expressjs、mongoDb、ffmpeg等
1、安装宝塔
宝塔安装这里不用多说了吧?宝塔也装不上后面的更难。
安装完成后,进入面板,点击左侧软件管理,然后安装Nginx、PM2管理器、MongoDb。注意Debian安装MongoDb之前还需要使用命令apt install sudo,不然可能存在MongoDb启动不了的情况。
2、安装ffmpeg
安装文档:https://www.johnvansickle.com/ffmpeg/faq
系统要求:CentOS、Debian、Ubuntu等内核至少为2.6.32的Linux系统(内核查看命令uname -r)。
首先我们找到适合自己VPS服务器架构的ffmpeg二进制文件,文件地址:点击查看,建议优先使用git版本,毕竟更新快,如果git没有对应的版本就使用release版本。
安装命令:
#x86下载二进制文件 wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-64bit-static.tar.xz #x86_64下载二进制文件 wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-64bit-static.tar.xz #解压文件 tar xvf ffmpeg-git-*-static.tar.xz && rm -rf ffmpeg-git-*-static.tar.xz #将ffmpeg和ffprobe可执行文件移至/usr/bin方便系统直接调用 mv ffmpeg-git-*/ffmpeg ffmpeg-git-*/ffprobe /usr/bin/ #查看版本 ffmpeg ffprobe
最后基本上算安装完成了。
一般我们除了视频程序需要用到ffmpeg外,还可以直接拿来使用,比如转换视频格式、提取音频、合并视频等等,具体命令可以自行百度/谷歌。
3、安装expressjs
npm install express -gd
4、创建数据库
#这里数据库名,用户和密码都是ffmpeg mongo use ffmpeg db.createUser({user:"ffmpeg",pwd:"ffmpeg",roles:[{role:"readWrite",db:"ffmpeg"}]}) db.auth("ffmpeg","ffmpeg")
如果显示1则增加用户正确,再使用Ctrl+D退出。。
5、配置云转码
git clone https://gitee.com/quazero/express-ffmpeg cd express-ffmpeg #创建config文件夹 mkdir config cd config
创建并编辑auth.js配置文件:
nano auth.js
将以下代码复制进去:
module.exports = { user: "admin", password: "admin", db: "ffmpeg", dbuser: "ffmpeg", dbpassword: "ffmpeg", secret: "yoursecret" };
再使用Ctrl+X,Y确认退出编辑模式,参数从上往下依次是登陆云转码平台的账号,密码,数据库,数据库用户名,数据库密码。本教程安装的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/admin,输入设定的账号密码,本教程设置的是admin,admin,进入之后点击设置,在其中绑定域名,设置token的key,上传水印图片(推荐120*35),然后域名分发、CMS设置等功能都需要提交下,不然进入首页会出现502错误,而且视频也会播放不了。
express-ffmpeg项目介绍:
增加会员系统
增加会员系统,可以不开启CMS,独立开启会员系统,双向验证,安全可靠,后台可以配合卡劵生成,前台用户使用卡劵进行升级。
真正意义上的权限系统
路由层面的权限系统,非网上的播放器假权限,根据权限不同,相同的M3U8播放文件返回不同的内容,比如普通会员只能播放3分钟,就只会返回3分钟的切片内容,升级之后才会返回完整的切片内容。
卡劵系统
后台设定卡劵生成,可以设置开通会员时间,用户前台使用即可升级到对应的会员,到期之后权限失效,需要重新开通,如果连续使用则是累加会员时间。
项目介绍
主要实现功能: 一、视频批量上传,视频分块上传。 二、视频批量转码并且切片,切片完成删除原视频文件。 三、视频批量添加水印。 四、一键获取分享链接,防盗链设置,只允许指定域名ifream调用,token防盗链等。 五、自带完备的CMS系统。
文档更新地址:https://moejj.com/yun-zhuan-ma-qie-pian/
官网地址:http://ffmpeg.moejj.com 这里不会再更新文档和版本内容
本开源项目采用nodejs、expressjs、mongodb开发。 使用前请安装ffmpeg。
软件架构
nodejs v8.7.0版本 expressjs 4.16.0版本 mongoDb ffmpeg 3.4.1版本 Linux系统上运行完美。
云转码服务器、G口服务器、视频服务器、视频CDN节点服务器、转码切片服务器,租用联系QQ:28575315
本文转载自:https://www.moerats.com/archives/731/