[FFmpeg-devel] [PATCH] Send NAT punching packets when starting to read an RTP/UDP stream

Ronald S. Bultje rsbultje
Tue Feb 16 23:22:01 CET 2010


Hi,

On Thu, Feb 11, 2010 at 3:31 PM, Martin Storsj? <martin at martin.st> wrote:
> On Thu, 11 Feb 2010, Luca Abeni wrote:
>> But maybe the comment before rtp_send_punch_packets() can be expanded
>> to clarify that this is not a standard thing (BTW, does anyone know
>> if there is any standard solution for RTSP/RTP through NATs?) and that
>> it works if the source port is not remapped.
>
> Updated patch attached, with the documentation additions that you and
> Ronald suggested.
>
> I documented that this is used for RDT too, as Ronald suggested, but I
> haven't gotten it tested. Is there any public RTSP/RDT stream that I could
> test it against?

Oh, I noticed this doesn't work with WMS because of the
braindead-retarded way in which WMS servers set up RTP (see
surrounding code in make_setup_request()), you need:

+            /* Try to initialize the connection state in a
+             * potential NAT router by sending dummy packets.
+             * RTP/RTCP dummy packets are used for RDT, too.
+             */
+            if (!(rt->server_type == RTSP_SERVER_WMS && i > 1))
+                rtp_send_punch_packets(rtsp_st->rtp_handle);

Ronald



More information about the ffmpeg-devel mailing list