当前位置: 首页 > 软件库 > 程序开发 > 多媒体处理 >

kplayer

非图形服务器直播工具
授权协议 Apache
开发语言 Google Go
所属分类 程序开发、 多媒体处理
软件类型 开源软件
地区 不详
投 递 者 司马庆
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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. 完善的辅助文档
  • http://www.ckplayer.com/ 原文:http://www.cnblogs.com/Athrun/p/ckplayer.html <div id="flashcontent"></div> <div id="video" style="position:relative;z-index: 100;width:600px;height:400px;"><div id="a1"><

  • 点击下载来源:5kplayer(高清视频播放器) V6.0 5kplayer是针对windows开发的一款优秀、全新的高清视频播放器软件,支持各类视频音频,DVD,电台等播放。这款高清视频播放器软件可以播放4k/5k影片影音视频,具有多重字幕、画面旋转颠倒、声画同步、音轨选择等功能。在播放的同时还可以下载在线视频,支持YouTube,Facebook,Yahoo,Vimeo,Vevo,Niconi

  • function playerstop() { setTimeend(); } function setTimeend() {//获取下一部视频的播放ID nowD++; if (nowD >= videoarr.length ) { nowD = 0; } playvideo(nowD); } function Close() {//关闭播放列表 CKobject._K_('a2').style

  • ckplayer 是一款能解决基本兼容性网页视频播放的插件,该插件不需要基于其他库使用。 var videoObject = { container: '#video', // 容器的ID或className variable: 'player', // 播放函数名称 autoplay: false,

 相关资料
  • 刷新频道下所有画面的推流地址【控制台】 基本信息 Path: /live/api/refresh_publish Method: GET 接口描述: 请求参数 Query 参数名称 是否必须 示例 备注 actid 是 频道Hash ID 返回数据 名称 类型 是否必须 默认值 备注 其他信息 errcode number 非必须 msg string 非必须 单个画面文档打点【控制台】 基本信息

  • 1.1、什么是视频直播服务 视频直播服务(Live Video Broadcasting Service)源自目睹云多年的视频技术沉淀,基于专业的跨平台视频编解码技术和大规模视频内容分发网络,提供稳定流畅、低延时、高并发的实时音视频服务。 1.2、视频直播服务架构图 1.3、直播服务功能列表 类别 功能名称 详细内容 直播接入 推流协议 支持RTMP推流协议 推流方式 支持目睹云客户端推流、手机端

  • 1.1、什么是互动直播服务 互动直播服务(Interactive Live Video Broadcasting Service),顾名思义,即是一种多路音视频实时互动的解决方案。能够实现主播与观众的连麦互动,并且将这个互动的实况直播出去,让更多的用户观看。 A、相比于直播这种单项传输,观众能够获取露脸发声的权利,大大增加了直播的趣味性。但这同时也增加了技术需求,对延迟和抗回声的要求更高。 B、可

  • 开启服务 无参数 示例: HttpDemo/bin/imi server/start 停止服务 无参数 示例: HttpDemo/bin/imi server/stop 重新加载服务 重启 Worker 进程,不会导致连接断开,可以让项目文件更改生效 无参数 示例: HttpDemo/bin/imi server/reload 更新运行时缓存后,再重新加载服务 HttpDemo/bin/im

  • 类名: Imi\Server\Server 服务器工具类 方法 getServer 获取服务器 $server = Server::getServer(); // 获取当前服务器 $server = Server::getServer('serverName'); // 获取指定名称的服务器 sendMessage 发送消息给 Worker 进程,使用框架内置格式 返回成功发送消息数量 // 发

  • 我对计划中的应用程序的设计有一点问题,特别是数据库引擎和无服务器/非无服务器。目标是一个通过RESTAPI与数据库对话的Web应用程序。RESTAPI本身实际上只是CRUD操作,因此在我看来,无服务器aproach(AWS Lambda)非常适合。因此,最有效的数据库可能是DynamoDB(NoSQL)。 我熟悉RDBMS,对NoSQL数据库知之甚少。 应用程序的模式尚未完成,应该可以在以后进行扩