前言
最近有服务器资源闲置起来了,感觉很浪费,想把它利用起来,而且自己收藏的“电影”🎞等资源也比较多(小心侵权),所以准备搞个直播玩一玩。
准备直接用服务器进行直播推流,这样能保证24小时无人直播(真人24小时直播那不得累死)。
可以点击链接去到我的直播间🎥🔞,欢迎大家光临🍿😏
目前网上直播推流的工具也有很多,对比了一下,最终选择了 KPlayer
,因为搭建和使用起来非常简单,而且文档也比较齐全。
准备工作
可以用
Docker
的方式进行搭建,如果不用Docker
的话,可直接参考KPlayer
文档进行搭建,也非常简单。其实该项目不用Docker
的方式反而变的简单。
- 服务器,国内、国外服务器均可
- 服务器需安装docker、docker-compose环境,没安装的可参考文章 - docker、docker-compose安装
- GitHub地址:https://github.com/bytelang/kplayer-go
- Docker镜像地址:https://hub.docker.com/r/bytelang/kplayer
- KPlayer文档:https://docs.kplayer.net
- B站、斗鱼、虎牙等直播平台账号
搭建方式
创建目录
// 存放视频文件
mkdir -p /root/docker_data/kplayer/video
// 存放播放时的缓存数据
mkdir -p /root/docker_data/kplayer/cache
cd /root/docker_data/kplayer
上传视频
把你想要直播的视频上传到 /root/docker_data/kplayer/video
文件夹下面
获取直播推流地址
这边以 B站 为例,其他平台大同小异
进入【B站】 -> 点击【直播】 -> 点击【开播设置】 -> 选择分类,点击【开始直播】(需要实名身份证认证) -> 获取【服务器地址】和【串流密钥】
【服务器地址】+【串流密钥】就是推流的地址,格式:rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_******_******&key=**************&schedule=rtmp&pflag=1
创建文件
在 /root/docker_data/kplayer
文件夹下面新建KPlayer
配置 config.json
文件如下(把注释删掉):
{
"version": "2.0.0",
"resource": {
# 容器中存放视频的文件夹,可根据 docker-compose.yml 中的配置进行修改
"lists": ["/video"],
# 过滤允许播放的文件类型,如mp4、flv等
"extensions": []
},
"output": {
"lists": [
{
# 推流地址
"path": "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_******_******&key=**************&schedule=rtmp&pflag=1"
}
],
"reconnect_internal": 5
},
"play": {
"fill_strategy": "ratio",
"skip_invalid_resource": true,
# 启用推流编码缓存,会生成缓存,命中缓存节约CPU资源
"cache_on": true,
# 播放模式,目前为按顺序且循环播放,其他参数请参考KPlayer文档
"play_model": "loop"
}
}
在 /root/docker_data/kplayer
文件夹下面新建 docker-compose.yml
文件如下:
version: "3.3"
services:
kplayer:
container_name: kplayer
volumes:
- "/root/docker_data/kplayer/video:/video"
- "/root/docker_data/kplayer/config.json:/kplayer/config.json"
- "/root/docker_data/kplayer/cache:/kplayer/cache"
restart: always
image: "bytelang/kplayer"
运行yml文件
进入 /root/docker_data/kplayer
文件夹下面,运行命令:docker-compose up -d
或者在任意文件夹下面,运行命令:docker-compose -f /root/docker_data/kplayer/docker-compose.yml up -d
然后服务就跑起来了,运行 docker ps
能查看到启动的容器了。
执行命令 docker logs kplayer
查看日志,如果看到下面日志就表示成功了:
time="2023-10-21 07:15:41" level=warning msg="open terminal failed" file="cmd/root.go:35"
kplayer for golang v0.5.8 Copyright(c) 2019-2023 the ByteLang Studio (https://kplayer.bytelang.cn)
libkplayer version: v1.5.4-1-ge0cab16 plugin version: 1.5.1 license version: v1
toolchains GNU(10.3.1) C++ Standard 17 on Linux-x86_64-6.0.2-arch1-1
build with build-chains cmake(3.21.3) type with Release
Hope you have a good experience.
-------------------------------------------------------------------------------------------------------------------
time="2023-10-21 07:15:41" level=info msg="resource download success" name=default path=resource/font.ttf
time="2023-10-21 07:15:41" level=info msg="resource initialization success" name=default type=font
time="2023-10-21 07:15:41" level=info msg="grpc server listening" address=127.0.0.1 port=4155 token=false
time="2023-10-21 07:15:41" level=info msg="http server listening" address=127.0.0.1 port=4156 token=false
time="2023-10-21 07:15:42" level=info msg="core start up success"
time="2023-10-21 07:15:42" level=info msg="kplayer start success"
time="2023-10-21 07:15:42" level=info msg="output add success" path="rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_******_******&key=**************&schedule=rtmp&pflag=1" unique=N3uAJf
time="2023-10-21 07:15:42" level=info msg="checked play resource" duration=2621 end=-1 hit_cache=false path=/video/xxx_01.mkv seek=0 type=resource_input_type_single unique=IBzmqu
访问直播间地址
之后访问你的直播间地址,就可以看到已经在正常直播了。
视频链接
- YouTube:https://youtu.be/Cj6kdpwP0tg
- Bilibili:https://bilibili.com/video/BV1ZG411y7k4
评论区