我已经尝试了一切并且失败了。它不可能更有线。我的情况是这样的:
A,B和C在同一个局域网中。
B通过发送RSTP请求从A请求RTP流,并获取流。 B上的VLC能够通过SDP文件播放流。现在,在C上播放相同的流:
将 SUCCESS 通过B上的RTP.NET lib接收来自A的流(通过让RTP.NET在localhost上的UDP端口上侦听)并转发它(通过设置RTP。 NET目的地)到C
将失败(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...)
我的目标是让VLC通过PJNATH将流从B转发到C来播放C上的流。
我几乎要抓住这个问题了。 而且我不明白为什么B和C上的VLC读取相同的SDP(除了要侦听的UDP端口之外都是相同的),接收相同的UDP数据但行为不同。
任何线索或建议都深表感谢。我得小睡一会儿。经过超过25个小时的努力就这么累了......