不知道大家平时看不看直播呢?现在有各式各样的直播,游戏直播、户外直播、带货直播、经典电视/电影直播等等。
电视、电影直播是24小时不间断无人直播,如斗鱼/虎牙中的一起看 ,这种直播要如何实现呢?
其实非常简单,只需要一台服务器和视频资源就能完成。
再借助于直播推流工具,如 KPlayer
,将电视剧、电影等媒体资源推流到直播间,就能实现24小时无人直播了!
KPlayer 简介
KPlayer
------ ByteLang Studio
设计开发的一款用于在 Linux
环境下进行媒体资源推流的应用程序。
只需要简单的修改配置文件即可达到开箱即用的目的,不需要了解众多推流适配、视频编解码的细节即可方便的将媒体资源在主流直播平台上进行直播。意愿是提供一个简单易上手、扩展丰富、性能优秀适合长时间不间断推流的直播推流场景。
功能特色:
-
本地/网络视频资源的无缝推流,切换资源不导致断流
-
可自定义配置的编码参数,例如分辨率、帧率等
-
自定义多输出源,适合相同内容一次编码多路推流节省硬件资源
-
提供缓存机制避免相同内容二次编解码,大大降低在循环场景下对硬件资源的消耗
-
丰富的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
2、解压压缩包
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.example
是KPlayer
最小化的配置信息示例 -
kplayer
是KPlayer
服务启动、停止的执行脚本命令
2、使用 ./kplayer
命令查看当前版本
创建配置文件
1、使用 cp
命令重命名并复制一份 config.json.example
cp config.json.example config.json
2、修改配置文件
{
"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
视频路径
❗❗❗注意:直播的媒体文件必须得有平台版权,否则就会被投诉,封禁直播间❗
{
"version": "2.0.0",
"resource": {
"lists": [
"/data/software/movie/WechatMomentScreenshot.mp4",
"/data/software/movie/IT Tools.mp4",
"/data/software/movie/EasyCode.mp4",
"/data/software/movie/TinyRDM.mp4",
"/data/software/movie/Fooocus.mp4",
"/data/software/movie/Stirling-PDF.mp4"
]
},
"output": {
"lists": [
{
"path": "rtmp://127.0.0.1:1935/push"
}
]
}
}
}
获取推流地址
以开启B站直播为例。
1、点击首页直播
2、点击网页右侧的开播设置
3、选择分类,点击开播
前提需要身份证和姓名实名认证
4、复制直播间地址
rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_*********_********&key=**************&schedule=rtmp&pflag=1
5、将直播间地址配置到 KPlayer
配置文件中的 output.lists
直播推流地址
{
"version": "2.0.0",
"resource": {
"lists": [
"/data/software/movie/WechatMomentScreenshot.mp4",
"/data/software/movie/IT Tools.mp4",
"/data/software/movie/EasyCode.mp4",
"/data/software/movie/TinyRDM.mp4",
"/data/software/movie/Fooocus.mp4",
"/data/software/movie/Stirling-PDF.mp4"
]
},
"output": {
"lists": [
{
"path": "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_*********_********&key=**************&schedule=rtmp&pflag=1"
}
]
}
}
运行 KPlayer
执行以下命令启动 KPlayer
./kplayer play start
后台运行 KPlayer
./kplayer play start --daemon
测试访问
打开直播间地址,可以看到已经开始直播了。
斗鱼、虎牙等其他直播平台的直播配置也是类似的流程,只需要获取到平台的直播推流地址,并进行配置即可!可以同时配置多个平台同时进行直播!
配置循环播放
KPlayer
提供了很多的配置项,有资源配置、播放配置等。
如:可以配置循环播放视频,这样就可以保证24小时不间断的循环播放视频。
{
"version": "2.0.0",
"resource": {
"lists": [
"/data/software/movie/WechatMomentScreenshot.mp4",
"/data/software/movie/IT Tools.mp4",
"/data/software/movie/EasyCode.mp4",
"/data/software/movie/TinyRDM.mp4",
"/data/software/movie/Fooocus.mp4",
"/data/software/movie/Stirling-PDF.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
提供的文档。
Docker 安装 KPlayer
1、创建缓存目录 /data/software/docker/kplayer/cache
cd /data/software/docker/kplayer
mkdir cache
2、创建配置文件 /data/software/docker/kplayer/config.json
cd /data/software/docker/kplayer
touch config.json
填入配置信息:
{
"version": "2.0.0",
"resource": {
"lists": [
"/data/software/movie/WechatMomentScreenshot.mp4",
"/data/software/movie/IT Tools.mp4",
"/data/software/movie/EasyCode.mp4",
"/data/software/movie/TinyRDM.mp4",
"/data/software/movie/Fooocus.mp4",
"/data/software/movie/Stirling-PDF.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"
}
}
2、创建 docker-compose.yml
version: "3.3"
services:
kplayer:
container_name: kplayer
volumes:
- "/data/software/movie:/video"
- "/data/software/docker/kplayer/config.json:/kplayer/config.json"
- "/data/software/docker/kplayer/cache:/kplayer/cache"
restart: always
image: "bytelang/kplayer"
3、启动容器
docker-compose up -d
以上,就是利用服务器搭建个人直播间的全流程,整个步骤不是很复杂。
我们可以利用闲置的服务器,将自己收藏的电影、电视等资源进行全天候直播,每天还能获得一定的收益!
❗❗❗注意:直播的媒体文件必须得有平台版权,否则就会被投诉,封禁直播间❗
最后
推荐的开源项目已经收录到 GitHub
项目,欢迎 Star
:
https://github.com/chenyl8848/great-open-source-project
或者访问网站,进行在线浏览:
https://chencoding.top:8090/#/
大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!