TSINGSEE青犀视频开发的EasyDarwin开源平台提供的开源项目,拥有完整的源代码,帮助开发者更快更简单实现流媒体音视频产品功能,实现移动互联网流媒体直播点播。
2022-05-11:k8s安装easydarwin流媒体服务器,yaml如何写?
由于EasyNVR视频平台能够直接集成到其他的平台定制专属于自己企业的视频监控方案,所以很多项目团队都会选择变更EasyNVR的标题以及CopyRight,换成项目相关的内容,这个需求EasyNVR也是可以实现的,下面就来讲一下实现方法。
EasyDarwin是基于Darwin Streaming Server扩展、维护的开源流媒体服务器解决方案,经过TSINGSEE青犀视频团队近10年的维护,现在已经非常稳定。EasyDarwin支持Windows,Linux,macOS平台,并且支持RTSP推流分配(推模式转发)和RTSP拉流分配(拉模式转发)。本文分享一下Linux系统下编译运行EasyDarwin的过程,给自主编译EasyDarwin的用户一些参考。
EasyDarwin作为TSINGSEE青犀视频开发的初代开源流媒体平台,具备完整的源代码,能够帮助开发者更快更简单实现流媒体音视频产品功能。
说到直播,我们一般比较容易想到的就是rtmp的直播,大家用的比较多,实际上使用rtsp也可以做直播,这一篇就讲一下如何基于rtsp构建直播场景。为了避免混淆,先提前声明一下,之前的基于live555搭建的场景是点播的场景,而非直播。本篇我们要搭建的基于rtsp的直播环境基于EasyDarwin去搭建,非常方便快捷,一起来看一下吧。
5、进入EasyDarwin工程,修改package.json【这个是重点!!!】
Easy系列从开源到SDK组件,再到产品、解决方案、硬件,从2012年EasyDarwin开始,专注于流媒体音视频这一领域已经非常多年了,积累了丰富的行业经验,同时也积累了众多的产品,产品的名称非常多,为了让更多的同学能更好地了解Easy系列的方案,今天TSINGSEE青犀视频汇总了一下EasyDarwin开源社区提供的开源与免费的项目与产品:
EasyScreenLive可以说是TSINGSEE青犀视频的SDK中功能较为集中且全面的一个SDK了,它可以支持推RTSP流到EasyDarwin、推RTMP流到EasyDSS等视频平台,下面我们带着大家演示一遍看下推RTSP流到EasyDarwin具体过程,大家可以作为参考。
EasyDarwin 是基于 go 语言研发,维护和优化的一个高性能开源 RTSP 流媒体服务器,能够帮助流媒体开发者和创业型企业快速构建流媒体服务平台,更快,更简单的实现最新的移动互联网流媒体直播和点播,同步音频和视频的传输,源码下载地址:
目前市面上有很多开源的流媒体服务器解决方案,常见的有SRS、EasyDarwin、ZLMediaKit和Monibuca等,我们应该怎么选择呢?
EasyDarwin是基于Darwin Streaming Server扩展、维护的开源流媒体服务器解决方案,经过TSINGSEE青犀视频团队近10年的维护,现在已经非常稳定。最关键是团队一直秉承着开源的态度,这在国内可以说非常不容易了。
EasyDarwin开源软件相信大家都比较熟悉,由于开源,广大用户均可自由编译,可以更快更简单实现流媒体音视频产品功能。在编译EasyDarwin过程中,偶现使用EasyDarwin.exe可以启动服务,但是使用ServiceInstall-EasyDarwin.exe则会失败的情况。
自2020年浏览器的发展和兼容性发生了变化,WebRTC的延时性、安全性得到了提升和保护,尤其是疫情爆发后,实时视频的需求比之前增长了30倍,这更刺激了WebRTC产品的持续快速发展。因此我们也在EasyGBS、EasyDSS等平台内实现了WebRTC协议的播放。
目前EasyDarwin流媒体平台整套解决方案包括有: EasyDarwin(流媒体服务) EasyCamera(开源流媒体摄像机) EasyPlayer(开源流媒体播放器) 工具库(EasyHLS / EasyRTMP / EasyRTSPClient / EasyPusher / EasyAACEncoder) 注意:EasyDarwin有两个私有自定义的Module:拉模式转发模块EasyRelayModule和HLS直播模块EasyHLSModule,这里用到的libEasyRTSPClient、libEasyPusher、libEasyHLS三个库文件都是没有开源的,他们都是EasyDarwin团队开发的SDK库,但这些都是完全免费使用的。 EasyDarwin的编译和部署可以参考官方的文档 http://doc.easydarwin.org/EasyDarwin/README/#_1 一.主体框架 DSS的核心服务器部分是由一个父进程所fork出的一个子进程构成,该父进程就构成了整个流媒体服务器。父进程会等待子进程的退出,如果在运行的时候子进程产生了错误从而退出,那么父进程就会fork出一个新的子进程。可以看出,网络客户和服务器直接的对接是由核心服务器来完成的。网络客户RTSPoverRTP来发送或者接受请求。服务器就通过模块来处理相应的请求并向客户端发送数据包。 核心流媒体服务通过创建四种类型的线程来完成自己的工作,具体如下: 服务器自己拥有的主线程。当服务器需要关闭检查,以及在关闭之前记录相关状态打印相关统计信息等任务处理时,一般都是通过这个线程来完成的。 空闲任务线程。这个任务线程是用来对一个周期任务队列的管理,主要管理两种任务,超时任务和Socket任务。 事件线程。套接口相关事件由事件线程负责监听,当有RTSP请求或者收到RTP数据包时,事件线程就会把这些实践交给任务线程来处理。 任务线程。任务线程会把事件从事件线程中取出,并把处理请求传递到对应的服务器模块进行处理,比如把数据包发送给客户端的模块,在默认情况下,核心服务器会为每个处理器核创建一个任务线程。 二.模块分类 流媒体服务器使用模块来响应各种请求及完成任务。有三种类型的模块: (1).内容管理模块 媒体源相关的RTSP请求与响应,我们通过内容管理模块来管理,每个模块都用来对客户的需求进行解释并做相应处理,例如读取和解析模块支持的文件,或者请求的网络源信息,并通过RTP等方式响应。 内容管理模块有以下几个: QTSSFileModule, QTSSReflectorModule, QTSSRelayModule, QTSSMP3StreamingModule。 (2).服务器支持模块 服务器支持模块执行服务器数据的收集和记录功能。 服务器模块包括: QTSSErrorLogModule, QTSSAccessLogModule, QTSSWebStatsModule, QTSSWebDebugModule, QTSSAdminModule, QTSSPOSIXFileSystemModule。 (3).访问控制模块 访问控制模块提供鉴权和授权功能,以及操作URL路径提供支持。 访问控制模块包括: QTSSAccessModule, QTSSHomeDirectoryModule, QTSSHttpFileModule, QTSSSpamDefenseModule。
也可在package.json文件中直接添加版本号,然后执行yarn install 或 npm install:
大家了解TSINGSEE青犀视频应该都是从EasyNVR、EasyDSS、EasyGBS等优秀的视频流媒体平台开始的,实际上,这几个流媒体平台的雏形都是我们的开源平台EasyDarwin,在近些年的不断开发中,依据EasyDarwin开发的衍生平台也越来越多样化,系统功能也越来越完备稳定。
EasyNVR考虑到用户的使用安全性,软件自带接口鉴权和视频流播放鉴权,在使用EasyNVR不进行二次开发的情况下,完全能满足用户安全性能的需求。但是如果用户进行二次开发调取接口,那就要调取接口自己来实现鉴权功能。下面就分享下调取接口的过程。
在之前的一篇博客《web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!》中,描述了实现一套H5无插件直播方案的各个组件的参考建议,又在博客《EasyNVR H5流媒体服务器方案架构设计之视频能力平台》中对整体的架构设计思路做了总结,做高内聚、低耦合的视频能力平台,不涉足业务部分!那么今天,我们来公开一下EasyNVR到底是如何实现这些功能的;
这两个修改之后再调取软件服务的任何接口都不需要鉴权了。(注:如果考虑到安全问题,可以不考虑第一种。)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/149882.html原文链接:https://javaforall.cn
继之前一篇科普文《如何使用RTSP推流组件EasyPusher将MP4文件推到EasyDarwin开源平台》发布后,有开发者提出疑问:假如需要显示视频直播时间,如何在推送的时候可以自定义在视频上叠加时间水印?
EasyDarwin是一款高性能开源RTSP流媒体服务器,基于Go语言研发,维护和优化:RTSP推模式转发、RTSP拉模式转发、录像、检索、回放、关键帧缓存、秒开画面、RESTful接口、Web后台管理、分布式负载均衡。EasyDarwin从最初的c++到后面的nodejs再到现在的golang,也在一步步地实现自身的语言兼容。
EasyNVR的使用者应该都清楚的了解到,EasyNVR一个强大的功能就是可以进行全平台的无插件直播。主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理可以满足无插件的全平台直播。经由EasyNVR处理会获取到RTMP、HLS、HTTP-FLV视频流,这就完美解决了插件直播的问题,只要终端设备支持H5就可以完美的播放EasyNVR分发出的视频流,这也是EasyNVR成为众多互联网直播用户首选的原因。
操作: H5列表显示; 接口:/api/v1/getchannels 返回: 1. 所有设备列表信息,在线&不在线 通道(包含快照信息) 2. 通道名称、通道号、通道快照、通道是否在线
熟悉我们的小伙伴都知道,当我们的RTSP/Onvif流媒体服务器与摄像头可以进行网络连接时,通过RTSP/Onvif流媒体服务器自带的Onvif探测即可实现Onvif摄像头的设备IP探测,成功后返回需要的流地址,实现摄像头的PTZ云台控制,PTZ控制包含转动、变焦等。
我先来说一下是什么东西,就是无人机在空中飞行。你需要用摄像头来判断飞行的方向以及现场环境,更重要的一点是回传的信息要推流到服务器或直播或记录。对于我们飞行器来说,可能是需要运行一些高性能的图形学算法,比如图像实时重建,一些物体的识别与追踪。那相应的部署端就可能体积巨大,带来的质量也不容小觑,飞行器对于质量又很敏感。所以就是提出了部署与执行相分离的方案。就是无人机上面只有高性能的图传设备,对于这些图形信息的处理就放在地面端。所以我们就需要一个中间来推流的软件系统。所以今天推荐的就是这样一款开源的国产系统:
据官网介绍,EasyDarwin拥有完整的源代码,可以帮助开发者更快更简单实现流媒体音视频产品功能,使用完全免费;下面就介绍一下EasyDarwin的使用过程。
TSINGSEE青犀视频开发的众多平台,大多可以根据用户的需求进行一些功能的定制,我们之前就在EasyNVR以及EasyDSS平台中为项目量身定制了多项功能,便捷了项目运维人员的操作。此外,为了进一步优化平台的体验感,我们也会在版本更新时增加一些新功能。
对于EasyDSS这类用于视频点播及直播的网页播放平台,其实我们可以感觉出来定制的需求很多,除了适应一些项目本身特性的需求之外,还有部分需求建立在了用户的开发和集成当中。
软件根目录会包含接口文档的,因此,本文主要是对一些特定接口的说明和接口实现功能的讲解以及部分demo的展示说明;
在此,基于自身对于EasyNVR接口的调用和一些用户的反馈的问题来对接口的调用进行一下说明:
视频融合云服务平台EasyCVR不需要对现有监控架构做调整,支持CDN推流,灵活适应原有架构;且按需灵活扩展、收缩资源,免去了插件安装、浏览器限定等条件,实现了无插件、多平台自由观看回放。此外,我们也会不定期对EasyCVR的原有功能进行调整及新增,以满足不同用户或项目的需求。
时代在不断进步,大众的审美在不断变化,同时对视频直播的要求也在升高。因此我们总会对我们的视频平台不断做升级,以适应大众的需要。在开发过程中我们也会不断做记录。
###方案实现简介:### 1.在内网部署EasyNVR,并且将局域网下的IPC设备统一接入到部署成功的EasyNVR中(这样就可以实现内网为插件访问实时的视频i信息); 2.在公网部署EasyDSS云平台;对于云平台的部署,软件包会有部署文档,不作详细 介绍,云平台支持分布式和集群的部署; 3.根据自身的业务需求通过接口来获取自身所需的视频数据来进行网页、微信、公网的直播。
只要涉及到视频流的输出,就一定会涉及到关键帧。TSINGSEE青犀视频EasyNVR视频安防服务平台内关键帧默认为1S一个,每秒可输出25个视频帧。关于关键帧比较详细的介绍,大家可以参考:流媒体服务器如何提取视频的关键帧。
EasyDarwin是目前比较热门的开源平台之一,上一篇我们给大家详细展示了搭建EasyDarwin环境前实现虚拟机Linux系统共享目录,本文我们将说明一下如何在Linux下搭建起nodejs环境。
在之前的博客中《基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控》,对EasyNVR所实现的功能我们已经有较多描述,这些也在方案地址:http://www.easynvr.com/, 演示地址:http://demo.easynvr.com:10800/#/index/icons中可以直观地看到功能点和适用的场景,在此就不多说了;
由于浏览器的安全限制的成都越来越高,尤其是设计到跨域的数据调用问题,限制要求也是越来越严格。而EasyNVR作为能力层,需要进行接口的调用,因此在调用接口进行token验证往往也是存在很多不方便的地方。
EasyNVR能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具有RTSP协议输出的设备接入到EasyNVR,EasyNVR能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发;
上一篇我们讲了TSINGSEE青犀视频平台EasyNVR内登陆鉴权的优化,通过优化登陆鉴权,我们可以抵御很多分发用户的攻击。在该问题优化完成后,我们模拟不法分子的攻击对EasyNVR的安全性进行了测试,EasyNVR已经达到了一个安全性很高的级别。
TSINGSEE青犀视频云边端架构中很多产品由于开发架构类似,因此功能的实现过程或者出现的问题等都有类似的地方。比如我们先测试了EasyGBS演示模式下视频播放的问题,随后就发现了EasyNVR视频平台也出现了同样类似的问题。
EasyScreenLive是一款简单、高效、稳定的集采集,编码,组播,推流和流媒体RTSP服务于一身的同屏功能组件,在大屏显示投屏,无纸化会议同屏演示,课堂同屏等,可以配合全屏显示,在很多项目中都能够实现项目推流的需求。
通过filter()函数来对需要检索的原始数据进行筛选; filter用于筛选出与指定表达式匹配的元素集合。 这个方法用于缩小匹配的范围。用逗号分隔多个表达式 filter(expr|obj|ele|fn)
一般在视频智能安防监控系统EasyNVR的标题都会显示在登录页或者在标题栏,同时EasyNVR的版本信息以及授权信息内也会存在EasyNVR的标识。目前登录页及在标题栏的字样可以自由修改,用户可根据自己的项目名称来对系统进行命名,但是对于授权信息的标识,只可通过隐藏来达到需求。
领取专属 10元无门槛券
手把手带您无忧上云