兼容性

KPlayer目前仅支持Linux环境并需要满足x86_64(amd64)aarch64(arm64)CPU架构的硬件环境上运行,我们已经将相关依赖库静态链接至主程序中,这意味着你不需要额外的安装任何的第三方库来支持KPlayer的运行。

在后续的迭代版本中将会陆续针对不同CPU架构与不同的操作系统上进行跨平台支持。

查看满足条件

如果你想确定是否满足运行条件,可使用以下的命令来确认你的服务器是否满足以下的预期输出

  1. 确保执行以下命令输出的结果相同

uname
> Linux
  1. 确保执行以下命令输出的结果为x86_64aarch64

uname -m
> x86_64

下载安装

KPlayer提供两种方法供你获取当前版本的安装包到你的服务器中。

一键下载是我们提供的下载安装脚本,它会根据你服务器的架构版本获取相应的下载版本并解压到当前目录中。它更适合你不不需要关心服务器的架构版本。

手动下载更适合你需要下载对应架构与对应版本的构建版本。

1. 使用一键下载

提醒

一键下载始终会下载KPlayer的最新的版本,如果下载历史版本请使用第二种安装方法

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

curl -fsSL get.kplayer.net | bash

执行完成之后输出下载进程与完整的文件列表

> curl -fsSL get.kplayer.net | bash
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 24.4M  100 24.4M    0     0  7377k      0  0:00:03  0:00:03 --:--:-- 7379k
kplayer/
kplayer/kplayer
kplayer/config.json.example

2. 手动下载压缩包

提醒

手动下载请确认你的服务器CPU架构版本与目标下载地址相符合

在这里查看当前版本下载地址,选择服务器上http客户端程序下载到本地来。如果你的机器架构为amd64,以下是它的实例命令

wget https://gitee.com/bytelang/kplayer-go/releases/download/v0.5.8/kplayer-v0.5.8-linux_amd64.tar.gz

等待文件下载完成,你就得到了对应下载版本的压缩包。执行解压操作

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

完成下载

如果你成功的完成的上述的步骤,至此KPlayer已安装到你的服务器中。

执行cd kplayer进入到kplayer文件夹中查看文件列表ls -lh将会看到所有文件的输出

-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

查看当前版本号

对已下载的KPlayer查看当前版本号,运行以下命令。查看主版本号

./kplayer

image-20220830110930473

创建配置文件

在上一步安装顺利后,在kplayer目录中将存在config.json.example,它是一个最简版本用来支持推流的配置文件。你可以选择自己创建文件或者将它复制一份成为新的配置文件。

使用cp命令重命名并复制一份配置文件

cp config.json.example config.json

提醒

KPlayer默认的配置文件名称为config.json优先在homedir目录中查找该配置文件。

KPlayer现已支持使用yaml格式来作为它的配置文件,使用哪个完全取决于你的喜好。但是在同时存在config.jsonconfig.yaml,json格式的优先级会更高

如果你使用yaml格式来作为配置文件,那么请将json后缀的文件修改为yaml

修改配置文件

打开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"
            }
        ]
    }
}

修改推流地址

  1. 推流地址是将要把视频资源的画面与声音推送给服务端的通信地址,如果是像bilibili、虎牙、斗鱼....等直播平台通常是需要在个人中心并开启直播后,将会得到推流地址推流码。将推流码追加至推流地址后即可得到推流地址

  2. 自己搭建推流服务器,通过很多开源工具也可以很方便的搭建推流服务器。推荐使用https://github.com/arut/nginx-rtmp-modulehttps://github.com/illuspas/Node-Media-Server快速的搭建推流服务端

假设推流地址为rmtp://127.0.0.1:1935/live/test,使用获取到的新的推流地址修改至配置文件中

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

配置文件修改完成

提醒

完成上述两步,确保你填写的视频文件地址正确无误与推流地址无误。恭喜你,你完成最简版的配置文件的修改。

开始运行KPlayer

进行到这里,符合条件的配置文件与环境在上一步已经配置完成,执行下方的命令即可开始KPlayer 进行视频资源推流。

提醒

如果你推流的线上推流服务器。请保证您的直播间或者推流服务器是开启状态。某些平台在一段时间后未接收推流资源将会自动关闭,你可以关闭再重新打开

执行开始推流的命令

./kplayer play start

将会看到以下输出信息并保持程序继续运行,即成功推流

kplayer for golang v0.5.8 Copyright(c) 2019-2023 the ByteLang Studio (https://kplayer.bytelang.cn)
  libkplayer version: v1.5.5 plugin version: 1.5.1 license version: v1
  toolchains GNU(10.3.1) C++ Standard 17 on Linux-x86_64-5.18.14-arch1-1
  build with build-chains cmake(3.22.3) type with Release
  Hope you have a good experience.
-------------------------------------------------------------------------------------------------------------------
INFO[2022-08-23 15:25:05] grpc server listening                         address=127.0.0.1 port=5157
INFO[2022-08-23 15:25:05] http server listening                         address=127.0.0.1 port=5156
INFO[2022-08-23 15:25:05] output add success                            path="rmtp://127.0.0.1:1935/live/test" unique=33f043
INFO[2022-08-23 15:25:05] core start up success
INFO[2022-08-23 15:25:05] kplayer start success
INFO[2022-08-23 15:25:05] checked play resource                         duration=325 path="/home/user/video/起风了.flv" unique=mMRzUj

查看推流内容

如果是在线直播平台,打开你的直播间链接可以看到视频资源正确在播放

如果是自己搭建的推流服务端,通过可以播放rtmp协议的播放器例如ffplayvlc打开推流链接可以查看到资源播放情况

如何在后台执行

默认情况下通过ssh进入到服务器中,当前程序的父进程为ssh-agent。当退出终端时,程序将会被结束

你可以通过nohupscreentmux这些工具来支持后台运行

或者使用KPlayer提供的程序后台运行参数来使得它在后台运行

./kplayer play start --daemon

运行后将会输出成功日志,这个日志仅代表KPlayer被正确的放到后台进行运行并且不会在前台提示任何运行期间的错误情况,所以并不代表它正在正确的在执行

INFO[2022-08-23 00:47:26] kplayer start success on daemon mode

当使用daemon模式后,所有的日志输出将会重定向到log/kplayer.log中,你可以查看这个文件来确定是否有异常情况发生

关闭KPlayer的运行

  1. 使用前台运行方式时,按下Ctrl+c结束运行

  2. 使用后台Daemon模式时,执行以下命令来结束KPlayer 的后台运行

./kplayer play stop