目 录CONTENT

文章目录

Docker部署KPlayer,实现24小时无人直播(B站、斗鱼、虎牙等)

俊阳IT知识库
2023-10-21 / 16 评论 / 9 点赞 / 4,862 阅读 / 1,269 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-12-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
广告

前言

最近有服务器资源闲置起来了,感觉很浪费,想把它利用起来,而且自己收藏的“电影”🎞等资源也比较多(小心侵权),所以准备搞个直播玩一玩。

准备直接用服务器进行直播推流,这样能保证24小时无人直播(真人24小时直播那不得累死)。

可以点击链接去到我的直播间🎥🔞,欢迎大家光临🍿😏

目前网上直播推流的工具也有很多,对比了一下,最终选择了 KPlayer ,因为搭建和使用起来非常简单,而且文档也比较齐全。

准备工作

可以用 Docker 的方式进行搭建,如果不用 Docker 的话,可直接参考 KPlayer 文档进行搭建,也非常简单。其实该项目不用 Docker 的方式反而变的简单。

  1. 服务器,国内、国外服务器均可
  2. 服务器需安装docker、docker-compose环境,没安装的可参考文章 - docker、docker-compose安装
  3. GitHub地址:https://github.com/bytelang/kplayer-go
  4. Docker镜像地址:https://hub.docker.com/r/bytelang/kplayer
  5. KPlayer文档:https://docs.kplayer.net
  6. 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

访问直播间地址

之后访问你的直播间地址,就可以看到已经在正常直播了。

视频链接

9

评论区