为什么要设计轻量级RTSP服务

轻量级RTSP服务解决的核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务

轻量级RTSP服务可满足内网无纸化/电子教室等内网超低延迟的低并发需求,避免让用户配置单独的服务器,大牛直播SDK在推送端发布了轻量级RTSP服务模块。

设计架构图

实现本地的音视频数据(如摄像头、麦克风),编码后,汇聚到内置RTSP服务,对外提供可供拉流的RTSP URL,轻量级RTSP服务,适用于内网环境下,对并发要求不高的场景,支持H.264/H.265,支持RTSP鉴权、单播、组播模式,考虑到单个服务承载能力,我们支持同时创建多个RTSP服务,并支持获取当前RTSP服务会话连接数。

简单来说,你可以把它看成IPC(网络摄像机)。

轻量级RTSP服务设计支持功能

  • [基础功能]支持常规的屏幕、摄像机、音频采集处理等;
  • [音频格式]AAC;
  • [视频格式]H.264、H.265;
  • [协议类型]RTSP;
  • [传输模式]支持单播组播模式;
  • [端口设置]支持RTSP端口设置;
  • [鉴权设置]支持RTSP鉴权用户名、密码设置;
  • [获取session连接数]支持获取当前RTSP服务会话连接数;
  • [多服务支持]支持同时创建多个内置RTSP服务;
  • [H.265支持]Windows内置rtsp server支持发布H.265视频(64位库);
  • [RTSP url回调]支持设置后的rtsp url通过event回调到上层。

轻量级RTSP服务调用接口设计

如需要下载相关demo,可以到 github 下载参考(Windows平台RTMP|RTSP推送SDK、内置RTSP服务SDK、录像SDK(C++) Demo工程本地下载)

     /*+++rtsp server操作接口+++*//** 创建一个rtsp server * pRtspServerHandle: rtsp server 句柄* reserve:保留参数传0* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *OpenRtspServer)(NT_PHANDLE pRtspServerHandle, NT_INT32 reserve);/** 设置rtsp server 监听端口, 在StartRtspServer之前必须要设置端口* rtsp_server_handle: rtsp server 句柄* port: 端口号,可以设置为554,或者是1024到65535之间,其他值返回失败* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *SetRtspServerPort)(NT_HANDLE rtsp_server_handle, NT_INT32 port);/** 设置rtsp server 鉴权用户名和密码, 这个可以不设置,只有需要鉴权的再设置* rtsp_server_handle: rtsp server 句柄* user_name: 用户名,必须是英文* password:密码,必须是英文* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *SetRtspServerUserNamePassword)(NT_HANDLE rtsp_server_handle, NT_PCSTR user_name, NT_PCSTR password);/** 设置rtsp server 组播, 如果server设置成组播就不能单播,组播和单播只能选一个, 一般来说单播网络设备支持的好,wifi组播很多路由器不支持* rtsp_server_handle: rtsp server 句柄* is_multicast: 是否组播, 1为组播, 0为单播, 其他值接口返回错误, 默认是单播* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *SetRtspServerMulticast)(NT_HANDLE rtsp_server_handle, NT_INT32 is_multicast);/** 设置rtsp server 组播组播地址 * rtsp_server_handle: rtsp server 句柄* multicast_address: 组播地址* 如果设置的不是组播地址, 将返回错误* 组播地址范围说明: [224.0.0.0, 224.0.0.255] 为组播预留地址, 不能设置. 可设置范围为[224.0.1.0, 239.255.255.255], 其中SSM地址范围为[232.0.0.0, 232.255.255.255]* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *SetRtspServerMulticastAddress)(NT_HANDLE rtsp_server_handle, NT_PCSTR multicast_address);/** 获取rtsp server当前的客户会话数, 这个接口必须在StartRtspServer之后再调用* rtsp_server_handle: rtsp server 句柄* session_numbers: 会话数* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *GetRtspServerClientSessionNumbers)(NT_HANDLE rtsp_server_handle, NT_INT32* session_numbers);/** 启动rtsp server* rtsp_server_handle: rtsp server 句柄* reserve: 保留参数传0* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *StartRtspServer)(NT_HANDLE rtsp_server_handle, NT_INT32 reserve);/** 停止rtsp server* rtsp_server_handle: rtsp server 句柄* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *StopRtspServer)(NT_HANDLE rtsp_server_handle);/** 关闭rtsp server* 调用这个接口之后rtsp_server_handle失效,* 成功返回 NT_ERC_OK*/NT_UINT32 (NT_API *CloseRtspServer)(NT_HANDLE rtsp_server_handle);/*---rtsp server操作接口---*/

如何操作内置RTSP服务

以Windows平台为例:

1. 在选择好需要推送出去的音视频数据类型、调整好码率后,点击“配置查看RTSP服务”:

2. 根据需求,可以启动一路或者多路服务,每路服务,并可配置用户名密码信息(可选)。启动服务后,点击“确定”退出设置页面;

3. 配置流名称(可自定义),默认是 stream1;

4. 发布RTSP流:

5. 发布后,播放地址列表里面,会显示当前发布的url,拷贝其中一个或多个,用大牛直播直播播放器SDK,分别播放即可;

6.服务器负载查看:再次点击“配置查看RTSP服务”,即可看到每个服务连接的会话数;

7. 如需停止服务,点击页面的“停止RTSP流”即可;

8. 如需启动RTSP服务的同时,还需要把数据推到其他RTMP服务,输入推送的RTMP url,点击“推送”即可。

经测试,整体延迟在200-300毫秒区间。

轻量级RTSP服务存在的意义相关推荐

  1. rtsp有没有好使_轻量级RTSP服务和内置RTSP网关有什么不同?

    好多开发者疑惑,什么是内置RTSP网关,和轻量级RTSP服务又有什么区别和联系?本文就以上问题,做个简单的介绍: 轻量级RTSP服务 为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的 ...

  2. Windows平台RTMP推送|轻量级RTSP服务实现本地摄像头|屏幕|叠加数据预览

    背景 大家在做Windows平台RTMP推送或轻量级RTSP服务的时候,不管是采集屏幕还是采集摄像头,亦或屏幕摄像头的叠加模式,总会有这样的诉求,采集到的数据,希望能本地看看具体采集的数据或者图像实际 ...

  3. 如何用轻量级RTSP服务本地生成RTSP测试URL

    最近发现好多开发者都在搜索可用的RTSP测试URL,目前公网实际可测试的RTSP URL非常少,即便是可用,分辨率和网络也非常差,不适合长期测试. 针对此,我们的建议是最好直接网上买个海康或大华的摄像 ...

  4. 轻量级RTSP服务和内置RTSP网关的区别和联系

    好多开发者疑惑,什么是内置RTSP网关,和轻量级RTSP服务又有什么区别和联系?本文就以上问题,做个简单的介绍: 轻量级RTSP服务 为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的 ...

  5. Android平台RTMP推流或轻量级RTSP服务(摄像头或同屏)编码前数据接入类型总结

    很多开发者在做Android平台RTMP推流或轻量级RTSP服务(摄像头或同屏)时,总感觉接口不够用,以大牛直播SDK为例 (Github) 我们来总结下,我们常规需要支持的编码前音视频数据有哪些类型 ...

  6. 轻量级RTSP服务模块和RTSP推流模块适用场景区别

    好多开发者一直搞不清轻量级RTSP服务SDK和RTSP推流SDK的区别(Github下载地址),以下是相关区别: 1. 轻量级RTSP服务模块:轻量级RTSP服务解决的核心痛点是避免用户或者开发者单独 ...

  7. 轻量级RTSP服务SDK

    为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,大牛直播SDK在推送端发布了轻量级RTSP服务SDK: 简单来说,之前推送端SDK支持的功能,内置轻量级RTSP服务SDK后, ...

  8. [轻量级RTSP服务]Linux|麒麟操作系统下实现屏幕|系统声音采集

    背景 随着国产操作系统的推进,传统行业对Linux平台的呼声和需求越来越大,之前几年,我们发布了Linux平台运营商级的RTSP转RTMP推送模块.RTMP推送模块和RTSP.RTMP播放模块,前段时 ...

  9. RTSP服务器之————rtsp-server(轻量级RTSP / RTP流媒体服务器)

    github:https://github.com/revmischa/rtsp-server 轻量级RTSP / RTP流媒体服务器

最新文章

  1. 高中计算机考试编程题,2020年高中信息技术模块测试卷5(算法与程序设计) 信息技术试题(PDF版无答案)...
  2. insightface mxnet训练horovod版
  3. matlab负荷预测,负荷预测matlab
  4. JAVA自动补全插件
  5. k8s存储卷(empyDir;hostPath;nfs)
  6. LiveVideoStack主编观察04 /
  7. 沉浸式全息本是什么_“全息投影”走进健身房,打造沉浸式健身体验室,想来试试吗?...
  8. Bootstrap中的列表的使用
  9. java优秀算法河内之塔_河内塔的Java程序
  10. MySQL Binlog增量同步工具go-mysql-transfer实现详解
  11. Java—抽象类和接口的区别
  12. 超详细的Git提交规范引入指南
  13. 如果一年只能两次旅游,你会选择什么季节去什么地方?
  14. 要尊重员工的正当权益
  15. 日志分析工具Awstats实战之Nginx篇-分析结果静态化
  16. 咖说丨破碎的互联网下,加密技术正在恢复数据主权!
  17. linux界面程序崩溃,Linux 下安装anjuta程序运行崩溃 只能用glade做界面
  18. 量化交易实战【1】自己搭建一个的股票交易回测框架,并通过均线择时策略进行回测
  19. Php打印连续纸,针式打印机打印241*297MM连续纸时总按A4纸长度多走一部分白纸?
  20. 如何修改植物大战僵尸的关卡和金币

热门文章

  1. python爬去中国天气网_python爬取中国天气网并展示最低温度
  2. Java包hashCode()方法及示例
  3. inputstream示例_Java InputStream close()方法与示例
  4. JavaScript中带有示例的Math.round()方法
  5. python中acosh_acosh()函数以及C ++中的示例
  6. 阿里为什么推荐使用LongAdder,而不是volatile?
  7. 一道题决定去留:为什么synchronized无法禁止指令重排,却能保证有序性?
  8. 艾诺迪亚4一次性完美刷经验刷金钱方法图解[亲测无需闪退游戏]
  9. Windows服务的快速搭建与调试(C#图解)
  10. STM32——直流电机PI调速