0

我正在尝试通过 RTSP(使用 ffmpeg)在我的 pod 和相机之间建立连接。

我的容器在本地和服务器中运行时可以建立连接。

但是,在 Kubernetes 中,看起来能够访问和识别摄像头服务器,但它无法初始化流。尝试连接时,我在容器上执行了 tcpdump,收到以下信息:

10:55:37.065954 IP **CAMERA_SERVER_IP** > **POD_NAME**: ICMP **CAMERA_SERVER_IP** udp port 36337 unreachable, length 44

10:55:37.066003 IP **CAMERA_SERVER_IP** > **POD_NAME**: ICMP **CAMERA_SERVER_IP** udp port 36336 unreachable, length 48

**CAMERA_SERVER_IP** -> 是摄像机服务器 IP 地址

**POD_NAME** -> 是我在 kubernetes 中的 pod 名称。

当我在本地尝试时,第一个 UDP 端口也失败了,但第二个可以建立连接和流。

我认为这与端口通信有关,但我对应该尝试或测试的内容有点迷茫。

谢谢!

更新*

其实我发现了一些奇怪的东西。

我再次尝试启动连接,并分析了来自tcpdumpnetstat -tulpn的日志。

在本地连接时,netstat识别出两个 UDP 连接的创建。并且tcpdump显示 ffmpeg 正在尝试使用来自 netstat 的相同 UDP 端口从服务器建立连接

但是,在 Kubernetes 的 pod 中,netstat 上打开的端口与 ffmpeg 尝试连接的端口不同(使用tcpdump验证)。

我认为这是错误,因为 ffmpeg 在尝试访问未打开的端口时立即失败。

4

1 回答 1

0

正如我在这里解释的那样,我实际上使用另一个 ffmpeg 服务器包装器进行了工作:https ://github.com/kubernetes/kubernetes/issues/94561

如果有人有类似的问题,特别是 Intelbras DVR 或使用 DAHUA API 的人,这可能会很有趣。

于 2020-09-07T14:40:26.017 回答