Rat's

云转码express-ffmpeg+CMS一体化系统安装教程
项目介绍实现大文件分块上传,批量上传。实现服务器端自动动态码率转码并且切片,完成后会自动删除原视频文件。实现批量添...
扫描右侧二维码阅读全文
12
2018/09

云转码express-ffmpeg+CMS一体化系统安装教程

项目介绍

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

开源源码:https://gitee.com/quazero/express-ffmpeg
官方网站:http://ffmpeg.moejj.com/
演示网站:https://www.moejj.com

截图

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

为什么要使用云转码

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

具体功能

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

新增功能

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

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

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

安装

提示:云转码不是很适合在国内服务器上安装,建议试试国外的,比如搬瓦工传送门,如果你觉得该安装很难,可以试试Docker安装:使用Docker快速安装express-ffmpeg云转码切片,不过还是先建议自己折腾下。

安装教程官网其实有,不过仅有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

安装完成后,进入面板,点击左侧软件管理,然后安装NginxPM2管理器(再去宝塔后台进入pm2设置将nodejs版本调到v8,版本太高可能会出问题)、MongoDbRedis。注意Debian安装MongoDb之前还需要使用命令apt install sudo,不然可能存在MongoDb启动不了的情况。

2、安装ffmpeg
安装方法参考:使用静态ffmpeg二进制文件秒安装ffmpeg

3、安装expressjs

npm install express -gd

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,进入之后点击设置,在其中绑定域名,设置tokenkey,上传水印图片(推荐120*35),然后域名分发、CMS设置等功能都需要提交下,不然进入首页会出现502错误,而且视频也会播放不了。

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

需要Office365 E3 MSDN 25的可加入萌咖杂货店QQ群购买→【点击加入
最后修改:2018 年 11 月 09 日 11 : 20 AM

发表评论

135 条评论

  1. soradaisuki

    点击转码就报错
    at ChildProcess.<anonymous> (/root/express-ffmpeg/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22)

    at emitTwo (events.js:125:13) at ChildProcess.emit (events.js:213:7) at Process.ChildProcess._handle.onexit (internal/child_process.js:197:12)
    events.js:182

    throw er; // Unhandled 'error' event ^
    TypeError: Cannot read property 'format' of undefined

    at /root/express-ffmpeg/helper/listsffmpeg.js:48:35 at /root/express-ffmpeg/node_modules/mongoose/lib/model.js:4518:16 at (anonymous function).call (/root/express-ffmpeg/node_modules/mongoose/lib/query.js:3800:7) at process.nextTick (/root/express-ffmpeg/node_modules/mongoose/lib/helpers/query/completeMany.js:35:39) at _combinedTickCallback (internal/process/next_tick.js:95:7) at process._tickCallback (internal/process/next_tick.js:161:9)

    1. soradaisuki
      @soradaisuki

      懂了 原来是没有找到文件,应该是上传的时候出了问题吧

      1. soradaisuki
        @soradaisuki

        宝塔的pm2有点问题...

        1. Rat's
          @soradaisuki

          感觉pm2和mongodb都有点问题

      2. Rat's
        @soradaisuki

        你可以看下movie文件夹有不有上传的视频,然后检查下有不有可读权限。

        1. soradaisuki
          @Rat's

          之前问题是解决了,但是视频播放只有封面23333,声音倒是有的

          1. Rat's
            @soradaisuki

            这个倒不是很清楚,使用方面没深入研究。

        2. 爱看动漫的小梁
          @Rat's

          不正常,因为我都注意数据变化,转码时CPU多少,不转码时是多少

  2. 爱看动漫的小梁

    安装成功,已上传4个视频,但vm状态下,需要快照来维持状态,要不然可能出现CPU100%

    1. Rat's
      @爱看动漫的小梁

      恭喜,这是折腾个把月了吧,貌似cpu100%很正常

  3. 爱看动漫的小梁

    为什么CentOS 7 64 还是报错这个?
    gyp ERR! build error
    gyp ERR! stack Error: make failed with exit code: 2
    gyp ERR! stack at ChildProcess.onExit (/www/server/nvm/versions/node/v10.13.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
    gyp ERR! stack at ChildProcess.emit (events.js:182:13)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
    gyp ERR! System Linux 3.10.0-862.el7.x86_64
    gyp ERR! command "/www/server/nvm/versions/node/v10.13.0/bin/node" "/www/server/nvm/versions/node/v10.13.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
    gyp ERR! cwd /root/express-ffmpeg/node_modules/canvas
    gyp ERR! node -v v10.13.0
    gyp ERR! node-gyp -v v3.8.0
    gyp ERR! not ok

  4. 虾哈

    为什么进不了后台,输入密码后跳转到百度了。

    1. Rat's
      @虾哈

      因为你密码输入错误,就会直接跳百度

  5. 123

    为啥视频状态不更新呢 明明已经转完了
    开了秒切就是chunking 关闭秒切就是trans&chunk
    完成后cpu负载是0% 进文件夹里看已经转好切好了 但是状态就是不更新finished
    点分享也点不了

    1. 123
      @123

      直接用链接打开视频是一片黑的

      1. Rat's
        @123

        会不会是你后台没设置好?比如截图数啥的,使用pm2 log查看下日志。

        1. 123
          @Rat's

          截图数是0 等了好一会 状态一直显示chunking 实际上已经切好了 cpu也一直是0% 然后复制链接可以播了 过了一天去看状态还是chunking 但不影响播放 算是搞定了 谢谢你的教程 下一步就是找个网络快的服务器了 不然上传视频太慢

          1. Rat's
            @123

            截图貌似不能为0,下次你可以试试我那个docker镜像?https://www.moerats.com/archives/782

            1. 123
              @Rat's

              我是分享到其他网站播放 不用自带cms 所以截图没用吧
              docker有机会再试 先找服务器 大硬盘国内网络快的 有推荐吗

              1. Rat's
                @123

                看看这个,cn2 gia便宜的大硬盘https://www.moerats.com/archives/748/。

                1. 123
                  @Rat's

                  收藏了 看看他们黑五有没有优惠

                  1. Rat's
                    @123

                    他那个大盘鸡就是特价。

                    1. 123
                      @Rat's

                      他们这大盘鸡 允许资源长期满载吗 如果要转码 cpu长期跑满 播视频网络也会大量占用 不会封吗?

                      1. Rat's
                        @123

                        他们的老板很好说话,你可以工单问下。

  6. 海天

    博主 有没有类似的好的 PDF管理程序啊 推荐个啊 万分感谢

    1. Rat's
      @海天

      这个我得注意下,知道了回复你,有邮件通知。

  7. 123
    运行npm install错误 node版本 v8.0 v8.1都试过了

    gyp ERR! build error
    gyp ERR! stack Error: make failed with exit code: 2
    gyp ERR! stack at ChildProcess.onExit (/www/server/nvm/versions/node/v8.0.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:285:23)
    gyp ERR! stack at emitTwo (events.js:125:13)
    gyp ERR! stack at ChildProcess.emit (events.js:213:7)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:197:12)
    gyp ERR! System Linux 2.6.32-042stab129.1
    gyp ERR! command "/www/server/nvm/versions/node/v8.0.0/bin/node" "/www/server/nvm/versions/node/v8.0.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
    gyp ERR! cwd /root/express-ffmpeg/node_modules/sharp
    gyp ERR! node -v v8.0.0
    gyp ERR! node-gyp -v v3.6.1
    gyp ERR! not ok
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! sharp@0.20.8 install: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the sharp@0.20.8 install script.

    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    log日志
    1743 verbose stack Error: sharp@0.20.8 install: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
    1750 error code ELIFECYCLE
    1751 error errno 1
    1752 error sharp@0.20.8 install: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
    1752 error Exit status 1
    1753 error Failed at the sharp@0.20.8 install script.
    1753 error This is probably not a problem with npm. There is likely additional logging output above.

    1. 123
      @123

      网上搜了其他教程 有人说云转码更新了 教程不起作用了

      1. Rat's
        @123

        我这个管用的,一直尽量保证最新。

        1. 123
          @Rat's

          那能不能看一下我上面的错误日志是什么原因?
          Failed at the sharp@0.20.8 install script 脚本错误?

          1. Rat's
            @123

            你这是缺少点依赖,而且错误日志关键地方貌似没留,还有系统是什么。

  8. 猫猫

    make: * [Release/obj.target/canvas/src/Canvas.o] Error 1
    make: Leaving directory `/root/express-ffmpeg/node_modules/node-sprite-generator/node_modules/canvas/build'
    gyp ERR! build error
    gyp ERR! stack Error: make failed with exit code: 2
    gyp ERR! stack at ChildProcess.onExit (/www/server/nvm/versions/node/v10.13.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
    gyp ERR! stack at ChildProcess.emit (events.js:182:13)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
    gyp ERR! System Linux 3.10.0-862.3.2.el7.x86_64
    gyp ERR! command "/www/server/nvm/versions/node/v10.13.0/bin/node" "/www/server/nvm/versions/node/v10.13.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
    gyp ERR! cwd /root/express-ffmpeg/node_modules/node-sprite-generator/node_modules/canvas
    gyp ERR! node -v v10.13.0
    gyp ERR! node-gyp -v v3.8.0
    gyp ERR! not ok
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: canvas@1.3.12 (node_modules/node-sprite-generator/node_modules/canvas):
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: canvas@1.3.12 install: node-gyp rebuild
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

    audited 893 packages in 3.411s
    found 4 vulnerabilities (3 low, 1 high)
    run npm audit fix to fix them, or npm audit for details

    1. Rat's
      @猫猫

      这个错误不全,建议你在宝塔软件管理的pm2,把nodejs版本调到v8,然后再有错误可以留下言,别留太多,只需要Error字符出现的上下几排。

  9. 爱看动漫的小梁

    请问vm的虚拟机可以安装吗

    1. Rat's
      @爱看动漫的小梁

      这个没试过。

  10. 爱看动漫的小梁

    secret是session需要的秘钥
    这个复制代码即可???

  11. ThinkVN

    please tell me, state watting longtime
    thanks.

    1. Rat's
      @ThinkVN

      what?

  12. 爱看动漫的小梁

    CXX(target) Release/obj.target/canvas/src/CanvasGradient.o
    CXX(target) Release/obj.target/canvas/src/CanvasPattern.o
    In file included from ../src/CanvasPattern.cc:9:0:
    ../src/Image.h:19:21: 致命错误:gif_lib.h:没有那个文件或目录
    #include <gif_lib.h>

    ^

    编译中断。
    make: * [Release/obj.target/canvas/src/CanvasPattern.o] 错误 1
    make: 离开目录“/www/wwwroot/express-ffmpeg/node_modules/canvas/build”
    gyp ERR! build error
    gyp ERR! stack Error: make failed with exit code: 2
    gyp ERR! stack at ChildProcess.onExit (/www/server/nvm/versions/node/v8.12.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
    gyp ERR! stack at emitTwo (events.js:126:13)
    gyp ERR! stack at ChildProcess.emit (events.js:214:7)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
    gyp ERR! System Linux 3.10.0-862.el7.x86_64
    gyp ERR! command "/www/server/nvm/versions/node/v8.12.0/bin/node" "/www/server/nvm/versions/node/v8.12.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
    gyp ERR! cwd /www/wwwroot/express-ffmpeg/node_modules/canvas
    gyp ERR! node -v v8.12.0
    gyp ERR! node-gyp -v v3.8.0
    gyp ERR! not ok

    sharp@0.20.8 install /www/wwwroot/express-ffmpeg/node_modules/sharp
    (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

    info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.6.1/libvips-8.6.1-linux-x64.tar.gz
    npm notice created a lockfile as package-lock.json. You should commit this file.
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: canvas@1.3.12 (node_modules/canvas):
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: canvas@1.3.12 install: node-gyp rebuild
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

    added 385 packages from 408 contributors and audited 796 packages in 1127.664s
    found 4 vulnerabilities (3 low, 1 high)
    run npm audit fix to fix them, or npm audit for details

    这次是centos 7 64位

    1. Rat's
      @爱看动漫的小梁

      我刚测试的无任何问题,教程的一些细节我也加了点,你还是检查下你的操作吧。

      1. 爱看动漫的小梁
        @Rat's

        请问,你的CentOS 7是什么版本!

        1. Rat's
          @爱看动漫的小梁

          CentOS 7系统。

          1. 爱看动漫的小梁
            @Rat's

            请问,宝塔安装那四个环境,极速安装还是编译安装?

            1. Rat's
              @爱看动漫的小梁

              先极速,有问题就编译。

    2. Rat's
      @爱看动漫的小梁

      我晚上试试看吧。

  13. 爱看动漫的小梁

    安装报错啊
    root@ubuntu:/www/wwwroot/express-ffmpeg# npm install
    npm WARN deprecated crypto@1.0.1: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.
    npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade
    npm WARN deprecated constantinople@3.0.2: Please update to at least constantinople 3.1.1
    npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer
    npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue

    canvas@1.3.12 install /www/wwwroot/express-ffmpeg/node_modules/canvas
    node-gyp rebuild

    Package cairo was not found in the pkg-config search path.
    Perhaps you should add the directory containing `cairo.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'cairo' found
    gyp: Call to './util/has_lib.sh freetype' returned exit status 0 while in binding.gyp. while trying to load binding.gyp
    gyp ERR! configure error
    gyp ERR! stack Error: gyp failed with exit code: 1
    gyp ERR! stack at ChildProcess.onCpExit (/www/server/nvm/versions/node/v8.12.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:345:16)
    gyp ERR! stack at emitTwo (events.js:126:13)
    gyp ERR! stack at ChildProcess.emit (events.js:214:7)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
    gyp ERR! System Linux 4.15.0-29-generic
    gyp ERR! command "/www/server/nvm/versions/node/v8.12.0/bin/node" "/www/server/nvm/versions/node/v8.12.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
    gyp ERR! cwd /www/wwwroot/express-ffmpeg/node_modules/canvas
    gyp ERR! node -v v8.12.0
    gyp ERR! node-gyp -v v3.8.0
    gyp ERR! not ok

    sharp@0.20.8 install /www/wwwroot/express-ffmpeg/node_modules/sharp
    (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

    info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.6.1/libvips-8.6.1-linux-x64.tar.gz
    npm notice created a lockfile as package-lock.json. You should commit this file.
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: canvas@1.3.12 (node_modules/canvas):
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: canvas@1.3.12 install: node-gyp rebuild
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

    added 385 packages from 408 contributors in 123.028s
    root@ubuntu:/www/wwwroot/express-ffmpeg#

    是gyp开头的报错

    1. Rat's
      @爱看动漫的小梁

      有点像gcc问题,安装下开发者工具包看看,yum -y groupinstall "Development Tools",再有问题建议百度一下。

      1. 爱看动漫的小梁
        @Rat's

        我用的还是Ubuntu 64位系统,这个命令真的合适吗

        1. Rat's
          @爱看动漫的小梁

          忘了,我以为你会按照我的建议用CentOS 7。

  14. 爱看动漫的小梁

    版本貌似都更新了,这个教程还有效吗?我安装还是有几处提示错误的gyp ERR!

    1. Rat's
      @爱看动漫的小梁

      看了下源码,这个安装教程没啥问题,你可以去研究下官方文档https://ffmpeg.moejj.com/guide/install.html。

  15. 爱看动漫的小梁

    最新安装出新
    gyp ERR! stack at emitTwo (events.js:87:13)
    gyp ERR! stack at ChildProcess.emit (events.js:172:7)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
    gyp ERR! System Linux 4.15.0-29-generic
    gyp ERR! command "/usr/bin/nodejs" "/usr/bin/node-gyp" "rebuild"
    gyp ERR! cwd /www/wwwroot/express-ffmpeg/node_modules/canvas
    gyp ERR! node -v v4.2.6
    gyp ERR! node-gyp -v v3.0.3
    gyp ERR! not ok
    npm WARN install:canvas@1.3.12 canvas@1.3.12 install: node-gyp rebuild
    npm WARN install:canvas@1.3.12 Exit status 1

    sharp@0.20.8 install /www/wwwroot/express-ffmpeg/node_modules/sharp
    (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

    sh: node: 未找到命令
    /bin/sh: node: 未找到命令
    gyp: Call to 'node -e "console.log(require('./lib/libvips').pkgConfigPath())"' returned exit status 127 while in binding.gyp. while trying to load binding.gyp
    gyp ERR! configure error
    gyp ERR! stack Error: gyp failed with exit code: 1
    gyp ERR! stack at ChildProcess.onCpExit (/usr/share/node-gyp/lib/configure.js:354:16)
    gyp ERR! stack at emitTwo (events.js:87:13)
    gyp ERR! stack at ChildProcess.emit (events.js:172:7)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
    gyp ERR! System Linux 4.15.0-29-generic
    gyp ERR! command "/usr/bin/nodejs" "/usr/bin/node-gyp" "rebuild"
    gyp ERR! cwd /www/wwwroot/express-ffmpeg/node_modules/sharp
    gyp ERR! node -v v4.2.6
    gyp ERR! node-gyp -v v3.0.3
    gyp ERR! not ok
    npm ERR! Linux 4.15.0-29-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
    npm ERR! node v4.2.6
    npm ERR! npm v3.5.2
    npm ERR! code ELIFECYCLE

    npm ERR! sharp@0.20.8 install: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the sharp@0.20.8 install script '(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)'.
    npm ERR! Make sure you have the latest version of node.js and npm installed.
    npm ERR! If you do, this is most likely a problem with the sharp package,
    npm ERR! not with npm itself.
    npm ERR! Tell the author that this fails on your system:
    npm ERR! (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
    npm ERR! You can get information on how to open an issue for this project with:
    npm ERR! npm bugs sharp
    npm ERR! Or if that isn't available, you can get their info via:
    npm ERR! npm owner ls sharp
    npm ERR! There is likely additional logging output above.

    npm ERR! Please include the following file with any support request:
    npm ERR! /www/wwwroot/express-ffmpeg/npm-debug.log
    Ubuntu 64位系统

    1. Rat's
      @爱看动漫的小梁

      提示node命令未找到,你可以去面板管理那里卸载pm2,再重新安装,建议你使用CentOS系统。

  16. gscsds

    大佬,后台登录提示此页面不能正确地重定向

    1. Rat's
      @gscsds

      是打不开么?检查下域名设置什么的看看。

      1. gscsds
        @Rat's

        不是,是在admin/下输入正确的账号密码后就会无限重定向,直接ip访问也是这样

        1. Rat's
          @gscsds

          这个问题还没遇到过,你清空缓存看看?

          1. gscsds
            @Rat's

            清空过,火狐的隐私模式,和换浏览器都一样

            1. Rat's
              @gscsds

              这个就不是很清楚了。

              1. gscsds
                @Rat's

                后台登录页不能是admin,会无限跳转,终于知道了

                1. Rat's
                  @gscsds

                  是的,我也发现了,所以我下午改了下教程。

  17. 咔嚓

    请问这个错误实怎么回事啊
    Package cairo was not found in the pkg-config search path.
    Perhaps you should add the directory containing `cairo.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'cairo' found
    gyp: Call to './util/has_lib.sh freetype' returned exit status 0 while in binding.gyp. while trying to load binding.gyp
    gyp ERR! configure error
    gyp ERR! stack Error: gyp failed with exit code: 1
    gyp ERR! stack at ChildProcess.onCpExit (/www/server/nvm/versions/node/v8.12.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:345:16)
    gyp ERR! stack at emitTwo (events.js:126:13)
    gyp ERR! stack at ChildProcess.emit (events.js:214:7)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
    gyp ERR! System Linux 4.4.0-28-generic
    gyp ERR! command "/www/server/nvm/versions/node/v8.12.0/bin/node" "/www/server/nvm/versions/node/v8.12.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
    gyp ERR! cwd /root/express-ffmpeg/node_modules/canvas
    gyp ERR! node -v v8.12.0
    gyp ERR! node-gyp -v v3.8.0
    gyp ERR! not ok

    1. Rat's
      @咔嚓

      什么系统?CentOS的话可以yum install cairo cairo-devel -y,Debian可以试试apt-get install libcairo2-dev libjpeg-dev libgif-dev -y

  18. 海天

    博主 有没有文档、pdf和这个视频功能一整套的系统推荐啊

    1. Rat's
      @海天

      暂时没发现。

  19. 寒惜

    第三步那里 执行了npm install express -gd
    出现
    -bash: npm: command not found
    想问下博主这个怎么解决?百度谷歌了一圈还是没解决。。

    1. Rat's
      @寒惜

      面板安装PM2管理器后需要重新进入ssh才行。

  20. 墨池

    创建并编辑auth.js配置文件:
    ssh输入这个nano auth.js提示
    -bash: nano: command not found
    怎么办

    1. Rat's
      @墨池

      善用搜索,缺少nano命令,yum install nano -y。

  21. 墨池

    大佬 能出个视频教程就好了!

  22. sam

    gyp WARN install got an error, rolling back install
    gyp ERR! configure error
    gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
    gyp ERR! stack is related to network connectivity. In most cases you are behind a proxy or have bad
    gyp ERR! stack network settings.
    gyp ERR! stack at Request.<anonymous> (/www/server/nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/node-gyp/lib/install.js:193:21)
    gyp ERR! stack at emitOne (events.js:116:13)
    gyp ERR! stack at Request.emit (events.js:211:7)
    gyp ERR! stack at Request.onRequestError (/www/server/nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/request/request.js:878:8)
    gyp ERR! stack at emitOne (events.js:116:13)
    gyp ERR! stack at ClientRequest.emit (events.js:211:7)
    gyp ERR! stack at TLSSocket.socketErrorListener (_http_client.js:387:9)
    gyp ERR! stack at emitOne (events.js:116:13)
    gyp ERR! stack at TLSSocket.emit (events.js:211:7)
    gyp ERR! stack at emitErrorNT (internal/streams/destroy.js:64:8)
    gyp ERR! System Linux 3.10.0-862.3.2.el7.x86_64
    gyp ERR! command "/www/server/nvm/versions/node/v8.11.3/bin/node" "/www/server/nvm/versions/node/v8.11.3/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
    gyp ERR! cwd /root/express-ffmpeg/node_modules/canvas
    gyp ERR! node -v v8.11.3
    gyp ERR! node-gyp -v v3.6.2
    gyp ERR! not ok

    1. Rat's
      @sam

      试下这个命令:export ATOM_NODE_URL=http://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist。然后再安装。

  23. 仙侠

    全部按照步骤执行完,然后网站还是打不开,IP和反代地址都打不开

    1. Rat's
      @仙侠

      建议用CentOS7系统,然后照着教程一步步来,中途出现问题可以留言。

      1. 仙侠
        @Rat's

        就是centos7

        1. Rat's
          @仙侠

          如果所有操作没出现错误提示的话,你检查下数据库什么的在线不,还不行的话就没法了。

  24. 爱看动漫的小梁

    一直100

  25. 爱看动漫的小梁

    转码如何取消吧

    1. Rat's
      @爱看动漫的小梁

      这个自己可以研究下,我搭建好了,就测了下转码就没管了。

      1. 爱看动漫的小梁
        @Rat's

        这,怎么办,CPU100%了

        1. Rat's
          @爱看动漫的小梁

          转码的时候是100%,还是一直这样

  26. 爱看动漫的小梁

    怎么样的才能完美不影响

  27. 爱看动漫的小梁

    求推荐配置

    1. Rat's
      @爱看动漫的小梁

      这个我也说不清楚哪个好,应该是越贵越好。

  28. 爱看动漫的小梁

    重新启动系统,然后重新运行启动命令又是CPU100%,502 Bad Gateway

    1. Rat's
      @爱看动漫的小梁

      应该转码的时候吃配置,其它的你自己慢慢琢磨吧。

  29. 爱看动漫的小梁

    视频上传的大小是14.5兆

  30. 爱看动漫的小梁

    后台提示视频状态是:chunking

  31. 爱看动漫的小梁

    视频上传成功,但是访问视频连接就提示:502 Bad Gateway

  32. 爱看动漫的小梁

    Redis需要配置吗

    1. Rat's
      @爱看动漫的小梁

      不需要。

  33. 爱看动漫的小梁

    报错提示:502 Bad Gateway

    1. Rat's
      @爱看动漫的小梁

      我这两天有空重新安装一遍看看。

      1. 爱看动漫的小梁
        @Rat's

        嗯嗯,非常感谢,希望提详细点,例如:哪些文件是不能乱放的,指定要放哪个文件夹的!

        1. Rat's
          @爱看动漫的小梁

          刚用CentOS 7试了下,没啥问题,就是最新版的需要多装个Redis,直接在软件管理安装就可以了,你再重新试试吧。

          1. 爱看动漫的小梁
            @Rat's

            好吧

  34. 爱看动漫的小梁

    ubuntu-16.04表示这里:6、安装并运行云转码》》cd /root/express-ffmpeg!!
    这个提示了没有那个文件或目录

    1. Rat's
      @爱看动漫的小梁

      配置云转码那步做了吧?你看那个源码文件在哪个文件夹,就进入到哪个文件夹操作。

      1. 爱看动漫的小梁
        @Rat's

        了解

  35. 天城

    全程无错,web打不开!

    1. Rat's
      @天城

      能进去后台地址么?还去面板上检查下mongodb数据库是否是开启状态。

      1. 天城
        @Rat's

        不行啊!web打不开后台也一样链接失败!然后cpu百分百 我是独服!

        1. 爱看动漫的小梁
          @天城

          ubuntu-16.04.5系统搭建成功,可惜www.ayypd.com/admin提示502错误,我也是CPU百分百!

          1. Rat's
            @爱看动漫的小梁

            你什么配置,502看下nginx运行没。

            1. 爱看动漫的小梁
              @Rat's

              1G2H20GB,表示运行着的 服务器机器为虚拟机搭建

        2. Rat's
          @天城

          mongodb数据库是开启的么?或者你安装的时候有没有出现哪里报错?

          1. 天城
            @Rat's

            全程无错!数据库开启了

            1. Rat's
              @天城

              这个就不是很清楚了,毕竟看不到日志,不知道哪里有问题。

              1. 天城
                @Rat's

                现在搭建好了,请问下播放器右键信息在哪修改啊?全文搜索也没找到!

                1. Rat's
                  @天城

                  这个不是很清楚,一般我只是搭建好了,测试下基本功能就没管了。

  36. 爱看动漫的小梁

    博主,有没有群号?我想加群

    1. Rat's
      @爱看动漫的小梁

      不建群。

  37. 爱看动漫的小梁

    大神,第七步的反代添加网站怎么搞?你得说清楚添加哪个文件夹作为网站啊!

    1. Rat's
      @爱看动漫的小梁

      不需要添加文件夹,直接反代http://127.0.0.1:3000就可以了。

  38. kevin

    我用的是宝塔Centos来测试,测试不成功
    6、安装并运行云转码

    cd /root/express-ffmpeg
    npm install
    到这一步就报错了
    请博主支持,谢谢

  39. 惜情

    Centos宝塔测试失败 运行不起来

    1. Rat's
      @惜情

      你哪个步骤出现了问题?我就是用centos系统测试的。

      1. 爱看动漫的小梁
        @Rat's

        能否告诉我,你的centos是什么版本?测试成功的版本系统

        1. Rat's
          @爱看动漫的小梁

          我6/7都成功过,还有debian,不过是vultr的系统。

      2. 爱看动漫的小梁
        @Rat's

        6、安装并运行云转码的npm install表示出错,大概意思是命令不存在,已经继续用ubuntu -16.04.5系统再进行安装!

        1. Rat's
          @爱看动漫的小梁

          你得观察报错命令,然后再解决掉错误,然后再安装。

  40. lin

    博主很厉害,有群么,加个群好友么

    1. Rat's
      @lin

      萌咖群看到过你。

  41. KINO

    哇 真的好棒!

  42. 屈阿零

    很详细,很受用。

    1. 仙侠
      @屈阿零

      大佬

    2. 我是博主
      @屈阿零

      作者大佬,您能推荐一款低价杜甫吗?

    3. Rat's
      @屈阿零

      这不是作者么。

      1. 刘超
        @Rat's

        老大能录制个视频教程吗,给钱的,这样最好了

      2. 刘超
        @Rat's

        centos6.8x64安装完也是502,5555555

        1. Rat's
          @刘超

          502正常,装完后需要先去后台,把所有设置提交一次就好了。

          1. 刘超
            @Rat's

            主要后台地址也是502

            1. Rat's
              @刘超

              检查下nginx和数据库状态是否正常运行。

              1. 曾厝垵
                @Rat's

                我也是502报错 能方便留个QQ吗 高价请求帮助

                1. Rat's
                  @曾厝垵

                  扣扣用的少,加我微信吧,微信rats54。