SRT是时下最热门的互联网传输协议,具备低延时、稳定可靠传输的优势特性,可广泛应用于远程制作、远程监看、异地互动等需要互联网远程传输场景。
SRT 是点对点传输协议,由于需要穿透互联网,所以至少需要有一端具备公网 IP 地址。将有公网 IP 地址的一端设备设置为 listener 模式,另一端采用 caller 模式向对端发起连接请求,待 SRT 连接建立成功之后,则可以实时传输视频流了。
下面千视以普通组网环境的 A、B 两个站点为例,从站点 A的kiloview编码器以 SRT 方式实时将视频流传输至站点 B 的kiloview解码器,介绍如何实现公网传输方案。
**方案一:宽带运营商 PPPoE模式获取公网IP地址/端口映射**
宽带运营商可以提供公网IP 地址给路由器(4G上网是不能提供公网 IP 地址的),公网 IP 地址配置于路由器的 outside 接口,在路由器对解码器 IP/端口做一对一映射。组网示意图如下:
1)设置路由器的 WAN 口以 PPPoE 模式获取公网 IP 地址
![](https://s4.51cto.com/images/blog/202005/09/cb69882352b8ae8764124eb418000e89.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
注:想要路由器接口直接获取到公网 IP 地址,需要宽带运营商配合。
一是需要将宽带光猫设置为透传模式,将 PPPoE 拨号的功能放置在路由器来执行,以便可以在路由器来配置公网/私网地址端口映射。
二是需要运营商有条件提供公网 IP 地址给用户(通常电信宽带拥有更多的公网 IP 地址资源。由于申请运营商的固定公网 IP 地址费用太高,一般能够有公网 IP 地址即可,虽然这个公网 IP 地址是变化的,但是一定时间内它是能够保持不变的,除非设备重启才会发生变化)。
一般情况下,如果 WAN 口获取到的是 10.x.x.x、172.16.x.x--172.32.x.x、192.168.x.x 网段的 IP 地址, 这是属于私网 IP 地址范畴,用户不能直接穿越互联网来访问它的。
2)设置路由器的端口映射(Port Forward)
如下图所示,将外网地址的 UDP33222 端口,映射到内网 192.168.4.101(解码器 IP 地址,并保证这个 IP 地址与路由器是互通的)地址 UDP33222 端口。
即,当对端设备采用 SRT 方式向本路由器公网 IP 地址的 33222 端口发起连接时,路由器会直接将该数据流转发给解码器 192.168.4.101 设备进行响应和回复。(SRT 是以UDP 协议传输的,因此端口映射必须配置为 UDP 协议)
注:如果宽带运营商可以提供多个公网 IP 地址(一般需要专线模式,PPPoE 拨号方式上网只能获得一个公网 IP 地址),一个用于路由器上网,一个单独给解码器使用,则可以将公网 IP 直接配置在解码器的网口,这样就可以免去端口映射的配置。
方案二:采用FRP方式做公网地址/端口映射
在云端购买一台服务器(云服务器可以提供公网 IP 地址),采用 FRP 方式做公网地址和私网地址的端口映射,当对端设备以 SRT 方式连接云服务器的公网 IP/端口,FRP 服务即可将数据流转发至内网解码器设备。
![](https://s4.51cto.com/images/blog/202005/09/1d1420db45d81b835ed37e4e0369894e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
方案三:购买IP盒子获取公网IP地址
购买 IP 盒子及其宽带服务,IP 盒子可以在内网获取到公网 IP 地址,将解码器与之相连,并做好设备相应配置,即可实现 IP 盒子的公网地址与解码器私网 IP 地址的一一对应关系。这样,当对端设备以 SRT 方式连接 IP 盒子的公网 IP/端口时,IP 盒子即可将数据流转发至内网解码器设备。
方案四:其他工具获取公网IP地址
另外,还有花生壳、Ngrok、n2n、lanproxy 等等工具可以使用,热爱学习的请自行研究。
来源:oschina
链接:https://my.oschina.net/u/4286896/blog/4275290