Rat's

使用Docker快速安装express-ffmpeg云转码切片
说明:之前博主介绍过这个云转码和搭建教程,查看:云转码express-ffmpeg+CMS一体化系统安装教程,功能...
扫描右侧二维码阅读全文
02
2018/11

使用Docker快速安装express-ffmpeg云转码切片

说明:之前博主介绍过这个云转码和搭建教程,查看:云转码express-ffmpeg+CMS一体化系统安装教程,功能确实强大,不过还是有很多人搭建容易出点小问题,这里博主就整了个Docker镜像,适合小白使用。

更新

【2018.11.4】
修复了上传错误等问题。

安装

注意:该安装方法不适用于OVZ等类似结构。内存太小的话,建议加点SwapSwap添加脚本→传送门。目前云转码为最新版本,如果作者有修复Bug和添加功能,请提醒博主更新下镜像。

说明:镜像测试了一下,上传和转码均正常,记得安装后在后台对播放器、CMS、转码等都设置下,不然会出现很多未知错误。转码时记得耐心等待,每段时间刷新一下查看状态。

1、安装Docker

#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker.service

2、编辑配置文件

#创建配置config文件夹
mkdir -p /express-ffmpeg/config
#增加配置文件并编辑,然后将下面一整条复制到SSH客户端运行
cat > /express-ffmpeg/config/auth.js <<EOF
module.exports = {
    user: "admin",
    password: "admin",
    db: "ffmpeg",
    dbuser: "ffmpeg",
    dbpassword: "ffmpeg",
    secret: "yoursecret",
    login: "/adminlogin",
    loginmsg: "404 Not Found"
};
EOF

userpassword为后台登录账号和密码,下面的数据库别修改,接下来secretsession需要的秘钥,login是后台登陆地址(请勿改成admin),loginmsg是后台未登录显示的内容,默认是404

3、启动镜像

docker run --restart=always --privileged=true --name express-ffmpeg -d \
-p 3000:3000 \
-v /express-ffmpeg/mongodb:/data \
-v /express-ffmpeg/config:/express-ffmpeg/config \
-v /express-ffmpeg/movies:/express-ffmpeg/movies \
-v /express-ffmpeg/videos:/express-ffmpeg/public/videos \
-v /express-ffmpeg/uploads:/express-ffmpeg/public/uploads \
-v /express-ffmpeg/images:/express-ffmpeg/public/images \
moerats/express-ffmpeg

这时候基本上安装好了云转码,最后我们重启下镜像使配置生效:

docker restart express-ffmpeg

云转码访问地址是http://IP:3000。对于CentOS系统,还需要开启3000端口,开启如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload

如果要用域名访问,就需要反代了。如果突然访问不了了,大概是容器自动退出了,使用docker start express-ffmpeg重新启动容器。

相关目录

#数据库的目录
/express-ffmpeg/mongodb
#配置文件目录
/express-ffmpeg/config
#上传视频文件夹
/express-ffmpeg/movies
#放切片文件、上传封面和VTT字幕文件夹
/express-ffmpeg/videos
#上传文章图片的文件夹
/express-ffmpeg/uploads
#上传图集的文件夹
/express-ffmpeg/images

域名访问

反代可以用NginxApacheCaddy,这里只说宝塔和Caddy。如果你网站有宝塔,就可以使用宝塔进行反代,如果没有,建议使用第2种的Caddy反代,配置很快。

1、宝塔反代
先进入宝塔面板,然后点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:3000,再启用反向代理即可。至于启用SSL就不说了,直接在站点配置就可以启用。

2、Caddy反代
安装Caddy

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager

配置Caddy

#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!

#http访问,该配置不会自动签发SSL
echo "xx.com {
 gzip
 proxy / 127.0.0.1:3000 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
  }
}" > /usr/local/caddy/Caddyfile

#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "xx.com {
 gzip
 tls admin@moerats.com
 proxy / 127.0.0.1:3000 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
  }
}" > /usr/local/caddy/Caddyfile

tls参数会自动帮你签发ssl证书,如果你要使用自己的ssl,改为tls /root/xx.crt /root/xx.key即可。后面为ssl证书路径。

启动Caddy

/etc/init.d/caddy start

就可以打开域名进行访问了。

3、Nginx配置
如果你使用其它的,这里就大概发个Nginx反代配置,直接添加到配置文件即可。

#在配置文件里添加
location / {
     proxy_pass http://127.0.0.1:3000;
     proxy_redirect off;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

最后先去后台地址http://xx.com/adminlogin,进行相关设置。

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

发表评论

93 条评论

  1. 少爷

    装了几次 表示不成功,都是按现有的步骤直型命令 纯小白 不知是不是漏掉步骤

    1. Rat's
      @少爷

      大概操作问题。

  2. 想想

    trans&chunk 转码这种状态,是什么回事

    1. Rat's
      @想想

      等待或刷新。

      1. 想想
        @Rat's

        等了一天还是一样状态

        1. Rat's
          @想想

          你去前台看看有不有?如果还没有就不是很清楚了。

  3. jiajiechen

    不知道为什么上传很慢,我用bt面板里的上传到movie文件夹很快,正常转码和截图,就是播放不了,一直在转圈。

    1. jiajiechen
      @jiajiechen

      解决了,cms设置,站点网址要设置为http://127.0.0.0:3000,是这样的吗

      1. Rat's
        @jiajiechen

        设置ip:3000或者域名吧。

  4. 爱看动漫的小梁

    博主,来个QQ联系方式吧

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

      加微信吧,下楼有。

  5. 小学生

    博主能留个联系方式吗,想红包求一下手动搭建。不喜欢用镜像,不然下次还是不会。

    1. Rat's
      @小学生

      微信rats54,至于镜像的话,有时候挺方便的。

      1. 小学生
        @Rat's

        已经添加了,我是逐梦者

  6. kbrx93

    感谢这东西安装没问题,转码之类的就有点小坑,还有官方安装文档不同步,gitee 上一部分旧,一部分新。。

    1. 爱看动漫的小梁
      @kbrx93

      转码有点小坑是什么意思???

    2. Rat's
      @kbrx93

      对的,文档我也觉得不同步,不过都看下就会了。

  7. 爱看动漫的小梁

    请问CentOS7 64位可以吗

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

      基本上都可以。

  8. locer

    上传卡住了

    1. Rat's
      @locer

      上传看网速的

  9. ThinkVN

    waiting state encode video , tell me fix it.
    thanks

    1. Rat's
      @ThinkVN

      You just have to wait, the process is very slow, refresh every time to check it out.

      1. ThinkVN
        @Rat's

        my video 24Mb, and i wait 1 day, state still wating,
        does not seem to run

        1. Rat's
          @ThinkVN

          You check the transcoding settings, the number of screenshots cannot be 0, there are players and CMS settings, sometimes the transcoding status display is not completed, it is actually completed.

  10. 想想

    那个后台密码可以修改吗

    1. Rat's
      @想想

      可以的,等会我改下文章。

      1. 想想
        @Rat's

        好的,谢谢

        1. Rat's
          @想想

          教程已修改。

  11. 嘿嘿

    建议-v /express-ffmpeg/videos:/express-ffmpeg/public/videos 改成
    -v /express-ffmpeg:/express-ffmpeg

    然后可以通过 /express-ffmpeg/config/auth.js修改登录密码这些

    1. Rat's
      @嘿嘿

      意思是直接映射一个,就是整个目录?你可以试试行不行。

      1. 嘿嘿
        @Rat's

        恩恩 试了可以的 修改完了应该是要重启一下docker的

        博主可以试试Portainer这个管理docker 挺方便的 填好参数一键就可以了

        1. Rat's
          @嘿嘿

          我晚上改下教程,就按你说的来。Portainer我了解下先。

  12. slepoh

    为什么我按照步骤按照不成功?CentOS7.5版本

    1. Rat's
      @slepoh

      docker安装成功了?防火墙打开了没

      1. slepoh
        @Rat's

        安装过程有点慢,docker像是安装成功,用的宝塔

        1. Rat's
          @slepoh

          快慢与网络有关的。

          1. slepoh
            @Rat's
            该评论仅登录用户及评论双方可见
            1. slepoh
              @slepoh
              该评论仅登录用户及评论双方可见
              1. Rat's
                @slepoh

                这个是权限问题,建议你换个系统试试。

  13. 天城

    播放器右键的信息怎么修改啊?

    1. Rat's
      @天城

      不知道,没研究过使用。

      1. 天城
        @Rat's

        一点列队转码就502,头疼的软件

        1. Rat's
          @天城

          我也头疼,不会玩这个,还要各种设置,不然会出问题。

          1. 天城
            @Rat's

            转码会中断 我也是醉了

            1. Rat's
              @天城

              估计太耗资源跪了?

              1. 天城
                @Rat's

                20核心e5 256G内存啊 独立服务器

                1. 涵涵
                  @天城

                  妈的这么有钱的吗?

                  1. Rat's
                    @涵涵

                    别个是土豪,一大堆独服。

  14. 想想

    你好32ubuntn能安装吗

    1. 想想
      @想想

      好像不行,求解

      1. Rat's
        @想想

        理论上都行。

  15. 蜗居

    cms 里面的视频显示加载失败

  16. 蜗居

    刚才安装好,提示未启动cms 重启后,怎么弄

    1. Rat's
      @蜗居

      需要先去后台开启cms。

      1. 蜗居
        @Rat's

        我点电脑重启了,然后就进不去了

        1. Rat's
          @蜗居

          是电脑还是服务器?服务器的话试试docker start express-ffmpeg。

          1. 想想
            @Rat's

            32位能用

          2. 蜗居
            @Rat's

            可以了,为什么用一会儿就不行了,感觉那个服务器停止了

            1. Rat's
              @蜗居

              有没有加点虚拟内存?

  17. 天城

    分类 电影名 大小 状态 操作

    请选择分类
    02-spring项目搭建-导包&对象准备_.flv 67MB trans&chunk

    请选择分类
    01-spring介绍_.flv 59MB error & failed

    请选择分类
    04-spring项目搭建-注册对象到容器&测试_.flv 32MB error & failed

    请选择分类
    05-spring项目概念-IOC&DI_.flv 29MB error & failed

    请选择分类
    03-spring项目搭建-约束引入_.flv 21MB error & failed

    1. 天城
      @天城

      全部转码失败

      1. Rat's
        @天城

        我测试下,运行容器的命令加了2个参数,你重新启动下。

        1. 天城
          @Rat's

          问下 -v /express-ffmpeg/movies:/express-ffmpeg/movies 冒号左边是服务器文件 右边是docker吗?

          1. Rat's
            @天城

            是的,右边路径不能变,左边可以。

            1. 天城
              @Rat's

              转码水印知道在哪改吗?转码会中断 然后就不动了

  18. 想想

    装了,都没反应,地址都找不到

    1. Rat's
      @想想

      是不是你哪个步骤不对,重新来,清空镜像命令:
      docker kill $(docker ps -aq)
      docker rm $(docker ps -aq)
      docker rmi $(docker images -q)

  19. 天城

    大佬有QQ吗 我往影射的文件夹放文件docker就停了 Error response from daemon: Container c7f2d91181db64fa8e52c67c56767485f9c2cb22ba7fabcc846610a113adfe18 is not running

    1. Rat's
      @天城

      镜像先别用了,貌似有点问题。

      1. 天城
        @Rat's

        怎么删除之前的

        1. Rat's
          @天城

          清空所有镜像,包括正在运行的命令:
          docker kill $(docker ps -aq)
          docker rm $(docker ps -aq)
          docker rmi $(docker images -q)
          docker volume rm $(docker volume ls -q)

          1. 天城
            @Rat's

            [root@CentOS-75-64-minimal ~]# docker volume rm $(docker volume ls -q)
            "docker volume rm" requires at least 1 argument.
            See 'docker volume rm --help'.

            Usage: docker volume rm [OPTIONS] VOLUME [VOLUME...]

            Remove one or more volumes

            1. Rat's
              @天城

              没事,不用管这个。

              1. 天城
                @Rat's

                我修改了js文件docker也重启了 为啥不生效啊?

      2. 天城
        @Rat's

        修复了嘛

        1. Rat's
          @天城

          对的,你试试,有其他问题可以提出来。

          1. 天城
            @Rat's

            扫描入库用不了,影射文件夹已经放了文件

            1. Rat's
              @天城

              我没出现这个问题。

  20. 天城

    会了

  21. 天城

    水印无法上传!

    1. Rat's
      @天城

      问题解决了,再试试。

  22. 天城

    还是不会

    1. 天城
      @天城

      问题来了我能在影射文件夹前面加 /www 吗?

      1. Rat's
        @天城

        前面的文件夹路径随便你加。

  23. DouBi

    上传电影报错
    1.mp4

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"><title></title><link rel="stylesheet" href="/layui/css/layui.css"><link rel="stylesheet" href="/stylesheets/style.css"></head><body class="gray"><div class="layui-header header"><div class="layui-main">返回首页</div></div><div class="layui-container mt-20"><div class="layui-row layui-col-space20"><div class="layui-col-md12"><h1>ENOENT: no such file or directory, open 'movies/1.mp4'</h1><h2></h2><pre>Error: ENOENT: no such file or directory, open 'movies/1.mp4'</pre></div></div></div><div class="footer"> © 2018 云转码express-ffmpeg倾情奉献 by屈阿零</div><script src="/javascripts/jquery.min.js"></script><script src="/layui/layui.js"></script><script src="/javascripts/cms.js"></script></body></html>

    关键词:ENOENT: no such file or directory, open 'movies/1.mp4'

    1. Rat's
      @DouBi

      问题解决了,再试试。

  24. ThinkVN

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"><title></title>

    <script src="//local.adguard.com/adguard-ajax-api/injections/content-script.js?ts=63676831525490&amp;domain=54.191.105.103:3000&amp;mask=111" nonce="51f0d2fa8e7747ed8d62ce515f456a75" type="text/javascript"></script>
    <script src="//local.adguard.com/adguard-ajax-api/injections/userscripts.js?ts=63676742898665&name=AdGuard%20Popup%20Blocker&name=Adguard%20Assistant" nonce="51f0d2fa8e7747ed8d62ce515f456a75" type="text/javascript"></script>


    <link rel="stylesheet" href="/layui/css/layui.css"><link rel="stylesheet" href="/stylesheets/style.css"></head><body class="gray"><div class="layui-header header"><div class="layui-main">返回首页</div></div><div class="layui-container mt-20"><div class="layui-row layui-col-space20"><div class="layui-col-md12"><h1>ENOENT: no such file or directory, open 'movies/VinCity Ocean Park.mp4'</h1><h2></h2><pre>Error: ENOENT: no such file or directory, open 'movies/VinCity Ocean Park.mp4'</pre></div></div></div><div class="footer"> © 2018 云转码express-ffmpeg倾情奉献 by屈阿零</div><script src="/javascripts/jquery.min.js"></script><script src="/layui/layui.js"></script><script src="/javascripts/cms.js"></script></body></html>

    1. Rat's
      @ThinkVN

      问题解决了,再试试。

  25. Lambert

    现在搬瓦工服务还稳定吗,得不得被墙?

    1. Rat's
      @Lambert

      比较稳定,后面是什么意思?

      1. Lambert
        @Rat's

        会不会被墙的意思哈~~~

        1. Rat's
          @Lambert

          看你咋用了,如果用来爬Q,那几率就大了。