转载请标明出处,谢谢!
引子·背景
前几天为了给QQ频道引流,增加些热度,想到在QQ频道里面直播一些视频,但是经费有限,只能买一个1h2g的低配机中的战斗机,安装的Ubuntu Server 20.04,已经实际应用,使用360P的窄带高清流,服务器是腾讯云的轻量应用服务器嫖来的30块钱一年的。
但是,若是使用OBS推流,服务器吃不消,且OBS最低输出画质为720P,一个月的500G流量实在是供不起,故另寻无GUI的推流器。
所以,很多人有以下需求:
- 稳定无人直播推流。
- 推流服务器配置低,但能稳定推流。
- 不需GUI耗费大量服务器性能。
- 若性能足够,希望多路推流。
于是在这个需求下今天写一篇笔记记录利用GitHub上的kplayer项目进行QQ频道无人直播的过程。
准备
- 一台轻量应用服务器。本篇使用阿里云的2H2G轻量应用服务器,安装[Ubuntu Server]() 20.04进行演示。
- Linux 管理面板。这里推荐 宝塔面板/小皮面板。本篇使用宝塔面板。
- kplayer - GitHub / Official site
开始
安装Linux管理面板
去阿里云管理台,待机器安装好系统并开机后,先去设置root密码。位置在打开服务器管理台后的“服务器信息”栏最右侧有一个“重置密码”,就是它。
然后下面是Ubuntu的宝塔安装脚本,其他服务器请到官网自行复制。
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
复制好后,进入阿里云后台,点击右上角“远程连接”=》“Workbench root用户连接”(SSH),输入密码连接。
在打开的终端中粘贴刚刚复制到安装脚本,是否安装输入 y
,配置SSL选 n
。等待宝塔安装完成。
安装完成后请记下面板地址,访问端口以及用户名密码。
请注意:若无法访问面板,请检查防火墙/安全组是否有放行面板端口。
在阿里云后台左侧“安全”=》“防火墙”,添加规则,“自定义,TCP,目标端口,0.0.0.0/0
,无”。
绑定好宝塔账号以后请不要安装LNMP/LAMP环境,对我们没用咱不安装。
可以按需在宝塔的软件商店里安装FTP软件,按需自行下载。
安装 KPlayer
满足先决条件
回到刚刚打开的Workbench root用户连接页面(SSH)
1.确保执行以下命令输出的结果相同
uname
> Linux
2.确保执行以下命令输出的结果为 x86_64
或 aarch64
uname -m
> x86_64
下载安装
找到合适的目录并运行以下的命令进行下载
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
完成下载
如果你成功的完成的上述的步骤,至此 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
kplayer for golang v0.5.7 Copyright(c) 2019-2022 the ByteLang Studio (https://kplayer.bytelang.cn)
libkplayer version: v1.5.2 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.21.3) type with Release
Hope you have a good experience.
-------------------------------------------------------------------------------------------------------------------
Usage:
kplayer [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
init Init config file
output Output category
play Play category
plugin Plugin category
resource Resource category
Flags:
-c, --config string config file name (default "config")
-h, --help help for kplayer
--home string directory for config and data (default "./")
--log_level string The logging level (trace|debug|info|warn|error|fatal|panic) (default "info")
--plain string The logging format (json|plain) (default "plain")
Use "kplayer [command] --help" for more information about a command.
root@iZt4ni3oqmenvrjzm8tiukZ:~/kplayer#
进行配置
打开宝塔面板,进入“文件”,进入 /root/kplayer
(根目录=》root=》kplayer),新建目录,命名为 video
(非强制,如果你不知道在干什么,直接无脑照做就好),进入video文件夹,上传你准备要推流的视频文件。PS:尽量使用英文或者数字命名视频文件,尽量不要出现中文字符以免出现一些不必要的麻烦。
上传完视频之后我们回到刚刚的 kplayer
目录,下载文件 config.json.example
到本地,并使用记事本打开编辑。该文件看起来是这样子的:
{
"version": "2.0.0",
"resource": {
"lists": [
"/video/example_1.mp4",
"/video/example_2.mp4"
]
},
"output": {
"lists": [
{
"path": "rtmp://127.0.0.1:1935/push"
}
]
}
}
最简单地:lists
字段填写视频地址,自行修改;如若你前面完全照做,你的路径为 /root/kplayer/video
。请注意:视频后缀名称应正确。path
字段填写推流地址,如若有推流码,将上图中推流地址后面加上 /
再加上你的推流码,然后填到文件中即可。
保存文件并命名为 config.json
,并上传到 kplayer
目录中。
如果你使用yaml格式来作为配置文件,那么请将json后缀的文件修改为yaml。
如果完成上述步骤,那么我们可以进行一个最基本的推流开播了。
运行
运行KPlayer以开始推流
开始推流的命令:
./kplayer play start
看到类似与下面的信息即推流成功:
INFO[2023-01-12 17:16:20] core shut down success
root@iZt4ni3oqmenvrjzm8tiukZ:~/kplayer# ./kplayer play start
kplayer for golang v0.5.7 Copyright(c) 2019-2022 the ByteLang Studio (https://kplayer.bytelang.cn)
libkplayer version: v1.5.2 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.21.3) type with Release
Hope you have a good experience.
-------------------------------------------------------------------------------------------------------------------
INFO[2023-01-12 17:17:44] grpc server listening address=127.0.0.1 port=4155
INFO[2023-01-12 17:17:44] http server listening address=127.0.0.1 port=4156
INFO[2023-01-12 17:17:44] core start up success
INFO[2023-01-12 17:17:44] kplayer start success
INFO[2023-01-12 17:17:44] output add success path="rtmp://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" unique=uamiIn
INFO[2023-01-12 17:17:44] checked play resource duration=198 end=-1 path=/root/kplayer/video/test.mp4 seek=0 type=resource_input_type_single unique=BrIZve
INFO[2023-01-12 17:21:03] finish play resource path=/root/kplayer/video/test.mp4 unique=BrIZve
如果明明显示成功,但是没有收到推流,请检查信息中的端口有没有在防火墙处开放。
关闭KPlayer的运行以停止推流
- 使用前台运行方式时,按下
Ctrl+c
结束运行 - 使用后台
Daemon
模式时,执行以下命令来结束KPlayer
的后台运行
./kplayer play stop
1 条评论
不错