我们正在研发一种C语言应用程序,它是一个简单的RTSP/RTP客户端,用于记录许多摄像机的视频。我们为建立RTP会话并开始记录使用recvfrom()调用捕获的数据包的每个摄像机启动一个pthread。 单个摄像头单个线程可以很好地记录一天内没有问题。通过多台IP摄像机捕获视频包
但是用更多的相机进行测试,大约25(25 pthreads),记录到文件很好,像15至20分钟,然后录制就停止。应用程序仍然继续运行。它已经过了一个半月,我们一直在尝试各种实现,但似乎没有任何帮助。请提供建议。
我们正在使用的CentOS 5平台
这听起来像是一个死锁问题: 1)剂量它与少25线程发生? 2)什么时候发生? – Alon 2010-06-14 17:14:21
你在做什么平台? 你使用哪个数据包捕获库? – pcent 2010-06-14 17:17:23
这并不是很多信息。我会建议一个替代实现,其中有一个线程使用select()或poll()来处理所有摄像机来控制流。 – atlpeg 2010-06-14 18:06:26