Page 1 of 1

Is RTP streaming over TCP implemented?

Posted: 24 Apr 2018 14:52
by StCyr
Hello,

I've the following RTP/UDP streaming working:

Code: Select all

/usr/bin/cvlc --quiet screen:// :screen-fps=25 --input-slave=pulse://alsa_output.pci-0000_00_03.0.hdmi-stereo.monitor --sout '#transcode{vfilter=canvas{width=852,height=480},vcodec=h264,venc=x264{profile=baseline,level=3,preset=ultrafast,tune=zerolatency,keyint=50},acodec=aac,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://:9090/kodi.sdp}'
If I try to use the 'proto=tcp' option of the 'dst' module (as follow):

Code: Select all

/usr/bin/cvlc --quiet screen:// :screen-fps=25 --input-slave=pulse://alsa_output.pci-0000_00_03.0.hdmi-stereo.monitor --sout '#transcode{vfilter=canvas{width=852,height=480},vcodec=h264,venc=x264{profile=baseline,level=3,preset=ultrafast,tune=zerolatency,keyint=50},acodec=aac,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://:9090/kodi.sdp,proto=tcp}'
It doesn't work (nb: I've updated the streaming client to use tcp as rtsp transport).

When I looked at the traffic, I saw that vlc replied with a server error after the client sent the "SETUP" command. And, iirc, the client was requesting a 'TCP/RTP/AVP' transport in its SETUP request.

Also, at page https://wiki.videolan.org/Documentation ... mmand_Line it is writen:
accept TCP connections at the specified IP address (dst=) and use RFC 4571 RTP framing, not implemented yet,
Hence my question: is RTP streaming over TCP now implemented in VLC?

Best regards,

Re: Is RTP streaming over TCP implemented?

Posted: 24 Apr 2018 17:17
by StCyr
Bon ben, j'ai raison quand je pense que ce n'est pas implémenté?

extrait de vlc/modules/stream_out/rtp.c:

/* Transport protocol */
p_sys->proto = IPPROTO_UDP;
psz = var_GetNonEmptyString (p_stream, SOUT_CFG_PREFIX"proto");

if ((psz == NULL) || !strcasecmp (psz, "udp"))
(void)0; /* default */
else
if (!strcasecmp (psz, "dccp"))
{
p_sys->proto = IPPROTO_DCCP;
p_sys->rtcp_mux = true; /* Force RTP/RTCP mux */
}
#if 0
else
if (!strcasecmp (psz, "sctp"))
{
p_sys->proto = IPPROTO_TCP;
p_sys->rtcp_mux = true; /* Force RTP/RTCP mux */
}
#endif
>>>#if 0
>>> else
>>> if (!strcasecmp (psz, "tcp"))
>>> {
>>> p_sys->proto = IPPROTO_TCP;
>>> p_sys->rtcp_mux = true; /* Force RTP/RTCP mux */
>>> }
>>>#endif

Re: Is RTP streaming over TCP implemented?

Posted: 24 Apr 2018 19:05
by Rémi Denis-Courmont
RFC4571 assumes SDP Offer-Answer, so it is not applicable to RTSP.

Re: Is RTP streaming over TCP implemented?

Posted: 24 Apr 2018 22:11
by StCyr
Ok, should I use RTP then?

Re: Is RTP streaming over TCP implemented?

Posted: 25 Apr 2018 18:13
by Rémi Denis-Courmont
Your question makes no sense to me.

Re: Is RTP streaming over TCP implemented?

Posted: 27 Apr 2018 14:39
by StCyr
Hi Rémi,

that's probably because the doc. doesn't make sense to me....

The doc says:
proto=
This selects the transport protocol to carry RTP packets.
Possible values include:
dccp, accept incoming DCCP connections at the specified IP address (dst=),
sctp, accept SCTP connections at the specified IP address (dst=), not implemented yet,
tcp, accept TCP connections at the specified IP address (dst=) and use RFC 4571 RTP framing, not implemented yet,
udp, send UDP packets to the specified destination (either unicast or multicast); this is the default value,
udplite, send UDP-Lite packets to the specified destination (either unicast or multicast).

This options uses UDP-Lite instead of UDP as the transport protocol for RTP and RTCP packets.
And, I'm actually trying to understand if the part "tcp, accept TCP connections at the specified IP address (dst=) and use RFC 4571 RTP framing" is now implemented