在B站开一个无人直播!推流神器kplayer入门指南

529 阅读4分钟

前言

自从整了一台服务器,总想在上面整点东西。 之前闲逛的时候看到了一个无人直播的文章,于是就想着自己整个玩玩,有了以下的探索过程。 无人直播一般使用kplayer和ffmpeg这两种推流工具,略一比较,感觉kplayer更适合新手,这次就以kplayer为例,介绍一下它的基本使用方法。

介绍

官网在这里:docs.kplayer.net/v0.5.8/ KPlayer是由ByteLang Studio精心设计开发的一款应用程序,专为Linux环境下的媒体资源推流而打造。它以其简单易用、功能丰富、性能卓越而受到用户的青睐,尤其适合需要长时间不间断推流的直播场景。

核心特性

  • 开箱即用:简单修改配置文件,无需深入了解推流适配和视频编解码。
  • 自定义编码参数:包括分辨率、帧率等,满足不同直播需求。
  • 多输出源支持:一次编码多路推流,节省硬件资源。
  • 缓存机制:避免重复编解码,降低硬件资源消耗。
  • 丰富的API接口:动态控制播放行为和资源。
  • 插件系统:提供基础插件,支持自定义插件开发。

运行条件检查

在部署KPlayer前,请确保服务器满足以下条件:

  1. 操作系统为Linux,可通过uname命令确认: uname 预期输出为Linux

  2. 服务器架构为x86_64aarch64,通过uname -m命令确认: uname -m 预期输出为x86_64aarch64

下载与安装

KPlayer提供两种安装方式,线上自动安装和手动安装,这里就以一键安装为例:

使用以下命令进行一键下载,自动获取与服务器架构匹配的版本:

curl -fsSL get.kplayer.net | bash

配置文件创建与修改

  1. 复制示例配置文件:

    cp config.json.example config.json
    
  2. 编辑config.json,配置媒体资源路径和输出列表。 打开config.json文件,可以看到预置的一些配置项


{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/video/example_1.mp4",
            "/video/example_2.mp4"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://127.0.0.1:1935/push"
            }
        ]
    }
}

修改视频资源路径

基于这个配置文件,你只需要改动很少的一部分配置即可完成资源推流

修改视频资源目录至你的视频文件路径,假设你的视频文件路径为/home/user/video/起风了.flv


{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/home/user/video/起风了.flv"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://127.0.0.1:1935/push"
            }
        ]
    }
}

修改推流地址

推流地址是将要把视频资源的画面与声音推送给服务端的通信地址,如果是像bilibili、虎牙、斗鱼....等直播平台通常是需要在个人中心并开启直播后,将会得到推流地址与推流码。将推流码追加至推流地址后即可得到推流地址 这里以B站为例,首先需要开启直播,在用户中心最下方的直播中心,找到你的直播间推流地址

先后把服务器地址和串流秘钥复制进"path"内容即可

启动KPlayer

执行以下命令开始视频资源推流:

./kplayer play start

注意,这里的运行方式只适合用来测试,控制台断开之后就会自动掉线,生产环境建议使用后台Daemon模式。

后台运行

使用--daemon参数使KPlayer在后台运行:

./kplayer play start --daemon

停止运行

  • 前台运行时,使用Ctrl+c结束。
  • 后台Daemon模式,执行:
    ./kplayer play stop
    

常用配置

以下是一些可能用得到的配置项,更多配置项请参考官方文档。

起始位置

设置视频列表的起始索引位置:

{
  "play": {
    "start_point": 1
  }
}

播放模式

配置播放模式,如顺序播放、循环播放、随机播放等:

{
  "play": {
    "play_model": "loop"
  }
}

编码模式

设置编码模式,如推流模式或文件编码模式:

{
  "play": {
    "encode_model": "rtmp"
  }
}

开启缓存

减少资源占用,避免重复编解码:

{
  "play": {
    "cache_on": true
  }
}

跳过缓存有效性检查

跳过源文件和缓存文件的一致性检查:

{
  "play": {
    "cache_uncheck": true
  }
}

跳过无效资源

遇到无效资源时,继续播放下一个资源:

{
  "play": {
    "skip_invalid_resource": true
  }
}

填充策略

设置视频缩放策略,如等比例缩放或平铺:

{
  "play": {
    "fill_strategy": "tile"
  }
}

结语

经过以上的简单配置,就可以使用服务器开一个24小时不间断的无人直播了,大家也可以来我的直播间 live.bilibili.com/27119334 逛逛,点个赞也是好的,嘿嘿 祝大家玩的愉快。