缓冲区死锁阻止了通过 UDP 进行的 RTSP 流式传输错误

缓冲区死锁阻止了通过 UDP 进行的 RTSP 流式传输错误

我在打开 VPN 连接时无法通过 UDP 查看 RTSP 流。我们的项目是将 360 度 IP 摄像头集成到统一系统中。我们希望获得 UDP 流而不是 TCP 以减少延迟。但是,我们在通过 UDP 进行流式传输时遇到了以下问题。

  1. 在本地网络中

    • TCP 和 UDP 连接均正常。我可以通过这两种协议观看 RTSP 流。
  2. 在 openVPN

    • 我可以从客户端(Unity PC)获取 TCP 和 UDP 数据包
    • 但我只能通过 TCP 观看 RTSP 流。
    • 当我尝试通过 UDP 查看 RTSP 流时,出现“缓冲区死锁阻止错误”。VLC 播放视频,但里面没有内容。
  3. 检查 wireshark。

    • RTSP 的 TCP 和 UDP 默认端口号都是 554,我将其设置为 554。
    • TCP 源端口为 554。
    • UDP 源端口(RTSP 服务器)在两种情况下(本地网络和通过 VPN)都不是 554 而是随机数。
    • 我在vlc中将url设置为“rtsp://192.168.1.30:554”。

RTSP OVER TCP - 来自 wireshark

RTSP OVER UDP - 来自 wireshark

4:问题。

  • 在本地网络中,即使 UDP 源端口不是 554,而是随机端口。也可以通过 UDP 观看流媒体。这对我来说很奇怪,因为我用 554 端口设置了 url。

  • 在 VPN 连接中,UDP 源端口不是 554,导致错误(缓冲区死锁被阻止)。我认为 VPN 配置不是问题,因为我可以接收 TCP 和 UDP 数据包。

  • 我从 vlc 论坛上查了一下“缓冲区死锁阻止错误”的含义。”这意味着解码器需要更多的数据才能输出数据,但与此同时,流量控制需要解码器输出一些数据才能允许更多的数据输入。为了打破僵局,VLC 将关闭流量控制并允许数据输入” 我认为问题出在我们家庭网络带宽上。我在我的家庭网络中设置了两个子网进行 VPN 测试。如果在本地网络中流媒体没有问题,那么在 VPN 连接中流媒体也应该可以正常工作。

我需要你对这个问题的建议。谨致问候

圣水

相关内容