使用c# .net core开发国标gb28181 sip +流媒体服务完成视频监控实例教程 亲身完美体验过程...

     目前使用C# .net core 来实现国标gb28181标准的摄像头播放、ptz云台控制、视频回放等视频监控功能,项目可运行于linux/docker/.net core环境,也是当前非常罕有的能做到毫秒级国标gb28181公网视频传送案例,也是少有的能同时具有播放、ptz云台控制、视频回放功能的完整开源sip的项目。

使用方案:sip(GB28181.Solution c# .net core) +  流媒体服务器(srs/ZLMediaKit)

使用场景:直播、社区视频监控、视频AI分析、等需要用到把摄像头从内外转到外网访问使用的场景

     全网也很难找得到完整教程,我2017年就开始买摄像头回来研究过一段时间,后来无果,最近因公司需要使用,再经过半年多的资料收集和不断的学习试错,找到正确的道路,免得大家走弯路。为大家分享,然后对c#的开发者带来惊喜,也共同为c#的发展作出贡献!

一、我的实现准备:

1、在淘宝购买一个ces服务器 centos系统作为流媒体测试机,低配置2核2M的,1200多一年,按月的话差不多300一个月

2、购设备:需要看清楚支持gb28181的,一个海康云台摄像机700多块

3、调试其间在本机windows调试,以后可以部署到linux,下载目前我参与的c#开源项目

https://github.com/GB28181/GB28181.Solution

用于作为sip server服务,可以进行对摄像机进行通过信令进行相关操作 ,编译环境vs2019(开源项目里,文档中的微信,可以进入该项目开源群,一起为这个项目做贡献,建议加入)

4、在centos服务器下载srs4.0,github地址: 

https://github.com/winlinvip/srs  (develop分支)

5、下载sip抓包工具 wireshark  

下载地址:https://www.wireshark.org/#download

附带wireshark使用过程中可能会发生的内存占用大,卡机的解决办法

https://blog.csdn.net/qq_16005627/article/details/105603395

 

二、实现步骤

通过GB28181.Solution配置好srs的服务器地址和端口,项目的wintool运行起来,点直播放视频,在srs服务器上可以看到rtp流已经推上来,可以实现rmtp、webrtc(低延时实测2秒内)、flv、hls(m3u8)输出

然后通过vlc进行播放

1、打开GB28181.WinTool项目,配置 Config/gb28181.xml 主要配置好以下几个

SIP服务器ID 34020000002000000001

本机IP 127.0.0.1 (或我本机IP192.168.197.108)

本机服务端口 5061

2、对应在摄像机的配置如下:

 

3、在srs的github中查看srs的运行办法,运行srs,以下为我整理的简单易懂的指令

------------------------------------------

Step1:拉git代码,切换到开发分支

git clone https://gitee.com/winlinvip/srs.oschina.git srs &&

cd srs/trunk &&

git remote set-url origin https://github.com/ossrs/srs.git &&

git pull

Step2:切换到开发分支

git checkout develop &&

./configure --with-gb28181 &&

make clean && make

------------------------------------------------

以上srs安装完毕,修改两个配置

打开trunk/conf/push.gb28181.conf

auto_create_channel   on;//原来off改为on

 host       47.XX.XXX.118;//原来$CANDIDATE改为你的服务器ip

----------------------------------------------

运行

./objs/srs -c conf/push.gb28181.conf

4、然后启动项目GB28181.WinTool 

 

 

5、到这一步,推流成功了,我们打开srs的测试http://ossrs.net/players/srs_gb28181.html 接口界面 ,可以实现rmtp、webrtc(低延时实测1秒内)、flv、hls(m3u8)输出,输入srs服务器IP进行播放

6、非常罕有的能做到毫秒级延迟国标gb28181公网视频传送案例

上面有相关操作步骤,肚饿了,本文章在后续我还有很多内容需要再补充和细化更新的,更多了解可以通过https://github.com/GB28181/GB28181.Solution项目,介绍内容中的“微信”加入开源群

微信扫描二维码,添加好友,进入微信讨论群(注明:GB28181+公司+姓名):

觉得好的同学,记得点个赞!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Java基础]字节流读数据

代码如下: package InstreamPack;import java.io.FileInputStream; import java.io.IOException;public class FileInputStreamDemo01 {public static void main(String[] args) throws IOException {FileInputStream fis new FileInputStream("D:\\JavaDemo\\java.txt&…

丁可以组什么词_有哪些量词可以用来描述生意经?

分别有:本, 一(本)生意经。笔, 一(笔)生意经。次,一(次)生意量词用名量词:表示事物的计量单位。基本定义:通常用来表示人、事物或动作的数量单位的词,叫做量词。量词 lingc,与代表可…

硬核技能k8s初体验

,Kubernetes 是一个软件系统,使你在数以万计的电脑节点上运行软件时就像所有节点是以单个大节点一样, 它将底层基础设施抽象,这样做同时简化了应用开发、部署,以及对开发和运维团队的管理。Kubernetes集群架构Kubernet…

线上问题排查流程

问题排查 针对各种常见的线上问题,梳理下排查思路。 业务问题 线上问题大多数时候都是业务问题引发的问题,当线上环境绝大多数请求都是正常,当有部分或者某一个用户有问题,此时怎么针对性的排查在当前微服务体系下,…

springboot超详细教程_CG原画插画教程:超详细线稿教程

艺学绘小编收集整理了超详细线稿教程今天我们从起稿开始1. 用圆表示出人物的头部、胸腔和骨盆,分别画出头部的十字线和身体的中线,表示头和身体的朝向。用“火柴棍”表示四肢的动作形态。▼2. 根据圆和十字线画出脸的轮廓,再在身体骨架上画出…

Asp.Net.Core WebApi 版本控制

前言在后端Api的开发过程中,无法避免的会遇到接口迭代的过程,如何保证新老接口的共存和接口的向前的兼容呢,这时候就需要对Api进行版本的控制,那如何优雅的控制Api的版本呢?开始Microsoft.AspNetCore.Mvc.Versioning 是一个微软官方推出的一个用于管理Api版本的包,配…

[Java基础]字节缓冲流

字节缓冲输出流: package InstreamPack;import java.io.BufferedOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets;public class BufferStreamDemo01 {public s…

matlab 判断鼠标按下,Matlab:如何通过使用回调来获取当前鼠标在点击位置

I googled near and far, but couldnt get an example of how you associate a callback to the click event in matlab. Can someone show me an example?解决方案Define the WindowButtonDownFcn of your figure callback using the set command and an callbackfunction ta…

Python 推导,内含,迭代器

Python语法–推导或内含 list comprehension操作可以将一个序列类型的数据集推导出另一个序列类型的数据集: 典型的情况: for i in aiterator利用推导获取一个平方数列表 square [i * i for i in range(1, 11)]以上情况同如下循环 for i in range(…

用asp.net core结合fastdfs打造分布式文件存储系统

最近被安排开发文件存储微服务,要求是能够通过配置来无缝切换我们公司内部研发的文件存储系统,FastDFS,MongDb GridFS,阿里云OSS,腾讯云OSS等。根据任务紧急度暂时先完成了通过配置来无缝切换内部文件系统以及FastDFS。…

仅仅有人物没背景的图片怎么弄_五分钟写作课 人物篇 人物的出场是个关键时刻...

我看过不少故事,人物出场了,说了几句话,然后离开,读者知道他是某人的爸爸,学校的老师,某个企业的老板,除了这些定为之外,他自己是怎样的性格?怎样的形象呢?没…

数据结构与算法一篇帮助你吃下KMP算法

模式匹配 什么是模式匹配,我们用一个案例来说明: 当S “s1,s2,s3,s4 …sn” T“t1,t2,t3,t4 … tn” 在字符串S中寻找T字符串的过程就是模式匹配的过程,T就说模式串,S是主串 实现方案: 暴力破解,逐字符判…

在远程 CSM 课程中体验线上工作坊

4.11 日周六,我参与了由 Bob 老师组织讲授的一期 Certified Scrum Master(即 CSM)课程,从中收获颇丰,特记于此,与君分享。CSM 通常是现场授课,但本次由于疫情的限制导致人们不得不尽可能减少外出…

python中的max_row_Openpyxl max_row和max_column错误地报告了一个较大的figu

我的查询是处理作为Im开发的解析脚本的一部分的函数。我试图编写一个python函数来查找与excel中匹配值对应的列号。excel是用openpyxl动态创建的,它有第一行(来自第三列)标题,每个标题跨4列合并为一行。在我的后续函数中,我正在分析一些要添加…

数据结构与算法--力扣108题将有序数组转换为二叉搜索树

力扣108提将有序数组转换为二叉搜索树 近一年都比较关注算法相关的知识,也刷了不少题,之前的文章中大多也是算法相关的文章,但是感觉每次遇到树相关的题型都不能应对自如,因此还是有必要在相关知识上下功夫,因此有此次…

C#验证IP是否为局域网地址的三种方法

C#验证IP是否为局域网地址的三种方法前一阵子有【广州.NET群】的客户问起这个问题,说他们需要验证客户输入的网站是否为局域网。其实局域网的 IP并没有确定的定义,只要是局域网中,即可设置为任何一个 IP。但确实存在一个 内网保留地址的定义&…