如果已转发UDP(RTP)数据包,则VLC不播放RTP视频流

时间:2014-08-06 20:35:55

标签: udp vlc rtp forwarding

我已经尝试了一切并且失败了。它不可能更有线。我的情况是这样的:

  1. rtsp流媒体服务器。 (服务器A)
  2. 转发服务器(服务器B)
  3. PJNATH Lib和RTP.NET Lib
  4. 最终客户(客户C)
  5. A,B和C在同一个局域网中。

    B通过发送RSTP请求从A请求RTP流,并获取流。 B上的VLC能够通过SDP文件播放流。现在,在C上播放相同的流:

    1. SUCCESS 通过B上的RTP.NET lib接收来自A的流(通过让RTP.NET在localhost上的UDP端口上侦听)并转发它(通过设置RTP。 NET目的地)到C

    2. 如果在B和C之间使用PJNATH,
    3. 失败(C会将收到的UDP数据包从PJNATH recvdata回调发送到VLC而不修改位)。通过窃听来自wireshark的数据包,我确定以下事实:

      • PJNATH确定B和C在同一个局域网中并直接从B向C发送数据

      • 随机拾取UDP分组表明A-> B的内容与C->(C上的VLC)完全相同。此内容 CAN 可以在B上播放,但 CAN NOT 可以使用相同版本的VLC在C上播放。

      • C上的VLC能够接收数据但不显示任何内容。该日志坚持"解码器缓冲在0毫秒内完成"

        main debug: Buffering 80%
        main debug: Buffering 83%
        main debug: Buffering 86%
        main debug: Buffering 91%
        main debug: Buffering 95%
        main debug: Stream buffering done (1002 ms in 1195 ms)
        main debug: Decoder buffering done in 0 ms
        (nothing more...)
        
    4. 我的目标是让VLC通过PJNATH将流从B转发到C来播放C上的流。

      我几乎要抓住这个问题了。 而且我不明白为什么B和C上的VLC读取相同的SDP(除了要侦听的UDP端口之外都是相同的),接收相同的UDP数据但行为不同。

      任何线索或建议都深表感谢。我得小睡一会儿。经过超过25个小时的努力就这么累了......

0 个答案:

没有答案