Windows电脑如何启动RTSP服务实现本地摄像头数据共享

news2024/9/28 17:27:28

技术背景

提起Windows共享本地摄像头,好多人想到的是通过ffmepg或vlc串流到服务器,实际上,用轻量级RTSP服务更简单,本文就介绍下,如何用大牛直播SDK的Windows轻量级RTSP服务,采集摄像头,生成本地RTSP串流,供其他终端访问。

技术实现

启动大牛直播SDK的SmartPublisherDemo.exe,先选择摄像头,配置分辨率、帧率码率,“采集摄像头”-->选择需要共享的摄像头,并选择分辨率和帧率,如果需要采集麦克风或扬声器,勾选即可。

点击“配置查看Rtsp服务”按钮,选择一个端口,点“启动服务”,如需启动多端口服务(对应多个拉流url),点“确定”,返回上级界面:

点“发布Rtsp流”,播放地址会回调生成可拉流的rtsp的url。

把rtsp url拷贝到播放器进行播放:

如果需要查看本地摄像头数据,或比较整体延迟,可点击“预览”按钮,实现本地摄像头数据预览。

总结

之前说过多次,轻量级RTSP服务的优势是,无需用户单独部署RTSP或者RTMP服务,即可实现本地的音视频数据(如摄像头、屏幕、窗体、麦克风、扬声器),编码后,汇聚到内置RTSP服务,然后,对外提供可供拉流的RTSP URL。

轻量级RTSP服务,仅限于内网环境下使用,如模块名字,适用于并发不大的场景,支持H.264/H.265,支持RTSP鉴权、单播、组播模式,考虑到单个服务承载能力,也支持同时创建多个RTSP服务,并支持获取当前RTSP服务会话连接数。

除了可以采集编码前数据外,还可以对接编码后的H.264、H.265、AAC数据,也可以配合拉流模块,拉取外部RTSP或RTMP流,汇聚到轻量级RTSP服务。

总体技术架构设计如下:

Windows平台轻量级RTSP服务功能设计如下:

  • 音频编码:AAC;
  • 视频编码:H.264、H.265;
  • 协议类型:RTSP;
  • [音视频]支持纯音频/纯视频/音视频推送;
  • [屏幕/摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;
  • [屏幕]支持屏幕裁剪,根据帧率和推送分辨率,自动推荐码流;
  • [摄像头]支持摄像头选择、分辨率设置、帧率设置;
  • [摄像头]摄像头支持水平反转、垂直反转、0° 90° 180° 270°旋转;
  • [屏幕]支持DXGI采集设置、启/停用Aero;
  • [音频]采集麦克风;
  • [音频]采集扬声器;
  • [预览]支持推送端实时预览;
  • 支持实时静音、取消静音;
  • 屏幕和摄像头合成/多层合成;
  • 支持窗口采集(一般不建议使用);
  • 支持实时动态水印;
  • 支持实时快照;
  • 支持降噪处理、自动增益控制、VAD端点检测;
  • 支持扬声器和麦克风混音;
  • 支持外部编码前音视频数据对接;
  • 支持外部编码后音视频数据对接;
  • 支持特定机型硬编码;
  • 支持实时音量调节;
  • 支持扩展录像模块;
  • 支持RTSP端口设置;
  • 支持RTSP鉴权用户名、密码设置;
  • 支持获取当前RTSP服务会话连接数。
  • 支持Unity接口;
  • 支持H.264扩展SEI发送模块;
  • 支持Windows7及以上版本。

如需在现有工程,集成轻量级RTSP服务,Windows平台,大牛直播SDK提供了C++/C#两套接口,对外提供32/64位debug/release库,C++和C#接口一一对应,C#接口比C++接口增加前缀NT_PB_。

C++头文件:

  • [类型定义]nt_type_define.h
  • [Log定义]smart_log.h
  • [Log定义]smart_log_define.h
  • [音视频类型定义]nt_common_media_define.h
  • [base code定义]nt_base_code_define.h
  • [publisher接口]nt_smart_publisher_define.h
  • [publisher接口]nt_smart_publisher_sdk.h

C#头文件:

  • [Log定义]smart_log.cs
  • [Log定义]smart_log_define.cs
  • [音视频类型定义]nt_common_media_define.cs
  • [base code定义]nt_base_code_define.cs
  • [publisher接口]nt_smart_publisher_define.cs
  • [publisher参数定义]nt_smart_publisher_sdk.cs

相关Lib:

  • SmartLog.dll
  • SmartLog.lib
  • SmartPublisherSDK.dll
  • SmartPublisherSDK.lib
  • NTSmartPublisherWinRTSDK.dll
  • avcodec-56.dll
  • avdevice-56.dll
  • avfilter-5.dll
  • avformat-56.dll
  • avutil-54.dll
  • postproc-53.dll
  • swresample-1.dll
  • swscale-3.dll

轻量级RTSP服务模块,可满足安防监控、内网无纸化、智慧教室等内网场景,通过接口即可实现和自身业务逻辑对接,无需单独部署流媒体服务,使用更便捷,除Windows平台外,Linux(x64_64架构|aarch64)、Android、iOS平台也都覆盖,感兴趣的开发者,可以单独跟我沟通。

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

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

相关文章

记录使用el-form的resetFields时遇到的表单数据回显失败的问题,去除nextTick解决

首先简单介绍一下resetFields的基础作用 element-plus官网el-form介绍 本案例中实现点击每行的编辑按钮时,弹出弹窗和表单 由于设置了表单校验,如图,表单内容不符合设定的校验规则时会有提示 如果仅仅这样就会出现问题,下次打…

分布式搜索引擎ES--Elasticsearch集群

1.Elasticsearch集群的概念 分片机制:每个索引都可以被分片 索引my_doc只有一个主分片;索引shop有三个主分片;索引shop2有5个主分片;(参考前面案例) 每个主分片都包含索引的数据,由于目前是单机,所以副分片是没有的&a…

PyQt ERROR:ModuleNotFoundError: No module named ‘matplotlib‘

Solution:打开cmd输入指令下载malplotlib pip install matplotlib

【Docker】CentOS7环境下的安装

环境展示 安装 配置仓库 sudo yum install -y yum-utils # docker官方key文件下载 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 建议使用阿里云key文件下载 sudo yum-config-manager --add-repo https://mirrors.aliyun.…

KubeSphere介绍及一键安装k8s

KubeSphere介绍 官网地址:https://kubesphere.io/zh/ KubeSphere愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成&#xff0…

【Android】数据存储方案——文件存储、SharedPreferences、SQLite数据库用法总结

文章目录 文件存储存储到文件读取文件 SharedPreferences存储存储获取SharedPreferences对象Context 类的 getSharedPreferences() 方法Activity 类的 getPreferences() 方法PreferenceManager 类中的 getDefaultSharedPreferences() 方法 示例 读取记住密码的功能 SQLite数据库…

【解决方案】华普微汽车智能钥匙解决方案

一、方案概述 1.什么是被动式无钥匙进入 "被动式无钥匙进入"(Passive Keyless Entry)是一种用于车辆、建筑物或其他设施的访问控制系统。它利用无线射频技术自动判断用户是否接近,并进行身份识别以执行开锁或落锁动作&#xff0c…

【Unity2D 2022:UI】TextMeshPro组件无法显示中文

在Unity中创建了一个预制体Card,上面挂载了一些Text Mesh Pro组件用来显示卡牌信息。但是在输入文字后,发现无法显示中文: 解决方法如下: 一、导入字体文件(ttf格式)和常用字字集(txt格式&…

leetcode日记(51)不同路径Ⅱ

和上一道题(无障碍物的最短路径)很像,但事实上比上一题多了优化方法 根据上一题改的代码如下,添加了对障碍物的判定,如果有障碍物则将数组值设为0。 class Solution { public:int uniquePathsWithObstacles(vector&l…

理发店收银管理系统 python、sqlite3、pyqt5

给姐姐家店写的一个,功能比较简单,结合gpt 功能包含:次卡和充值卡,可以查剩余次数、以及查找消费记录 后期会把sqlite3转到mysql,换成springboot的一个项目 1.使用技术: Python、sqlite3、PyQt5 2.页面 …

快手可灵视频生成大模型全方位测评

快手视频生成大模型“可灵”(Kling),是全球首个真正用户可用的视频生成大模型,自面世以来,凭借其无与伦比的视频生成效果,在全球范围内赢得了用户的热烈追捧与高度评价。截至目前,申请体验其内测…

如何使用C#自制一个Windows安装包

原文链接:https://www.cnblogs.com/zhaotianff/p/17387496.html 以前都在用InstallShield制作安装包,基本需求是能满足的,但也有一些缺点: 1、界面不能完全定制 2、不能直接调用代码里的功能 平常使用一些其它软件,…

ETL数据集成丨将PostgreSQL数据库数据实时同步至PostgreSQL

前言 我们在进行数据集成、实时数据同步中,经常会出现在同一个数据库中做数据同步和复制、实时分析和报告、负载均衡和高可用性等场景,这次我们以PostgreSQL为例,通过ETLCloud工具,进行同数据库中数据实时同步的步骤应该如何设置…

Anconda 快速常用命令简洁版

目的:简单清楚的使用基本的conda 命令 可能需求 查看项目中的虚拟环境及依赖是否满足需求操作新环境来满足项目或者论文的实现 Anconda 常用命令 conda 查看基础命令1. 进入Anaconda 环境2. 查看版本3.查看有哪些虚拟环境4.激活虚拟环境5. 进入虚拟环境查看6. 退出…

shopee虾皮 java后端 一面面经 整体感觉不难

面试总结:总体不难,算法题脑抽了只过了一半,面试官点出了问题说时间到了,反问一点点,感觉五五开,许愿一个二面 1.Java中的锁机制,什么是可重入锁 Java中的机制主要包括 synchronized关键字 Loc…

微信小程序之计算器

在日常生活中,计算器是人们广泛使用的工具,可以帮助我们快速且方便地计算金额、成本、利润等。下面将会讲解如何开发一个“计算器”微信小程序。 一、开发思路 1、界面和功能 “计算器”微信小程序的页面效果如图所示 在计算器中可以进行整数和小数的…

NET8部署Kestrel服务HTTPS深入解读TLS协议之Certificate证书

Certificate证书 Certificate称为数字证书。数字证书是一种证明身份的电子凭证,它包含一个公钥和一些身份信息,用于验证数字签名和加密通信。数字证书在网络通信、电子签名、认证授权等场景中都有广泛应用。其特征如下: 由权威机构颁发&…

Minos 多主机分布式 docker-compose 集群部署

参考 docker-compose搭建多主机分布式minio - 会bk的鱼 - 博客园 (cnblogs.com) Minio 是个基于 Golang 编写的开源对象存储套件,虽然轻量,却拥有着不错的性能 中文地址:MinIO | 用于AI的S3 & Kubernetes原生对象存储 官网地址&#xf…

数字看板:跨行业需求下的创新与升级

在当今这个数据驱动的时代,数字看板作为信息展示与决策支持的重要工具,正逐步渗透到各行各业之中。从智慧城市到智能制造,从金融分析到医疗健康,数字看板以其直观、动态、高效的特点,成为了连接数据与决策者的桥梁。本…

C# 将字符串数组以树型结构化

例如字符串数组: string[] arr { "1","3-4-5-6-7", "2","3-4","3-4-5","3-4-5-6", "3", "6", "4", "6-1", "6-2", "5", "6-1-1&…