如何拉取公网RTSP/RTMP流在内网多客户端播放

好多情况下,一路RTSP或RTMP网络流过来后,想共享给更多局域网内的客户端播放,一般来说,有两种设计方案:

1. 拉取的RTSP或RTMP流,回调后的数据,转推RTMP服务器,内网部署一台RTMP服务器(如NGINX或者SRS)即可;

2. 拉取后的RTSP或RTMP流,回调后的数据,汇聚到内置RTSP服务模块,内网其他终端,只要拉RTSP流即可,无需再二次部署流媒体服务器。

方案一的好处在于,NGINX或者SRS等RTMP服务器,性能强劲,支持的并发更多,如果小并发的场景,用方案2比较合适,无需单独部署服务,即可实现技术方案,这就是我们要介绍的:内置RTSP网关模块。

内网RTSP网关模块功能

内网RTSP网关模块,系内置轻量级RTSP服务模块扩展,完成外部RTSP/RTMP数据拉取并注入到轻量级RTSP服务模块工作,多个内网客户端直接访问内网轻量级RTSP服务获取公网数据,无需部署单独的服务器,支持RTSP/RTMP H.265数据接入。

内置轻量级RTSP服务模块和内置RTSP网关模块共同点:

内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,数据汇聚到内置RTSP服务,对外提供可供拉流的RTSP URL,适用于内网环境下,对并发要求不高的场景,支持H.264/H.265,支持RTSP鉴权、单播、组播模式,考虑到单个服务承载能力,我们支持同时创建多个RTSP服务,并支持获取当前RTSP服务会话连接数。

内置轻量级RTSP服务模块和内置RTSP网关模块不同点:数据来源不同

1. 内置轻量级RTSP服务模块,数据源来自摄像头、屏幕、麦克风等编码前数据,或者本地编码后的对接数据;

2. 内置RTSP网关模块,实际上是RTSP/RTMP拉流模块+内置轻量级RTSP服务模块组合出来的。数据源来自RTSP或RTMP网络流,拉流模块完成编码后的音视频数据回调,然后,汇聚到内置轻量级RTSP服务模块。

整体设计方案如下:

?

下载Demo源码测试:

Github 下载Windows平台转发DEMO,对应( Windows平台多路RTSP|RTMP转RTMP推送模块SDK(C++) Demo工程),DEMO基于VS2013开发,如下图配置:

?

播放端,用SmartPlayer.exe 或者 VLC播放 即可。

原文地址:https://www.cnblogs.com/daniulivesdk/p/12253694.html

时间: 2024-10-07 15:08:33

如何拉取公网RTSP/RTMP流在内网多客户端播放的相关文章

rsync内网服务器 推送和拉取公网代码配置

一.    在 web(web安装rsync就行不需要配置rsyncd.conf) .web_bak 安装 rsync(web在/var/www/html/下更新信息,在wen_bak的/var/www/html/下跟着更新所有数据) IP:192.168.1.80是源服务器就是服务端(yum安装rsync就行,不需要配置),192.168.1.81是目的服务器就是客户端(yum安装rsync,还要配置/etc/rsyncd.conf). [[email protected] ~]# yum -

基于AES加密的RTSP/RTMP多路转发设计方案

很多开发者最近咨询我们,除了我们Windows推送端采集编码的音视频数据可以加密外,其他RTSP/RTMP流如果想更安全的转推到RTMP服务器或相应CDN改怎么办? 实际上,我们在做RTMP整体加密方案的时候已经考虑到这种情况,SmartStreamRelayDemo在拉取RTSP或RTMP流,转推RTMP的时候,可以选择加密视频,加密音频或音视频都加密,废话不多说,参看代码: bool nt_stream_relay_wrapper::StartPush(const std::string&

Android 如何直播RTMP流

在android上,视频/音频流直播是极少有人关注的一部分.每当我们讨论流媒体,RTMP(Real Time Messaging Protocol)是不可或缺的.RTMP是一个基本的视频/音频直播流协议,但是不幸的是Android标准的VideoView不支持RTMP的播放.因此,如果想在android上播放RTMP直播流,你必须使用支持RTMP协议的库.  库播放由 RTMP 协议传输的流媒体. Android Vitamio 库 Vitamio是一个android和ios上基于FFmpeg的

如何在IE浏览器播放RTSP或RTMP流(RTSP/RTMP OCX控件)

好多开发者一直苦恼于如何在IE浏览器环境下,构建低延迟的RTSP或RTMP播放,对于RTSP流来说,好多公司通常的做法是把RTSP转RTMP,然后分发到RTMP服务器,然后服务器转http-flv出来,浏览器直接播放http-flv流,亦或通过flash控件直接播放RTMP流,还有就是,转hls流出来,缺点是hls流延迟更大. 以上方案未尝不可,如果对播放体验和延迟要求更高,最简单的做法是直接在IE浏览器下加载activex控件,扩展了ocx控件,用于IE浏览器下的低延迟RTMP或RTSP播放.

PostgreSQL构建流复制拉取日志的起始位置在哪里

WaitForWALToBecomeAvailable: if (!InArchiveRecovery) currentSource = XLOG_FROM_PG_WAL; else if (currentSource == 0) currentSource = XLOG_FROM_ARCHIVE; for (;;){ int oldSource = currentSource; if (lastSourceFailed){ switch (currentSource){ case XLOG_F

视频转换 rtsp 流 转rtmp流播放(未完)

前言:之前的博客找的rtsp流地址,和按照red5 都是为写这篇文章铺垫. 这篇文章,选择 ffmepg命令 把rtsp流转为rtmp, 接着vlc插件测试下生成的rtmp流. 最后 已经配置好了red5 服务器,并测试成功看到画面之后: 下面就来利用red5 实时查看rtmp 视频流:总体思路是这样. 原文地址:https://www.cnblogs.com/yizhizhangBlog/p/9953675.html

海康API——获取监控点预览取流URL,获取的rtmp流不能播放

取rtmp流时,不要expand这一句 原文地址:https://www.cnblogs.com/nana-qiu/p/12120519.html

技术贴|vMix如何拉取NDI和输出NDI流?

NDI(Network Device Interface)即网络设备接口,是由美国NewTek公司开发的版权免费的标准,可使兼容的视频产品以高质量.低延迟.精确到帧的方式通讯.传输和接收广播级质量的视频,非常适合在现场直播制作环境中进行切换. 在本文档中,千视将介绍如何使用VMIX通过NDI在本地网络上输出内容和接收NDI视频流.一.VMIX拉取NDI流 打开VMIX软件,点击左下角"Add Input",即可显示可以添加是各种源,点击"NDI/Desktop Capture

[转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

[转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP 参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式.RTP 协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Tal