前言

视频会议、在线教育、直播娱乐还是远程监控,流媒体平台的性能和稳定性直接影响着用户体验。

给大家推荐一个基于 C# 开发的全功能流媒体管理控制接口平台。

项目介绍

AKStream是一个基于 C# 开发的全功能流媒体管理控制接口平台。

它集成了 GB28181、RTSP、RTMP、HTTP 等多种设备的推拉流控制、PTZ 控制、音视频文件录制管理、音视频文件裁剪合并等功能。

功能特点

  • 极低延时:支持画面秒开,延时极低(500 毫秒内,最低可达 100 毫秒)。
  • 标准 Restful WebAPI 接口:提供完善的标准 Restful WebAPI 接口,供其他语言调用。
  • GB28181 Sip 信令网关:重新编写 GB28181 Sip 信令网关,使其更加稳定可靠,并具备高可扩展性。

项目环境

  • 操作系统:支持 Linux、macOS、Windows,并可在 x86_64、ARM CPU 架构下运行。
  • 开发语言:使用 .NET 6 框架,采用 C# 语言编写。
  • 数据库支持:使用开源项目 freeSql 数据库类库,支持多种数据库类型(如 SQLite、MS SQL),建议使用 MySQL 5.7 及以上版本。

项目技术

  • 流媒体服务器:AKStream 集成了 ZLMediaKit 作为其流媒体服务器,并支持对 ZLMediaKit 的集群管理。
  • 编码格式支持:全面支持 H265/H264/AAC/G711/OPUS 等音视频编码格式。
  • 流转换:支持 GB28181 的 Rtp 推流、内置流代理器和 ffmpeg 流代理器的多种形式的拉流,以及几乎全协议的互相转换(如 RTSP/RTMP/HLS/HTTP-FLV 等),以供第三方调用播放。

AKStream 结构

AKStream是一个完善的接口平台,提供了几乎所有有关于NVR管理能力的API接口,有网友为AKStream实现了配套的UI,但仅仅只是Demo,是用来告诉你怎么调用AKStream相关接口,学习AKStream思想的一个工具,要真和自己业务相结合,需要自己实现前端UI和业务逻辑功能。

AKStreamWebUI

基于AKStream流媒体管理控制接口的Web管理端。

流媒体服务采用 ZLMediaKit

https://github.com/xia-chu/ZLMediaKit

接口服务采用了AKStream

https://github.com/chatop2020/AKStream

强烈推荐 AKStream 生态圈中的开源 Web 管理平台

基于 React 的纯前端 AKStream Web UI

我们很高兴地向大家推荐 AKStream 生态圈中的又一个开源 Web 管理平台 —— AKStreamNVR

这款基于 React 的纯前端框架,提供了非常简单的部署和运行方式,极大地简化了流媒体管理的复杂度。

部署简单:一键部署,快速启动。

运行简便:易于操作,无需复杂配置。

https://gitee.com/sscboshi/AKStreamNVR

https://github.com/langmansh/AKStreamNVR)

基于 .NET 5 和 Vue 2 的 AKStream Web UI

另外,我们还推荐另一款专为 AKStream 量身定制的开源 Web 管理平台 —— AKStreamUI。这款基于 .NET 5 和 Vue 2 的平台同样提供了出色的管理和控制功能。

现代化框架:使用 .NET 5 和 Vue 2,确保高性能和稳定性。

易于集成:无缝对接 AKStream 的各项功能。

https://github.com/langmansh/AKStreamUI

https://gitee.com/sscboshi/AKStreamUI

这两个平台不仅提供了强大的功能,还极大地简化了用户的操作体验。无论是基于 React 的 AKStreamNVR 还是基于 .NET 5 和 Vue 2 的 AKStreamUI,都将为流媒体管理带来全新的体验。

项目部署

1、新建数据库

创建新的数据库。

还原 Document\DatabaseScript\AKStreamWebUI.sql 文件中的数据库脚本。

2、修改配置文件

修改 YiSha.Admin.Web\appsettings.json 文件中的 AKStream 接口地址和数据库连接字符串。

3、同步数据库

将 AKStream 的数据库配置与本项目保持一致。(也可以将 AKStream 的 videochannels 表复制到本项目的数据库中。)

项目效果

设备管理

设备列表:通过 AKStream 服务自动添加 SIP 设备到数据库,并可查看设备列表信息。

设备操作:支持设备的添加、编辑、删除和激活功能。

视频预览

在线预览:支持设备的在线视频预览功能。

流媒体服务管理

服务控制:提供流媒体服务的启动、重启、停止功能,并支持查看服务详情和热加载配置文件。

项目地址

GitHub:https://github.com/chatop2020/AKStream

Gitee:https://gitee.com/chatop2020/AKStream

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种习惯,欢迎大家留言学习!

.NET 全功能流媒体管理控制接口平台的更多相关文章

  1. EasyPlayer开源流媒体移动端播放器推出RTSP-RTMP-HTTP-HLS全功能Pro版

    EasyPlayerPro介绍 Android EasyPlayerPro专业版全功能播放器,是由EasyDarwin开源团队维护的一款支持RTSP.RTMP.HTTP.HLS多种流媒体协议的播放器版 ...

  2. 116-基于5VLX110T FPGA FMC接口功能验证6U CPCI平台 光纤PCIe卡

    基于5VLX110T FPGA FMC接口功能验证6U CPCI平台 一.板卡概述 本板卡是Xilinx公司芯片V5系列芯片设计信号处理板卡.由一片Xilinx公司的XC5VLX110T-1FF113 ...

  3. APICloud首款全功能集成开发工具重磅发布,彰显云端一体理念

    近日,APICloud重磅推出首款云端一体的全功能集成开发工具--APICloud Studio 2.为了更深入了解这款开发工具的特性及优势,APICloud CTO 邹达针对几个核心问题做出了解答. ...

  4. Swift 全功能的绘图板开发

    要做一个全功能的绘图板,至少要支持以下这些功能: 支持铅笔绘图(画点) 支持画直线 支持一些简单的图形(矩形.圆形等) 做一个真正的橡皮擦 能设置画笔的粗细 能设置画笔的颜色 能设置背景色或者背景图 ...

  5. 第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能

    第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—用Django实现搜索的自动补全功能 elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.e ...

  6. vue中实现中,自动补全功能

    知识点:利用vue的基本语法实现,自动补全功能 参考博客:https://www.jb51.net/article/136282.htm 效果:在文本框中,输入相关名称,调用后台接口,将数据填充到下拉 ...

  7. 四十七 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能

    elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.elastic.co/guide/en/elasticsearch/reference/current/se ...

  8. 全功能Python测试框架:pytest

    python通用测试框架大多数人用的是unittest+HTMLTestRunner,这段时间看到了pytest文档,发现这个框架和丰富的plugins很好用,所以来学习下pytest.   imag ...

  9. 架构设计--用户端全http參数接口具体说明v1

    1. 用户端全http參数接口具体说明v1.doc 1 2. change histor 1 3. 接口通用參数说明 1 4. 函数注冊接口(规划中) 3 5. 用户权限模块 3 5.1. 用户注冊接 ...

  10. 重大升级!灵雀云发布全栈云原生开放平台ACP 3.0

    云原生技术的发展正在改变全球软件业的格局,随着云原生技术生态体系的日趋完善,灵雀云的云原生平台也进入了成熟阶段.近日,灵雀云发布重大产品升级,推出全栈云原生开放平台ACP 3.0.作为面向企业级用户的 ...

随机推荐

  1. spring手动事务控制

    在项目开发中需要用到手动事务进行控制.现说下遇到的问题以及解决方案: 如果程序需要使用嵌套事务,则需要在配置文件中添加一个配置属性,如下: <bean id="transactionM ...

  2. Fiddler远程调试js

    使用Fiddler调试本地js 在我们前端开发的日常工作中,发现服务器上某个css/javascript文件有问题,需要修改,那真是家常便饭.通常,我们需要将文件进行修改,然后重新发布再验证,这样就很 ...

  3. electron-builder打包配置说明

    发现问题 通过vue建立的项目使用electron-builder打包(不会eletron打包vue项目的看这里)出exe后发现名字就直接是项目文件夹的名字,但此时想自定义汉字名称,通过尝试直接修改p ...

  4. 【YashanDB知识库】表收集统计信息默认阈值引起SQL执行效率差

    [问题分类]性能优化 [关键字]统计信息,阈值,执行计划 [问题描述]表新增87w数据自动收集统计信息任务没有启动导致SQL执行计划变差 [问题原因分析] CUS_REGISTER_READ 数据总量 ...

  5. Spark - Pandas UDF

    spark 本身对 dataframe 的操作支持没有像pandas 那样强大,所有我们可以把spark dataframe 转化成 pandas dataframe 来利用pandas datafr ...

  6. 小tips:CSS实现0.5px的边框的两种方式

    方式一 <style> .border { width: 200px; height: 200px; position: relative; } .border::before { con ...

  7. 原生JavaScript实现可旋转立方体效果基础示例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. webpack系列-webpack内置插件ProvidePlugin的应用(定义全局变量,例如vue引入jquery全局使用)

    vue+webpack使用ProvidePlugin插件引入jquery 先看一个实例,webpack+vue引入jquery并全局使用,这儿指通过配置,不是在静态页面使用script标签直接引入jq ...

  9. ASP.NET Core – 操作 Uri 和 Query

    前言 以前就有写过了 Asp.net core 学习笔记 (操作 URL 和 Query), 但很乱, 这篇作为整理. Uri 介绍 结构: [Scheme]://[Host]:[Port][/Pat ...

  10. 以太坊Rollup方案之 arbitrum(2)

    上一期简单介绍了一下rollup的一些基本内容以及aritrun交易的执行流程,这一期将介绍一下aritrum的核心技术 -- 交互式单步证明 这一期主要涉及到的是arbitrum的验证节点 arbi ...