Rat's

使用Docker搭建DPlayer视频弹幕接口API后端
说明:之前有同学要求博主出个DPlayer弹幕后端搭建教程,刚好本博客的Handsome主题更新并完美适配了Dpl...
扫描右侧二维码阅读全文
03
2019/01

使用Docker搭建DPlayer视频弹幕接口API后端

说明:之前有同学要求博主出个DPlayer弹幕后端搭建教程,刚好本博客的Handsome主题更新并完美适配了Dplayer,然后就研究了下,发现了点小问题,如作者提供的弹幕API加载不出弹幕,而且Typecho当中的Dplayer插件有点旧无法对接V3后端,不知道其它程序插件是不是这样,这里博主只能使用HTML代码直接输出调用,经测试已完全正常加载弹幕和观看。这里就说下搭建及使用方法。

简介

DPlayer是一个支持弹幕的HTML5视频播放器。支持Bilibili视频和danmaku,支持HLSFLVMPEG DASHWebTorrent以及其他视频格式,支持截屏、热键、切换清晰度以及字幕等。

安装

作者提供的弹幕后端搭建方法挺多的,这里选择一个搭建最快,版本最新的一种。

Github地址:https://github.com/MoePlayer/DPlayer-node

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

2、安装Docker Compose

curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

3、运行镜像
安装git

#Debian、Ubuntu系统
apt install git -y

#CentOS系统
yum install -y git

再使用命令:

#拉取源码
git clone https://github.com/MoePlayer/DPlayer-node.git
cd DPlayer-node
#新建镜像
docker-compose build
#拉取其它镜像并后台运行
docker-compose up -d

此时api地址为http://ip:1207,数据和日志存放在/root/dplayer文件夹。

当然如果你想其它端口,或者修改存放文件夹路径,那你在上面的新建镜像之前,作出如下操作:

#编辑DPlayer-node文件夹的docker-compose.yml文件,部分修改如下
mongo:
  volumes:
      - ~/dplayer/db:/data/db  #数据库存放文件夹,~/dplayer/db为映射在外部的路径,自行修改,
web:
  ports:
    - 1207:1207  #api映射到外部的端口,将前面的1207修改成你想要的即可
  volumes:
    - ~/dplayer/logs:/usr/src/app/logs  #同数据库操作
    - ~/dplayer/pm2logs:/root/.pm2/logs  #同上

改完后再新建镜像即可,如果你已经新建镜像了,但想改,那就清空之前的镜像再修改,方法参考→传送门

域名反代

如果你的博客已经开启了https访问,那api也需要https地址,所以只使用ip:端口是不行的,这里就需要使用域名反代了。博主喜欢Caddy,所以这里说下宝塔和Caddy反代,其它一键环境的建议看官方文档或自行搜索。

如果你服务器没有安装Nginx/Apache的,可以用下Caddy,很方便很快,记得提前将域名解析到服务器。

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

2、Caddy反代
安装Caddy

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

配置Caddy

#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!
echo "xx.com {
 tls admin@moerats.com
 proxy / http://127.0.0.1:1207
}" > /usr/local/caddy/Caddyfile

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

启动Caddy

/etc/init.d/caddy start

反代好了后,你的API地址就为https://xx.com

使用

作者提供了很多插件,这里列举一点:

Typecho:https://github.com/volio/DPlayer-for-typecho
Hexo:https://github.com/NextMoe/hexo-tag-dplayer
Z-Blog:https://github.com/fghrsh/DPlayer_for_Z-BlogPHP
Discuz!:https://coding.net/u/Click_04/p/video/git
WordPress:https://github.com/BlueCocoa/DPlayer-WordPress

不过Typecho插件暂时用不了,其它程序暂时不清楚,所以这里提供一个播放器的HTML代码,代码如下:

<link href="https://www.moerats.com/usr/dplayer/DPlayer.min.css" rel="stylesheet">
<div id="dplayer"></div>
<script src="https://www.moerats.com/usr/dplayer/DPlayer.min.js"></script>
<script src="https://cdnjs.loli.net/ajax/libs/blueimp-md5/2.10.0/js/md5.min.js"></script>
<script>
var url="https://www.moerats.com/xx.mp4";    //这里填写视频地址
var id=md5(url);
const dp = new DPlayer({
    container: document.getElementById('dplayer'),
    video: {
        url: url
  },
  danmaku: {
        id: id,
        api: 'https://dplayer.moerats.com/'    //这里填写弹幕地址
    }
});
</script>

直接将代码贴进文章里即可,如果在Typecho开发版中使用不正常的话,可能还需要用两排!!!将代码上下围住使其强制输出,比如:

#特殊原因,不得已才加上o,使用的时候记得去掉
o!!!
代码
o!!!

还有更多功能及使用方法可以查看→传送门

演示

博主知道有人懒搭建的,所以这里提供个弹幕API地址:https://dplayer.moerats.com/。

好了,可以在视频里发彩色弹幕了,如果该视频播放器不显示的话,刷新一下就行了。

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2019 年 06 月 29 日 11 : 12 AM

发表评论

191 条评论

  1. 橱窗外的小孩

    你好,想问下DPlayer弹幕接口的数据格式是怎么样的?

  2. 小白小白的

    Metadata cache created.

    '[' -n '' ']'sh -c 'yum install -y -q docker-ce'
    Error:

    Problem: package docker-ce-3:19.03.12-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed

    cannot install the best candidate for the jobpackage containerd.io-1.2.10-3.2.el7.x86_64 is filtered out by modular filteringpackage containerd.io-1.2.13-3.1.el7.x86_64 is filtered out by modular filteringpackage containerd.io-1.2.13-3.2.el7.x86_64 is filtered out by modular filteringpackage containerd.io-1.2.2-3.3.el7.x86_64 is filtered out by modular filteringpackage containerd.io-1.2.2-3.el7.x86_64 is filtered out by modular filteringpackage containerd.io-1.2.4-3.1.el7.x86_64 is filtered out by modular filteringpackage containerd.io-1.2.5-3.1.el7.x86_64 is filtered out by modular filteringpackage containerd.io-1.2.6-3.3.el7.x86_64 is filtered out by modular filtering
    [root@i]# systemctl start docker

    Failed to start docker.service: Unit docker.service not found.
    [root@]# systemctl enable docker
    Failed to enable unit: Unit file docker.service does not exist.

    楼主弹幕不能用了,这是是不是环境搭建问题 要如何解决,教一教

    1. Rat's
      @小白小白的

      我弹幕挂了,没管了,这好像是docker安装失败了,你用的centos 8系统?

  3. wallis

    萌新求教 反向代理的域名必须要有ssl证书吗?我用宝塔反向代理,前端连接一直说弹幕读取失败,反应是network error

    1. Rat's
      @wallis

      可以不用https,这个先看弹幕搭建正常不,然后看控制台分析问题

  4. yitzu

    你发的这些代码放在哪里呢?服务器怎么放代码?

    1. Rat's
      @yitzu

      哪个地方的代码?

  5. 求微信,dplayer-node后端配置出问题了,前端一直连接不上,求解决...

    1. Rat's
      @光

      啥问题

      1. @Rat's

        我本地mongo里是没有任务数据的,是不是因为没有对应的数据才会报错,但是报404应该是地址写错了吧

      2. @Rat's

        服务器上按照你的方法安装了DPlayer-node,docer-compose.yml文件中mongo那里显示的是ports:127.0.0.1:1207:1207
        并且设置了跨域 。nginx上配置的是:
        location /mongo/ {

        proxy_pass http://127.0.0.1:1207/; add_header Access-Control-Allow-Origin *; }

        然后在前段弹幕api那里写上了api:"http://服务器地址/mongo/"【mongo是我设置的nginx跨域标识】
        我前端用的是vue-dplayer播放器,最后访问弹幕地址的时候它就报这个错误:
        GET http://服务器地址/mongo/v2/?id=4157142 404 (Not Found)
        这里的v2是好像是它自己加上去的
        然后就不晓得怎么解决这个问题

  6. Summer

    大佬,可以出一期视频吗,小白表示看不懂啊啊啊啊

    1. Rat's
      @Summer

      懒的搞视频

  7. 博主 弹幕接口好像无法使用了!

    1. Rat's
      @磊

      弹幕服务器到期了,数据备份了,还没恢复而已

  8. 叶子

    重新换其他域名搭建了一下 全是遇到跨域问题= =

    1. Rat's
      @叶子

      caddy提示的还是nginx?这个解决不难

      1. 叶子
        @Rat's

        浏览器报错提示的这个 要怎么解决呢,弹幕库自带的那个跨域没效果。。。
        Access to XMLHttpRequest at 'xxxx' from origin 'xxxx' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

        1. Rat's
          @叶子

          这个我知道,只是问你是caddy还是nginx,nginx在反代配置里添加这么一行代码:
          add_header Access-Control-Allow-Origin *;
          如果是caddy的话,就在配置文件里添加这个代码:
          header / {
          Access-Control-Allow-Origin *
          Access-Control-Allow-Methods "GET, POST, OPTIONS"
          -Server
          }

          1. 叶子
            @Rat's

            我nginx的 用了你这个还是没效果

            1. Rat's
              @叶子

              估计你放的位置的不对,你还是百度下nginx反代跨域问题

            2. Rat's
              @叶子

              估计你放的位置的不对,你还是百度下nginx反代跨域问题

  9. 叶子

    出现跨域问题要怎么解决呢

  10. He

    还有我自己也安装了,然后控制台显示DPlayer start! Cheers!,error.log也没有信息,但是用http://ip:1207依然加载弹幕失败

    1. Rat's
      @He

      看是不是需要使用https。

      1. He
        @Rat's

        https也试过了,域名加端口也试过了。如果在浏览器上访问会提示not found,这应该说明可以连接吧,但是dplayer里用ip加端口作为弹幕api秒失败。。。

  11. He

    请问为什么放您的视频就正常,换别的url弹幕发出去刷新就没了?谢谢

  12. NickXu

    貌似发不了弹幕呢。你的api,我今天试了一下。

    1. Rat's
      @NickXu

      我试了下,好像没啥问题

  13. 小白

    请问,这个弹幕怎么备份呢?如果换机器的话,不是需要把弹幕搬过去吗?谢谢大佬

    1. Rat's
      @小白

      只需要备份数据文件就行了

      1. 小白
        @Rat's

        谢谢大佬,我就是不清楚哪个是数据,是DB目录里面的wt文件吗?

        1. Rat's
          @小白

          你看docker文件,直接整个~/dplayer/db就可以了

          1. 小白
            @Rat's

            好的,谢谢大佬

  14. TuGe7025

    大佬,为什么弹幕读取不出来呢?接口已经请求到返回的字段了,可就是显示不到页面上呀。。。

    1. TuGe7025
      @TuGe7025

      返回出来的格式大概是这样的
      {

      "code": 0, "data": [ [149.92993, "top", "#e54256", "DIYgod", "测试1"], [0, "right", "#fff", "DIYgod", "测试2"], [8.726006, "right", "#fff", "DIYgod", "测试3333"] ]

      }
      就是显示不了视频里,也没有报什么错误

      1. Rat's
        @TuGe7025

        这个弹幕地址看起来好像没啥毛病,显示不出的话,看是不是配置啥问题

  15. 石头门

    请问大佬 是一个api只能对应一个视频吗?有多个视频,不想公用同一个弹幕文件,如何搭建后端api呢?

    1. Rat's
      @石头门

      api可以用无数个视频,会自动识别,api搭建看这个教程就行了

    2. 石头门
      @石头门

      还是后端已经进行了处理,把url的md5值 与 弹幕数据文件生成了映射关系?,不是很懂欸,求大佬指点

  16. 请教问题

    大佬,膜拜,有点问题请教下留个QQ我加你

  17. kank ba

    有没有办法过滤一些屏蔽词,

  18. 蜀韵文学网

    博主,这个弹幕怎么无限循环显示啊!

    1. Sinliz
      @蜀韵文学网

      弹幕无限循环. 那你视频循环播放? 不然弹幕是按照视频时间节点来触发的呀。

  19. Sinliz

    我自己按照你的文档也搭建了一个弹幕库,现在我有一个很严重的问题需要请教。
    docker搭建的弹幕库里,本有/v3的接口可以上传弹幕。这个接口对外是暴露的,那么,怎么防止别人恶意发布敏感信息呢?

    我现在的情况是,我更改了播放器里的弹幕发送地址,后台使用第三方敏感信息过滤进行了过滤,然后再通过http发到docker所在的服务器的弹幕库里。

    但是/v3那个接口虽然一般人看不到,但是懂技术的一看就看到了。怎么办呢?不知道博主对这个是否有过研究。如果有,希望能给点经验。谢谢你。

    1. Sinliz
      @Sinliz

      没有时间去研究它原本的代码能否更改了,直接使用nginx进行代理,然后不让其他IP访问来解决了..

  20. 周某人

    搭建后接口怎么调用呀,我/?url=解析失败

    1. Rat's
      @周某人

      放到播放器里,可以看下dplayer官方文档,http://dplayer.js.org/guide.html#danmaku-api

      1. 小张
        @Rat's

  21. 一公分的

    今天的弹幕好像发不出去呢

    1. Rat's
      @一公分的

      现在应该可以了

      1. 一公分的
        @Rat's
        该评论仅登录用户及评论双方可见
        1. Rat's
          @一公分的

          这个应该姿势不对,自己搭建的话,数据都在自己的服务器上,看你引用的地址对不对

  22. set

    大佬 我安照你的步骤搭建的,前几天用的好好的,这几天突然用不了了,我用Chrome看了下,他告诉我Failed to load resource: the server responded with a status of 404 () 但我用浏览器访问我的api是没问题的

    1. Rat's
      @set

      看错误,好像是加载某资源失败,具体你检查下。

      1. set
        @Rat's

        他说是api.js的问题,错误在39行

  23. 文哥

    你的API没有用了

    1. Rat's
      @文哥

      不会吧,我这里的视频还是有弹幕的。

      1. 文哥
        @Rat's

        是真的用不了了

        1. Rat's
          @文哥

          今天确实用不了,ssl证书过期了,刚续期了,可以用了

  24. 冬马的白色相簿

    谢谢大佬的api,我知道使用方法了

  25. Jdeal

    博主大大,我只知道APlayer的PJAX回调函数是loadMeting(); ,想问下DPlayer的PJAX回调函数是啥额,加到网站上有报错,关闭PJAX就不报错了。

    1. Rat's
      @Jdeal

      这个其实我也不是很清楚。

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

      这个不太清楚,你用的插件还是代码?

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

          自建的api还是用我这个?延迟应该与服务器有关。

          1. Little
            @Rat's

            不不不用你的和我的是一样的 必须刷新2次

            1. Little
              @Little
              该评论仅登录用户及评论双方可见
  27. 名字好烦

    大佬,改怎么把B站的弹幕放进自己的池子,外挂bilibili弹幕

    1. Rat's
      @名字好烦

      可以看下官方文档,具体地址:http://dplayer.js.org/zh/guide.html#bilibili-%E5%BC%B9%E5%B9%95

      1. 名字好烦
        @Rat's

        那个指南里面外挂bilibili弹幕API挂掉了,怎么搭建这个拉b站的弹幕的API怎么实现貌似没有教程,普通的弹幕用的博主大佬的API

        1. Rat's
          @名字好烦

          弹幕api就是这篇文章方法搭建的

  28. Jdeal

    服务器小白表示看不懂咋安装额,用的宝塔,能否求教下宝塔如何搭建这个API额,目前使用的博主大大的API调用

    1. Rat's
      @Jdeal

      直接在宝塔操作,把caddy反代换成nginx反代就可以了,或者直接用我的api,屹立不倒。

  29. admina

    搭建好麻烦啊,我直接用php+mysql写个后端,很简单啊

    1. 路人甲
      @admina

      可以出售的话联系qq10077847

    2. 路人甲
      @admina

      写的后端怎么样,好用吗,好用的话给我份吧,有偿收购一份用,这个真看不懂

    3. Rat's
      @admina

      docker不麻烦啊,也就是看起来麻烦而已

      1. 唐伯虎點鼠标
        @Rat's

        docker-compose 下载好慢啊,有什么办法解决!!!!

        1. Rat's
          @唐伯虎點鼠标

          国内机器吗?换个docker源看看

          1. 唐伯虎點鼠标
            @Rat's

            是啊,国内机,有没有好的docker源呢,或者出个国内安装的教程。

            1. Rat's
              @唐伯虎點鼠标

              看这个教程:https://blog.csdn.net/jixuju/article/details/80158493

              1. 唐伯虎點鼠标
                @Rat's

                搭建好了,重启后也能自动运行了(使用了docker update --restart=always <CONTAINER ID>)。但是重启后日志有报错如下:
                {"errno":"ECONNREFUSED","code":"ECONNREFUSED","syscall":"connect","address":"172.18.0.2","port":6379,"level":"error","message":"Redis error: "}
                {"errno":"ENOTFOUND","code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"redis","host":"redis","port":6379,"level":"error","message":"Redis error: "}
                {"errno":"ENOTFOUND","code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"redis","host":"redis","port":6379,"level":"error","message":"Redis error: "}
                {"errno":"ENOTFOUND","code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"redis","host":"redis","port":6379,"level":"error","message":"Redis error: "}
                {"errno":"ENOTFOUND","code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"redis","host":"redis","port":6379,"level":"error","message":"Redis error: "}
                {"errno":"ENOTFOUND","code":"ENOTFOUND","syscall":"getaddrinfo","hostname":"redis","host":"redis","port":6379,"level":"error","message":"Redis error: "}

              2. 唐伯虎點鼠标
                @Rat's

                好像已经搭建成功了,但是重启服务器之后好像不会自动运行,应该怎么设置呢?

              3. 唐伯虎點鼠标
                @Rat's

                我是安装Docker Compose的时候卡住,换源有用吗?

  30. 79

    博主,弹幕api的ssl过期啦,麻烦续一下

    1. Rat's
      @79

      已续。

      1. 79
        @Rat's

        博主,给dplayer写了个WordPress插件,弹幕api用的是你的,没事吧?
        https://github.com/GreatSatan79/Selection

        1. Rat's
          @79

          厉害,没事,这个api会长期存在。

  31. 名字好烦

    大佬实在是太牛批了

  32. mqb

    老哥 我用caddy 反带成功后 还是不能用我的域名访问 但我用 ip:1207的方式是可以访问的

    1. Rat's
      @mqb

      看下caddy启动日志,命令:tail -f /tmp/caddy.log

      1. mqb
        @Rat's

        我查了下发现它要我用域名加2015 访问 我怎么才能改成443 端口

        1. Rat's
          @mqb

          参考这个文章,在中间加tls一行代码就行了,https://www.moerats.com/archives/945/

  33. 骚里骚气

    博主 你提供的接口GG了

    1. Rat's
      @骚里骚气

      我的锅,装了个redis,端口冲突,现在解决了

  34. 啦啦啦

    谢谢大佬解决了

  35. 啦啦啦

    在script中
    console.log(" %c 该项目基于Dplayer.js",'color:red')

    var dp = new DPlayer({ element: document.getElementById('player1'), video: { url: 'css/jb.MP4', pic: 'css/bqb5.jpg' }, danmaku: { id: 'demo', api: 'https://dplayer.moerats.com/', addition: ['https://api.prprpr.me/dplayer/bilibili?aid=15572523'] } });

    不是这个吗?大佬

  36. 啦啦啦

    不会用啊大佬,用了你的api借口但是说连接不成功 404

    1. Rat's
      @啦啦啦

      不会吧,你姿势不对,好多人用的这个api

  37. 啦啦啦

    博主这个弹幕能连接数据库吗

    1. Rat's
      @啦啦啦

      这个弹幕连接的Mongodb,docker会自动连接。

  38. sft

    使用docker-compose up -d时提示我ERROR: for dplayernode_mongo_1 Cannot start service mongo: Bind mount failed: '/root/dplayer/db' does not exists

    1. Rat's
      @sft

      创建个文件夹再试试mkdir -p /root/dplayer/db

      1. sft
        @Rat's

        Starting dplayernode_web_1 ... done 但是在dplayer中还是显示加载弹幕失败 顺便问一下1207端口是https的端口吗

        1. Rat's
          @sft

          不是,web端口,只是需要用到https,所以才反代

          1. sft
            @Rat's

            我现在可以用了 谢谢

  39. 乜水

    博主,请问token应该怎么填(在DPlayer for WordPress中,要求填写的除了Danmaku URL,还有Danmaku Token)。

    1. Rat's
      @乜水

      没用过wp,一般只要api地址就可以了

  40. 名字好烦

    大佬,弹幕API炸了

    1. Rat's
      @名字好烦

      没事,如果炸了,每到凌晨都会重启一次恢复。

  41. Cloud

    我发送弹幕,但是刷新之后,视频里没有刚才发的弹幕

    1. Rat's
      @Cloud

      f12,发送的时候,查看下控制台,一般是你的设置不对

      1. Cloud
        @Rat's

        能在windows本地搭建弹幕接口么-。-我想自己搭一个

        1. Rat's
          @Cloud

          应该可以,能安装docker就行

          1. Cloud
            @Rat's

            大佬,你的Dplayer视频,发完弹幕,现在也不显示发过的弹幕,是不是接口出问题了

            1. Rat's
              @Cloud

              我刚试了下没问题,至于你觉得有没有问题,可以在这篇文章的视频里发个弹幕看看。

              1. Cloud
                @Rat's

                我就是在这篇文章视频发的,大佬你试试在这篇文章用特殊颜色发一条,发完之后,刷新一下页面,然后就找不到刚才发的那条了,刷新页面就没有了-。-

                1. Rat's
                  @Cloud

                  应该是我设置了缓存,你再试试。

                  1. weiba
                    @Rat's

                    请问 这个缓存时间是否可以去掉,想实时刷新那种

                    1. Rat's
                      @weiba

                      缓存我好像去掉了

                      1. weiba
                        @Rat's

                        您的api 缓存应该是存在的,发完弹幕,需要手动刷新缓存,才能显示弹幕,按您的教程我建完服务器,也是这种情况

                        1. weiba
                          @weiba

                          我不知道在哪里可以设置 去掉缓存。

                          1. weiba
                            @weiba

                            nginx中把js一类的缓存改成-1 可以实现 感谢博主提供方法与讨论平台

  42. Alone88

    docker 国内镜像:https://get.daocloud.io/

  43. 无聊

    Step 1/1 : ARG NODE_ENV
    ERROR: Service 'web' failed to build: error creating overlay mount to /www/server/docker/overlay2/cd8683746fb718d120e0e56cfd1d2ec157db29421a92ced85c40992b695989a0-init/merged: invalid argument

  44. 蛋疼

    表示很蛋疼的说。。安装后,重启服务器,,链接不上网络了

    1. Rat's
      @蛋疼

      一般这种操作是不会重启后,连不上服务器,除非你ssh端口被阻断啥的

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

        是安装完毕,自己重启服务器,然后服务器网络就不正常了。。。

        1. Rat's
          @蛋疼

          这种情况没遇到过。

          1. 蛋疼
            @Rat's

            能否帮我看下。我文件是不是丢失了。。感觉好像硬盘文件都丢了。。我去

  45. lala

    博主真给力

  46. lala

    我是说我docker compose怎么用不了,原来是没有安装

  47. gakki酱

    弹幕接口,not found了,呜呜呜~~~

    1. Rat's
      @gakki酱

      我提供的?接口404不是很正常吗,加点东西就有显示了

      1. gakki酱
        @Rat's

        大佬,怎么用呀?小白不太懂~~~

        1. Rat's
          @gakki酱

          这篇文章我只说了个基础,更多的用法可以看下官方文档,http://dplayer.js.org/#/zh-Hans/

          1. gakki酱
            @Rat's

            大佬,弹幕接口出现Access-Control-Allow-Origin,这是什么原因?

            1. Rat's
              @gakki酱

              这是防跨域的问题,用一个二级域名反代下看看

              1. gakki酱
                @Rat's

                我发现,博主的也是这个问题,以为没有问题,哈哈

                1. Rat's
                  @gakki酱

                  刚我的弹幕挂了,现在好了

  48. 蜀韵文学

    安装了打开宝塔文件管理都没有看见DPlaye这个文件夹!

    1. Rat's
      @蜀韵文学

      问题说具体点,你是说的DPlayer-node? 给个命令你查找,find / -name DPlayer-node

  49. dan

    安装出错了

    1. Rat's
      @dan

      把你的截图删了,太大了,那种不是报错,是警告,正常现象

  50. 长远

    宝塔有安装教程没 老哥

    1. Rat's
      @长远

      这个可以用宝塔的

  51. coder-xsy

    博主,我通过开发者工具看你这个视频中的请求https://dplayer.moerats.com/v3/?id=183f6653124c13ca6b924d021c233f52
    上面这个链接应该就是你视频播放的时候的请求的视频所包含的字幕,响应的数据中包含了该视频包含的所有的弹幕,但是那个数据还有其他的内容我不太明白,这是其中一个弹幕对应的数据:[1.085544, 0, 16777215, "DIYgod", "测试一下。"]这个数据中的第2、3个数据不太明白是什么意思,还请指教一下

    1. Rat's
      @coder-xsy

      其实我也不是很清楚,只知道DIYgod是作者的id

  52. cialis canadian pharmacy

    You mentioned that wonderfully!

  53. zengrong

    发送失败是因为我重启了服务器,重启服务器是不是就要再次拉取镜像再运行一次???

    1. Rat's
      @zengrong

      按照原文件启动参数来说,是这样的,重启就需要重新运行一下docker-compose up -d

      1. zengrong
        @Rat's

        你好,我又来了,我发现在IE下,一直显示“弹幕加载中” 这个有办法解决吗?

        1. Rat's
          @zengrong

          别用ie。

      2. zengrong
        @Rat's

        好的,谢谢了。

  54. zengrong

    还有一个问题,就是手机端提示发送失败。但是视频上又显示。但是刷新自己看不到。

  55. zengrong

    请问这个弹幕滚动速度有办法吗?感觉滚动好快啊,能稍微慢一点点吗?怎么改?

    1. Rat's
      @zengrong

      速度貌似改不了,和播放同步的吧

      1. zengrong
        @Rat's

        请问这个是不是服务器重启后,就要重新拉取镜像再运行一次??

        1. Rat's
          @zengrong

          是的。

  56. zengrong

    dplayernode_mongo_1 is up-to-date
    Starting dplayernode_redis_1 ...
    Starting dplayernode_redis_1 ... error

    ERROR: for dplayernode_redis_1 Cannot start service redis: driver failed programming external connectivity on endpoint dplayernode_redis_1 (8c334d98d1ef338eb97dd04779c366040ad6d5d6b5f39865b630ad0806020298): Error starting userland proxy: listen tcp 0.0.0.0:6379: bind: address already in use

    ERROR: for redis Cannot start service redis: driver failed programming external connectivity on endpoint dplayernode_redis_1 (8c334d98d1ef338eb97dd04779c366040ad6d5d6b5f39865b630ad0806020298): Errorstarting userland proxy: listen tcp 0.0.0.0:6379: bind: address already in use
    ERROR: Encountered errors while bringing up the project.
    请问在docker-compose up -d的时候 提示这个 是怎么回事???

    1. zengrong
      @zengrong

      你好,已经解决了。停止redis 就可以了。

  57. Groad

    大佬,请问弹幕id是怎么生成的,我根据你的教程搭建出来的接口,打开就报这个错误GET http://apidp.purvavideha.cn/?id=183f6653124c13ca6b924d021c233f52 502 (Bad Gateway)
    以及这个错误:Access to XMLHttpRequest at 'http://apidp.purvavideha.cn/?id=183f6653124c13ca6b924d021c233f52' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    1. Rat's
      @Groad

      你用的插件?弹幕api设置和我文章给的一样就行,调用的v3,你给的连接都没v3

      1. Groad
        @Rat's

        没有 也是html的页面,弹幕api是用的你的博客中的教程搭建的 在写的时候 需要在api连接中加上v3吗

        1. Rat's
          @Groad

          这个不需要,后端自动帮你加,不过拉取b站弹幕的时候就需要手动加v3了,你可以f12看看哪里有问题。

  58. Funle

    老哥弹幕接口出了点问题.

    1. Rat's
      @Funle

      欧克,已经修好了。

  59. ErnestH

    请教,安装都没问题,但打开播放器的时候加载弹幕失败,请问一般是什么问题,如何解决?

    1. Rat's
      @ErnestH

      这个情况很多,你启动的时候使用docker-compose up,可以看链接日志

  60. u725b

    大佬请问下这是啥问题,前几天装好都好好的。
    DPlayer-node 发生了一些意外:
    ReplyError: NOAUTH Authentication required.

    at parseError (/usr/src/app/node_modules/redis-parser/lib/parser.js:193:12) at parseType (/usr/src/app/node_modules/redis-parser/lib/parser.js:303:14)
    1. Rat's
      @u725b

      初步看了下,你先去DPlayer-node文件夹,使用docker-compose stop停掉容器,然后再使用docker-compose up -d启动容器,应该就好了。

    2. Rat's
      @u725b

      应该是redis认证出了问题,我先看下。

  61. andy

    我搭建了但是他不会保存弹幕啊。。。。

    1. Rat's
      @andy

      打开播放器的时候加载弹幕是失败还是?

      1. lapland
        @Rat's

        成功了 哈哈哈 CTRL+F5 并且把<script src="/source/plugin/bingofans_video/template/dplayer/DPlayer.min.js" charset="UTF-8"></script>加了个charset="UTF-8"完美搞定

      2. lapland
        @Rat's

        发了几百个弹幕,成功了几个。。。。好尴尬

      3. lapland
        @Rat's

        大佬问问,因为服务器上本来有redis,所以我给他改了个IP 127.0.0.2:6379,连接也是成功的,docker里面显示启动成功。域名打开后和你的一样显示Not Found,放到HTML中,视频能正常打开,弹幕也能正常发送(进去提示加载弹幕,一秒左右消失,也没提示加载失败之类的,弹幕发送也没提示发送失败,而且正常在上面滚动,但是刷新视频后,弹幕消失,未保存到服务器),查看日志大部分显示{"message":"/v3/, user IP: 182.139.28.104","level":"info"}或者{"message":"/, user IP: 182.139.28.104","level":"info"},没有错误日志。我也尝试过卸载原来的redis,使用127.0.0.1:6379,但是依然那样,麻烦给指导指导大佬。具体效果可以看看https://www.bingoufan.com/1.html,呜呜呜

  62. momc

    我的弹幕放在顶部或者底部 会偏移到画面外 是为何~~

    1. Rat's
      @momc

      这个貌似是播放器的问题,具体我也不清楚,好像在手机端竖频下会出现这情况。

      1. momc
        @Rat's

        我看了下 是我改播放器页面的时候 出了点问题 。
        手机端微信百度浏览器之类 会把播放器替换 弹幕就不存在了

        1. Rat's
          @momc

          用谷歌浏览器吧。有的浏览器会变。

  63. usbport

    划水这个弹幕功能有脏话或者广告那些怎么管理。。。

    1. usbport
      @usbport

      那个东西会过滤吗。。我用官方的那个接口就不得行

      1. Rat's
        @usbport

        这个问题还没考虑到,得研究下。

  64. Smart

    博主,发现你老喜欢用这个视频

    1. Rat's
      @Smart

      是的,歌好听人也美,又没多的视频,所以一直就这个。

  65. u725b

    谢谢大佬

    1. lapland
      @u725b

      大佬问问,因为服务器上本来有redis,所以我给他改了个IP 127.0.0.2:6379,连接也是成功的,docker里面显示启动成功。域名打开后和你的一样显示Not Found,放到HTML中,视频能正常打开,弹幕也能正常发送(进去提示加载弹幕,一秒左右消失,也没提示加载失败之类的,弹幕发送也没提示发送失败,而且正常在上面滚动,但是刷新视频后,弹幕消失,未保存到服务器),查看日志大部分显示{"message":"/v3/, user IP: 182.139.28.104","level":"info"}或者{"message":"/, user IP: 182.139.28.104","level":"info"},没有错误日志。我也尝试过卸载原来的redis,使用127.0.0.1:6379,但是依然那样,麻烦给指导指导大佬。具体效果可以看看https://www.bingoufan.com/1.html