是否有可能中继 RTP 流?

是否有可能中继 RTP 流?

我有一个用例,其中我在 NAT 后面有一个摄像头(在无人机上,使用树莓派),一个具有公共 IP 的 VPS 服务器,以及一个在 NAT 后面的客户端,我想要在其中显示视频。

客户端正在运行一个名为 QGroundcontroll 的软件,该软件监听本地 UDP 端口(通常为 5000)上的 RTP 流。

如果我在 VPN 上运行客户端,这样它就会获得一个公共 IP,我就可以传输视频,但 VPN 引入了太多延迟。我可以通过在我的无人机上运行以下命令来演示这一点:

ffmpeg -f lavfi -re -i testsrc -pix_fmt yuv420p -c:v h264 -f rtp udp://my-client-vpn-fixed-ip:5000

这将给我一张漂亮(但略微扭曲)的测试图片。

我所做的另一项测试是直接在我的客户端上运行 testsrc,如下所示,也成功了:

ffmpeg -f lavfi -re -i testsrc -pix_fmt yuv420p -c:v h264 -f rtp udp://127.0.0.1:5000

所以现在我已经想出了通过我的 VPS 中继 rtp 流的想法。

这是我尝试过的:

在无人机上(NAT后面):

ffmpeg -f lavfi -re -i testsrc -pix_fmt yuv420p -c:v h264 -f rtp udp://my-virtual-private-server-fixed-ip:5600

在 VPS 上(固定 IP,运行 Debian,因此avconv):

avconv -i udp://127.0.0.1:5600 -map 0:0 -c copy -f rtp udp://127.0.0.1:5500

在客户端上(我的 Mac,位于 NAT 后面):

ffmpeg -i udp://my-virtual-private-server-fixed-ip:5500 -map 0:0 -c copy -f rtp udp://127.0.0.1:5000

似乎 和avconvffmpeg无法使用 检测或连接到 RTP 流-i udp://adress:port。这应该可行吗?如何实现?

谢谢!

相关内容