我对这个问题的一般性表示歉意。我试过很多东西,但似乎什么都没有用。我有服务器?(让我们称它为服务器A),它驻留在一个局域网中,其中也有一个IP网络摄像头。那个摄像头一直在提供地址的RTSP提要.比方说..。rtsp://192.168.1.50:554/cam.sdp。照相机不能进入外部世界(它必须留在局域网中,因此只能访问服务器A,不能访问服务器B),但是服务器A可以访问。遗憾的是,服务器A没有公共IP,所以我无法从世界上任何地方访问服务器A。服务器A可以出去,但没有人能进入服务器A.(这是个被宠坏的孩子.(小时候玩具太多了)
现在,在前面提到的外部世界中还有另一个服务器(服务器B,原版),它是一个普通的web服务器,具有公共IP和所有的功能。那台服务器让人们接触到它(不是被宠坏的,非常好.摆好桌子洗碗..。这类东西)。服务器A和服务器B都是我的计算机,正在运行Ubuntu12.04和我设计的一些Python应用程序(Server实际上正在运行Django,但我不认为这太相关了)。我的意思是,我可以控制两台服务器上发生的事情。我可以安装/卸载软件包,我可以打开端口,关闭端口.任何需要的东西(如果我想的话,我甚至可以格式化它们,尽管我不认为这会有多大帮助.或者是..。谁知道?)
_____________ _____________
----------- | | | |
__ | | | | | |
| \| WebCam |================| Server A |===========| INTERNET |===========| Server B |
|__/| | ->/cam.sdp <--| |----------------- > --------------> * |
| | |___________| |___________|
-----------问题是:我如何抓取带有服务器A的RTSP流,将其转储到服务器B的指定套接字上,并打开它(使用能够理解RTSP提要的程序,如VLC)?
我想我需要RTSP代理之类的东西,也许?但我真的不知道从哪里开始。
任何暗示,链接..。我会很感激的。
提前谢谢你
发布于 2013-12-22 00:52:39
我不知道RTSP,但它似乎是标准的TCP协议.尝试在服务器A上运行:
ssh -g -R 554:192.168.1.50:554 server_B_hostname这将打开服务器B上的公共端口554,并从A的角度将其转发到192.168.1.50:554。
有些服务器配置sshd以拒绝ssh -g -R转发(理由不详)。如果可以,应该在服务器B上检查/etc/ssh/sshd_config并添加AllowTcpForwarding yes。
发布于 2020-05-16 05:49:13
RTSP是一种控制协议,通常运行在554端口上,但视频流是使用SDP协商的端口,这意味着在握手时,RTP传输(UDP)的端口将被确定,而对于每一种传输,端口号会有所不同。因此,您可能需要转发一系列端口或将传输端口修正为固定值。
发布于 2022-01-12 01:04:51
检查
https://github.com/aler9/rtsp-simple-server
这将使您能够设置已损坏的brat服务器,以获取ipcam流并将其推送到服务器B。
您需要能够在服务器A上运行这个程序,最好也可以在serverB上运行,这样才能从serverA接收发布的流。你可以使用加密,tls等等..。
https://stackoverflow.com/questions/13755281
复制相似问题