简介

无人直播间是一种自动化直播解决方案,它允许用户在无需人工干预的情况下,持续播放视频内容。这在需要长时间直播,如展示产品、播放教育视频或娱乐内容时非常有用。本文将详细介绍如何使用KPlayer在B站搭建一个24小时无人直播间。

其实非常简单,只需要一台服务器和视频资源就能完成。

KPlayer 简介

KPlayer是由ByteLang Studio设计开发的一款Linux环境下的媒体资源推流应用程序。它旨在简化直播流程,让用户无需深入了解推流适配和视频编解码技术,即可轻松实现直播。

功能特色

  • 无缝推流:支持本地和网络视频资源的无缝推流,资源切换不会导致直播中断。

  • 自定义编码参数:用户可以根据需要调整分辨率、帧率等编码参数。

  • 多输出源:允许同时向多个直播平台推流,而无需重复编码,节省硬件资源。

  • 缓存机制:通过缓存机制避免相同内容的重复编解码,降低硬件资源消耗。

  • API接口:提供丰富的API接口,方便在运行时动态控制播放行为和资源。

  • 插件系统:支持基础插件,并允许用户根据需要开发自定义插件。

项目地址:https://github.com/bytelang/kplayer-go

在线文档:https://docs.kplayer.net/v0.5.8/

安装 KPlayer

KPlayer支持多种安装方式,包括一键安装、手动安装和Docker安装。

一键安装

通过SSH进入服务器,运行以下命令,找到合适的目录并运行以下的命令进行下载:

curl -fsSL get.kplayer.net | bash

手动安装(可选)

  1. 下载压缩包

wget http://download.bytelang.cn/kplayer-v0.5.8-linux_amd64.tar.gz
  1. 解压压缩包

tar zxvf kplayer-v0.5.8-linux_amd64.tar.gz

安装完成

  1. 执行 cd kplayer 进入到 kplayer 目录,使用 ll 查看文件列表:

-rw-r--r-- 1 root root 285 3月  23 18:23 config.json.example
-rwxr-xr-x 1 root root 27M 7月  29 11:12 kplayer
  • config.json.exampleKPlayer 最小化的配置信息示例

  • kplayerKPlayer 服务启动、停止的执行脚本命令

  1. 使用 ./kplayer 命令查看当前版本

image-20240915120751380

创建配置文件

  1. 复制并重命名配置文件: config.json.example

cp config.json.example config.json
  1. 修改配置文件,指定视频资源路径和直播推流地址。

{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/video/example_1.mp4",
            "/video/example_2.mp4"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://127.0.0.1:1935/push"
            }
        ]
    }
}
  • resource.lists 视频资源文件路径

  • output.lists 直播推流地址,在B站、斗鱼、虎牙等直播平台中开启直播后,将会得到推流地址与推流码

开启直播

上传视频

上传视频资源:将视频资源上传至服务器,并修改 KPlayer 中的 resource.lists 视频路径。

注意:确保直播内容拥有相应版权,避免侵权风险。

image-20240915122524321

{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/creammint/tools/kplayer/movie/test.mp4"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://127.0.0.1:1935/push"
            }
        ]
    }
  }
}
​

获取推流地址

获取推流地址:在B站开启直播,获取推流地址和推流码,并配置到KPlayer。

  1. 点击首页直播

image-20240915122558590

  1. 点击网页右侧的开播设置

image-20240915122645989

  1. 选择分类,点击开播

注:前提需要身份证和姓名实名认证,且粉丝需要达到50人才能使用第三方软件开播。

image-20240915122853261

  1. 复制直播间地址

rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_*********_********&key=**************&schedule=rtmp&pflag=1
  1. 将直播间地址配置到 KPlayer 配置文件中的 output.lists 直播推流地址

{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/creammint/kplayer/movie/test2.mp4",
            "/creammint/kplayer/movie/test.mp4"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_*********_********&key=**************&schedule=rtmp&pflag=1"
            }
        ]
    }
}
​

运行 KPlayer

执行以下命令启动 KPlayer

./kplayer play start

image-20240915123044158

image-20240915124015404

后台运行 KPlayer

./kplayer play start --daemon

image-20240915123103653

查看在运行的kplayer

 ps aux | grep kplayer

杀掉进程

kill 22647 

测试访问

打开直播间地址,确认直播已经开始。

image-20240915123516332

多平台支持:斗鱼、虎牙等其他直播平台的配置流程类似,只需获取相应平台的推流地址并进行配置,就可以同时配置多个平台同时进行直播!

配置循环播放

KPlayer支持循环播放配置,确保24小时不间断播放。

{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/creammint/kplayer/movie/test2.mp4",
            "/creammint/kplayer/movie/test.mp4"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_*********_********&key=**************&schedule=rtmp&pflag=1"
            }
        ]
    },
    ## 播放配置
    "play": {
        "fill_strategy": "ratio",
        ## 启用推流编码缓存,会生成缓存,命中缓存节约CPU资源
        "skip_invalid_resource": true,
        "cache_on": true,
         # 播放模式为按顺序且循环播放
        "play_model": "loop"
  }
}
​

高级配置

KPlayer还支持更多高级配置,如:

  • 资源预加载:提前加载视频资源,减少播放延迟。

  • 错误处理:配置错误处理策略,如遇到无效资源时自动跳过。

  • 日志记录:开启日志记录,方便问题诊断和性能监控。

更多的配置信息请参考KPlayer提供的在线文档