内网环境下,为了满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,好多开发者希望有RTSP的技术方案,用于小并发场景,特别是在组网环境好的有线环境下,使用RTSP服务配合组播,是也是好多开发者考量的因素之一。

鉴于此,大牛直播SDK(Github)发布了轻量级RTSP服务,废话不多说,先上架构图:

轻量级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回调到上层。

单播不再赘述,这里重点介绍下我们的组播技术方案:

组播解决的主要痛点是服务器部署和带宽占用问题,一般来说,内网电子教室/无纸化/实时同屏场景用RTMP推送+RTMP服务器,然后其他端从服务器拉取RTMP流,这个方案的劣势在于,如果单独部署服务器,需要额外的机器,增加了成本开销,如果教师端机器作为服务器,网络和机器性能双重压力下,负荷过重。

通过组播技术方案,只要网络设备支持组播组网,轻松实现多并发的同屏/摄像头直播场景。

废话不多说,先上图:

大牛直播SDK组播方案开启如下:

1. 设置需要共享的视音频,设置码率后,点击“配置查看Rtsp服务”,选中“组播”和“SSM”选项,点击启动服务即可:

2. 确定后,返回主界面,点击“发布Rtsp流”,拷贝回调的RTSP url,用我们的SmartPlayer.exe或移动端播放器,播放即可。

注意:需要内网网络设备支持组播功能。

经长时间测试,毫秒级延迟,完全满足内网同屏技术指标,更重要的是,在组播同时,还可以同步支持内外网RTMP推送、RTSP推送和实时录像功能。

内置RTSP服务核心接口(以Windows C++ 接口为例:nt_smart_publisher_sdk.h):

       /*+++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组播技术方案思考相关推荐

  1. 面向内网无纸化会议/智慧教室/实时同屏,组播还是RTMP?

    一.背景 为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,我们研发了轻量级RTSP服务开发包. 单播不再赘述,这里重点介绍下我们的组播技术方案: 组播解决的主要痛点是服务器部 ...

  2. Android对接实现内网无纸化会议|智慧教室|实时同屏功能

    背景 本文主要讲的是基于Android平台实现RTMP的技术方案设计,基础架构图如下: 组网注意事项 1. 组网:无线组网,需要好的AP模块才能撑得住大的并发流量,推送端到AP,最好是有线网链接: 2 ...

  3. 网工笔记(三):IP Multicast组播技术

    IP多路组播技术,英文为IP Multicast,  就是英文文档里经常说到的BUM报文里的大M.这是一门特别的技术,它从2层到3层协议mac地址到IP地址都自成一体.很多网工同行只在IE考试里学习了 ...

  4. 2022-11-01 网工进阶(三十四) IP组播协议(PIM)-模式概述、组播分发树的分类、PIM路由表项、PIM-DM工作原理(组播分发树的形成、配置举例)

    PIM协议介绍 PIM(Protocol Independent Multicast)协议无关组播.协议无关指的是与单播路由协议无关,即PIM不需要维护专门的单播路由信息.目前常用版本是PIMv2,P ...

  5. 2022-11- 10 网工进阶(三十六)IP组播协议--IGMP(v1、v2、v3)、IGMP snooping、IGMP SSM Mapping、IGMP Proxy(代理)

    感知组播组成员 组播通信中,组播网络需要将组播数据发送给特定的组播组成员,因此组播网络需要知道组成员的位置与组成员所加的组播组. 组播网络感知组播组成员的方法有手工静态配置和动态感知. 手工静态配置 ...

  6. 2022-11-06 网工进阶(三十五)IP组播协议--PIM-SM工作原理(组播分发树的形成、ASM、SSM)

    PIM-DM的局限性 中大型组播网络中由于网络较大,如果依然使用PIM-DM会遇到诸多问题: 1 使用"扩散-剪枝"方式需要全网扩散组播报文,对于网络有一定冲击. 2 所有组播路由 ...

  7. python程序设计基础刘艳网课_智慧职教APPPython程序设计基础(九江职业技术学院)题目答案...

    [单选] 笛卡尔强调把上帝可能骗人作为论证普遍怀疑的程序中的一个环节,以此来避免引起与当时的()冲突. [单选] 笛卡尔把<论世界>的三个附录整理成<谈谈方法>发表,这三个附录 ...

  8. 无纸化会议私有化部署需要哪些设备?

    无纸化会议私有化部署,对于军工,政企,金融,法院等高层研讨会是有一定必要性.内网无纸化会议系统保密性好,效率高.连通宝内网无纸化会议系统服务器既可以部署至单位内网也可以放到互联网上,是软硬一体的无纸化 ...

  9. 基于智慧教室|无纸化会议的新选择:RTMP解决方案

    基于智慧教室或是会议的技术方案,一般主要是涉及到屏幕采集和推送,整体技术方案这块,一般建议走RTMP,说到这里,好人开发者提到,市面上也有RTSP的技术方案,甚至RTSP组播方案,这块,大牛直播SDK ...

最新文章

  1. HDU 1863 畅通工程 最小生成树
  2. 铁乐学Python_day12_作业
  3. QT的QLineSeries类的使用
  4. 如何改变cmd的编码格式?
  5. DateTimePicker 日期时间选择器报错 Cannot read property ‘getHours‘ of undefined, 无法选中`[__ob_: observer__]`时做判断
  6. reduceByKey和groupByKey区别与用法
  7. 2 JVM 运行机制
  8. python webdriver 等待网页已登录_python基础编程:python+selenium实现163邮箱自动登陆的方法...
  9. js实战代码系列—带你玩jQuery带你飞
  10. C++设计模式-中介者模式
  11. 安川g7接线端子图_图解西门子S7-300plc模拟量模块接线方法
  12. elastic-job 新手指南官网指南
  13. 谷歌大脑阿尔伯塔联合发表:离线强化学习的优化视角【附代码】
  14. 计算机应用基础任务式教程 素材,计算机应用基础任务化教程教学大纲
  15. php smarty 配置,php Smarty详细配置
  16. mac下使用自带的svn客户端上传、下载文件到服务端
  17. java电池soc算法实现,电池SOC高精度估算算法
  18. among us私服搭建
  19. Java 17全新特性,快到模糊
  20. 电脑版微信怎么双开、多开 超级简单

热门文章

  1. python语句int_python中的int函数
  2. 如何快速掌握python包_如何快速掌握一个python模块?
  3. windows找不到文件gpedit.msc_此电脑右键管理提示windows找不到文件的解决方法
  4. .net 怎么循环得到数组里的值_HashMap 底层实现、加载因子、容量值及死循环
  5. 启动activemq_「Java」 - SpringBoot amp; ActiveMQ
  6. java oql_深入理解java虚拟机(八):java内存分析工具-MAT和OQL
  7. Linux中磁盘分区的管理
  8. 链接服务器访问接口返回了消息没有活动事务,因为链接服务器 SQLEHR 的 OLE DB 访问接口 SQLNCLI10 无法启动分布式事务。...
  9. java删除javaee_JavaEE--集合--删除List中指定元素
  10. 语言中的petchar运用_还在担心你家孩子发音、语言问题?12个表现、3个预防是重点...