kplayer 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
kplayer 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
kplayer 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Google Go
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发多媒体处理
开源组织
地区 不详
投 递 者 开源中国首席98K
适用人群 未知
收录时间 2022-02-11

软件简介

KPlayer

KPlayer可以帮助你快速的在服务器上进行视频资源的循环直播推流。本仓库为libkplayer的golang封装版本

查看帮助文档:https://kplayer.net/p/1

kplayer是什么

kplayer为你提供最小化成本搭建视频推流功能的工具,最优的推流方案OBS或其他软件依赖与xWindow或图形化界面的需要,不适合在服务端与云服务器上进行部署。KPlayer无需依赖图形化界面,您可以使用任意一款你喜欢的发行版本即可实现多视频资源无缝推流的方案。

只需要定义您的配置文件,针对定制化的修改。即可达成想要的结果。并且可以24小时无人值守的方式运行它。

有什么特性

  1. 多视频资源无缝推流 媒体资源推流,通常是单个资源文件连续推流。如果你有这方面的经验,那么肯定使用过ffmpeg或者obs的方案来进行推流直播。
  • 与ffmpeg相比。想要实现多资源连续推流的方式通过concat配合-loop可以达到或者使用循环运行ffmpeg命令来长时间推流。但是无法动态控制视频资源的顺序,而且在视频存在差异性的情况下,必须保证视频参数的高度一致性。类似分辨率,码率,sardar,声道数量等造成极大的不便。使用命令行循环推流则会导致资源切换时会出现资源断流的情况,严重时会出现编码数据不匹配(绿屏、音画不同步...)
  • 与obs相比。obs更依赖图形化界面的GUI操作,依赖实时编码。这在服务器上将变得不太友好。
  1. 预生成缓存,节省硬件资源 如果你的场景是循环推流,并不需要进行实时编码。KPlayer提供缓存机制,将上一次推流的数据缓存下来。下一次直接使用缓存文件,这将极大的降低你的机器CPU与内存占用量,仅使用较小的资源可以完成不间断推流。

KPlayer也支持在高性能机器上预生成缓存,传输至性能较小的服务器上直接使用缓存推流。降低资源占用量

  1. 支持多输出资源 KPlayer不仅支持输入资源的定义,对输出资源也允许定义多个输出资源并行推流。这意味着,你可以在不同的推流平台上显示一致的视频画面。

同时支持你配置重连机制,在某些原因下由于服务端的意外断开。你可以允许KPlyaer不被中断,并在某个时间段后进行尝试重新连接。

  1. 提供丰富的API接口辅助第三方应用控制 若具备基础的编码能力,KPlayer支持你通过jsonrpc调用的方式去控制它的播放行为。包括但不限于添加/删除输入资源文件、添加/删除输出资源、暂停、跳过等等等...

API是动态控制的,不必重新运行它。

  1. 提供可热拔插的插件机制,并提供自定义插件开发 丰富视频资源内容,我们提供了插件的机制。通过插件的配置,你可以实现插件提供的各种功能。例如在直播资源中添加一行文字、添加一个图片水印、显示时间、进度条等等...

并且支持你开发自定义插件提供给其他人使用。

什么样的设计

  1. 编码语言 KPlayer从v0.5.0以上由以下编程语言构成。
  • C++17 实现编解码与输入输出的核心逻辑
  • Golang 实现用户交互态的业务逻辑
  • Rust/C++ 提供插件的实现功能

相较于v0.4.x的版本,我们将各个功能解耦方便迭代开发提供更好的迭代周期和功能开发

  1. 解耦设计 KPlayer的整体控制逻辑依赖于消息队列通信,在主程序编码中可以看到大量的消息事件的处理,方便各模块中的功能解耦。同时多线程间彼此通过消息通信进行逻辑解耦

在对libkplayer与外界交互信息上,使用protobuf进行数据交互。如果有幸你参与到插件的开发工作中来,相信这会对你带来较大的便利

  1. 插件机制 得益于插件的设计逻辑,可以丰富推流视频中的内容。v0.4.x内的插件依赖于动态链接库的加载,不好的地方就是插件行为将变得不可控(读取机器磁盘文件、访问网络资源)...

得益于WebAssembly的出色设计,我们使用wasm来完成插件的编码与运行。我们可以严格控制每个插件的可访问行为。在无授权的情况下,它并不能访问任何关于你机器上的任何数据。你可以放心的使用它而不必担心会存在恶意插件或插件被篡改的情况产生。并且你可以使用你熟悉的任何语言来编写插件,只要它符合wasm标准

未来会支持什么

  1. 提供更多的插件
  2. 提供更多的辅助工具降低入门成本
  3. 完善的辅助文档
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(4)
发表了资讯
05/06 10:01

KPlayer v0.5.4 版本发布,更适合的云服务器直播推流工具

KPlayer帮助你不依赖图形界面快速的在服务器上进行视频资源的直播推流 💬 kplayer是什么 kplayer为你提供最小化成本搭建视频推流功能的工具,最优的推流方案OBS或其他软件依赖与xWindow或图形化界面的需要,不适合在服务端与云服务器上进行部署。KPlayer无需依赖图形化界面,您可以使用任意一款你喜欢的发行版本即可实现多视频资源无缝推流的方案。 只需要定义您的配置文件,针对定制化的修改。即可达成想要的结果...

0
13
发表了资讯
04/05 13:00

kplayer v0.5.3 版本发布,更适合的云服务器直播推流工具

KPlayer是什么 https://github.com/bytelang/kplayer-go/blob/master/README.md v0.5.3 更新内容 提供跳转至指定unique name的资源文件 修复通过API添加输入资源必须为本地视频的错误 添加delay_queue_size配置参数指定默认编码缓存队列大小 修复插件加载PNG格式资源异常问题 github https://github.com/bytelang/kplayer-go 下载地址 arm64: http://download.bytelang.cn/kplayer-v0.5.1-Linux-aarch64.tar.gz amd64: http://d...

0
11
发表了资讯
03/08 18:30

kplayer v0.5.1 版本发布,更适合的云服务器直播推流工具

KPlayer是什么 https://github.com/bytelang/kplayer-go/blob/master/README.md 更新内容 添加支持输入资源文件为文件夹类型,自动遍历文件夹下视频资源 添加对arm64与x86_64的docker支持 更好的适配srt推流协议 修复交互式命令添加默认参数的问题 修复通过CLI与API跳过适配资源无效的问题 修复某些异常情况下程序假死的情况 修复在某些发行版本上运行kplayer出现segmentation fault的异常情况 添加程序异常崩溃退出时的错误信息...

0
5
发表了资讯
02/11 10:57

KPlayer v0.5.0发布,更好的服务端推流工具

KPlayer是一款用于服务端的推流工具,可实现24小时无人值守直播视频资源轮播。 更新内容 拆分编解码逻辑与业务交互代码,使用golang来实现业务层面 优化插件加载机制,提供更快速安全的插件 默认配置文件由yaml更改至更加友好的json格式 提供全新的cli命令来更快捷的控制 更改reustul api为jsonrpc 提供websocket来监听发生的一切事件消息 延时推流,提高低配机器推流效率 多线程优化 修复不稳定API请求中断的问题 更稳定安全的...

0
11
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
4 评论
56 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部