使用Docker搭建DPlayer視頻彈幕接口API後端[DPlayer視頻彈幕搭建教程]
原文地址:https://www.moerats.com/archives/838/
說明:之前有同學要求博主出個DPlayer
彈幕後端搭建教程,剛好本博客的Handsome
主題更新並完美適配了Dplayer
,然後就研究了下,發現了點小問題,如作者提供的彈幕API
加載不出彈幕,而且Typecho
當中的Dplayer
插件有點舊無法對接V3
後端,不知道其它程序插件是不是這樣,這裏博主只能使用HTML
代碼直接輸出調用,經測試已完全正常加載彈幕和觀看。這裏就說下搭建及使用方法。
簡介
DPlayer
是一個支持彈幕的HTML5
視頻播放器。支持Bilibili
視頻和danmaku
,支持HLS
、FLV
、MPEG DASH
、WebTorrent
以及其他視頻格式,支持截屏、熱鍵、切換清晰度以及字幕等。
安裝
作者提供的彈幕後端搭建方法挺多的,這裏選擇一個搭建最快,版本最新的一種。
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 [email protected]
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!!!
好了,可以在視頻裏發彩色彈幕了,如果該視頻播放器不顯示的話,刷新一下就行了。