1.关于rtp的问题,就是rtsp在通过rtp发送数据包给客户端的时候,怎么设计代码?意思就是生产者和消费者的问题,sdk产生音视频(生产者),发送给客户端(消费者),怎么设计生产者和消费者模型,保证每个客户端拿到的数据是一样且每个客户端画面保持一致,保持一致的问题的来源是看了live555的代码,服务器维护客户端采用链表的形式,这样导致后连接的客户端播放的视频要比前面的要慢,特别是在rtp采用tcp的时候很明显
我也不太懂。 应该需要把延迟降低。延迟越低,每个客户端拿到的数据播放就越一致。 你是说,链表查找客户端 socked fd 比较慢?导致数据包没有及时 send 出去? 那采用 hash 表是不是快一点?
loken 若是tcp按照客户端连接的顺序一次发送给客户端,若是第一个客户端经常丢包导致需要重传,那么后续的客户端等待数据到来的时间就会很长,导致多个画面拉取同一个流媒体出现画面不一致的情况。大佬这种情况遇到过没
18571723560 TCP 重传是内核内部做的,不会阻塞影响其他的 socketd fd 的数据发送。例如服务器发送给客户端 A 的TCP数据包丢了。不会影响服务器给客户端 B 发送 TCP 数据包。
18571723560 Linux 的 API 函数 wirte() 可以往一个 TCP socket 发送数据,这个 write() 不是要等到客户端返回 ack 确认才能返回。write() 是把 TCP 数据丢进去内核就能返回了,怎么把这些数据发送到网络,是内核做了,丢了重传也是内核做的。