Hi Ross, I have an Axis ONVIF camera here (pretty new model: P5635-E Mk II) which gives me a RTP session timeout with the current live555 version if I try to stream over RTP/UDP. After some Wireshark debugging, I have found out that the problem is located in this code (RTSPClient.cpp):
// Hack: To increase the likelihood of UDP packets from the server reaching us, // if we're behind a NAT, send a few 'dummy' UDP packets to the server now. // (We do this on both our RTP port and our RTCP port.) Groupsock* gs1 = NULL; Groupsock* gs2 = NULL; if (subsession.rtpSource() != NULL) gs1 = subsession.rtpSource()->RTPgs(); if (subsession.rtcpInstance() != NULL) gs2 = subsession.rtcpInstance()->RTCPgs(); u_int32_t const dummy = 0xFEEDFACE; for (unsigned i = 0; i < numDummyPackets; ++i) { if (gs1 != NULL) gs1->output(envir(), (unsigned char*)&dummy, sizeof dummy); if (gs2 != NULL) gs2->output(envir(), (unsigned char*)&dummy, sizeof dummy); } If I comment out the sending of dummy UDP packets over the RTCP port, everything works fine (in fact, in a very old live555 version the dummy packets were send over the RTP port only). So would you say, that this a problem of the RTSP server on the camera or is this hack in the live555 outdated and needs to be replaced with a better solution? Do I have to expect other problems other than the one described in your comment if I comment out the sending of the dummy packets over RTCP? Best regards, Andrej Nichelmann _______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel