Is RTP streaming over TCP implemented?

About encoding, codec settings, muxers and filter usage
StCyr
Blank Cone
Blank Cone
Posts: 12
Joined: 23 Mar 2018 16:32

Is RTP streaming over TCP implemented?

Postby StCyr » 24 Apr 2018 14:52

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,

StCyr
Blank Cone
Blank Cone
Posts: 12
Joined: 23 Mar 2018 16:32

Re: Is RTP streaming over TCP implemented?

Postby StCyr » 24 Apr 2018 17:17

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

Rémi Denis-Courmont
Developer
Developer
Posts: 15267
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: Is RTP streaming over TCP implemented?

Postby Rémi Denis-Courmont » 24 Apr 2018 19:05

RFC4571 assumes SDP Offer-Answer, so it is not applicable to RTSP.
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded

StCyr
Blank Cone
Blank Cone
Posts: 12
Joined: 23 Mar 2018 16:32

Re: Is RTP streaming over TCP implemented?

Postby StCyr » 24 Apr 2018 22:11

Ok, should I use RTP then?

Rémi Denis-Courmont
Developer
Developer
Posts: 15267
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: Is RTP streaming over TCP implemented?

Postby Rémi Denis-Courmont » 25 Apr 2018 18:13

Your question makes no sense to me.
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded

StCyr
Blank Cone
Blank Cone
Posts: 12
Joined: 23 Mar 2018 16:32

Re: Is RTP streaming over TCP implemented?

Postby StCyr » 27 Apr 2018 14:39

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


Return to “VLC stream-output (sout)”

Who is online

Users browsing this forum: Bing [Bot] and 40 guests