搭建属于自己的直播间
2019-12-31
| 2023-3-27
0  |  Read Time 0 min
type
status
date
slug
summary
tags
category
icon
password

前言

之前在工作室直播的时候,同学一直用的QQ直播,直播质量及其廉价,然后又不是很想用B站直播之类的,毕竟都是自己看,于是就萌生了要自建直播间供工作室大佬使用的想法。

安装直播服务器

使用 Docker 安装 nginx-rtmp

所谓万物皆可 docker,能 docker 的事就别找别的麻烦的,反正学校服务器配置够高,用就是了
开文件夹,配置 docker-compose.yml
这里这么搞是为了可以和我之前用的 docker-lemp 网络对接,当然你也可以直接将生成的流文件文件夹映射到本地的网站目录,这样更方便一点。顺带说一下,这个conf也要映射的原因是要修改默认配置文件。然后默认的1935端口给一下,大概差不多

** 通过编译安装 nginx-rtmp

参考此处资料进行使用,上面用了docker的就不用了

修改 nginx.conf

使用 docker 的在当前目录下创建 ./conf/nginx.conf
编辑 nginx.conf ,修改为以下内容

运行 Docker

输入 sudo docker-compose up -d ,等到容器创建完毕完事~

推流

nginx-rtmp 搭建好了以后,你就可以进行推流了。
上面开 hls 是为了方便移动端设备直接访问,也是为了方便浏览器上观看直播。

OBS 推流

打开推流设置页面,服务器填写 rtmp://<IP地址>:1935/hls ,密钥你自己喜欢,点击开始推流,看能不能推上
推上了以后,会在 ./www/hls 文件夹中生成 <密钥>.m3u8 ,说明推流成功

FFMPEG 推流视频

不想直播了,但是想在直播间循环一些视频

https 强迫症

如果你有 https 强迫症,或者说不想看端口,你也可以套一层 nginx 反代,或者直接在上面的 nginx 改设置
1935 那噶哒端口也一样,写就对了
然后串流地址就可以改成 https://xxxxx/hls

前端

为了图省事,我这里使用了 hls.js + DPlayer,直接引入 hls.js 和 dplayer.js 就行
按照 DPlayer 的指南简单写一下
(Ctrl+C, Ctrl+V ,摸了
最后效果和首页的差不多

弹幕服务器

众所周知,Dplayer 是一个弹幕播放器,那肯定要有弹幕才能尽兴。
开始我试了一下用官方的 docker 容器来搭建,搭好以后发现这个不太适用于直播,适用于视频类的,所以还是得手撸
主要思路是点击发送的时候 DPlayer 调用 apiBackend 的 send,然后再走 websocket 发送弹幕,当websocket 接收到新数据的时候再通过 dp.danmaku.draw 进行渲染。
将 danmaku 的 options 展开还可以指定视频 id、用户之类的,然后为了赶工我就只先搞了视频 id 的,用户啥的还没写
(视频id我就大概用视频地址md5一下差不多了
(说起来找了半天才发现这个 danmaku 是可以展开的(

美化

利用 Element 来加一点点细节,就很好看啦
notion image

多人直播间

根据 Vue-router 和 Vue 的特性,你可以根据路由来动态改变视频地址和直播间名字
notion image
技术分享
  • 开发
  • 运维
  • 元旦快乐给服务器安装 ArchLinux
    • GitTalk
    Catalog