前言
自从整了一台服务器,总想在上面整点东西。之前闲逛的时候看到了一个无人直播的文章,于是就想着自己整个玩玩,有了以下的探索过程。无人直播一般使用kplayer和ffmpeg这两种推流工具,略一比较,感觉kplayer更适合新手,这次就以kplayer为例,介绍一下它的基本使用方法。
介绍
官网在这里:docs.kplayer.net/v0.5.8/KPlayer是由ByteLang Studio精心设计开发的一款应用程序,专为Linux环境下的媒体资源推流而打造。它以其简单易用、功能丰富、性能卓越而受到用户的青睐,尤其适合需要长时间不间断推流的直播场景。
核心特性
- 开箱即用:简单修改配置文件,无需深入了解推流适配和视频编解码。
- 自定义编码参数:包括分辨率、帧率等,满足不同直播需求。
- 多输出源支持:一次编码多路推流,节省硬件资源。
- 缓存机制:避免重复编解码,降低硬件资源消耗。
- 丰富的API接口:动态控制播放行为和资源。
- 插件系统:提供基础插件,支持自定义插件开发。
运行条件检查
在部署KPlayer前,请确保服务器满足以下条件:
操作系统为Linux,可通过
uname
命令确认:uname预期输出为Linux
。服务器架构为
x86_64
或aarch64
,通过uname -m
命令确认:uname -m预期输出为x86_64
或aarch64
。
下载与安装
KPlayer提供两种安装方式,线上自动安装和手动安装,这里就以一键安装为例:
使用以下命令进行一键下载,自动获取与服务器架构匹配的版本:
curl -fsSL get.kplayer.net | bash
配置文件创建与修改
-
复制示例配置文件:
cp config.json.example config.json
编辑
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站为例,首先需要开启直播,在用户中心最下方的直播中心,找到你的直播间推流地址
启动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 逛逛,点个赞也是好的,嘿嘿祝大家玩的愉快。
本文使用 文章同步助手 同步