From VideoLAN Wiki
< Documentation:Modules
Revision as of 05:02, 25 April 2019 by DoesItReallyMatter (talk | contribs) (→‎Crypto: New section)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Module: rtp
Type Access
First VLC version 0.7.0
Last VLC version -
Operating system(s) all
Description Real-Time Protocol (RTP) input
Shortcut(s) dccp, rtptcp, udplite

The only supported format for rtp-dynamic-pt is theora.


The module supports RTP with encryption (SRTP) through srtp.c using libgcrypt (gcrypt manual). There are no sub-modules or other shortcuts (in particular, srtp will not work).

Hexadecimal strings are base-16 numbers. Each character is one of 0123456789abcdef (case-insensitive).


Functions of interest (defined in srtp.c and srtp.h) lie in rtp.c between:

#ifdef HAVE_SRTP



In summary:

  • SRTP sessions are one-way and re-keyed periodically
  • To set or reset the master key and master salt for an SRTP session int srtp_setkey (srtp_session_t *s, const void *key, size_t keylen, const void *salt, size_t saltlen) is called
  • The setkey values are currently hard-coded as AES in counter mode authenticated with HMAC-SHA1; the salt with PRF-AES-CM. There are code comments suggesting this be improved
  • There are explanations (for hackers) in the form of code comments in the files


  • rtcp-port <integer [0 .. 65535]> : RTCP packets will be received on this transport protocol port. If zero, multiplexed RTP/RTCP is used default value: 0
  • srtp-key <string> : RTP packets will be authenticated and deciphered with this Secure RTP master shared secret key. This must be a 32-character-long hexadecimal string
  • srtp-salt <string> : Secure RTP requires a (non-secret) master salt value. This must be a 28-character-long hexadecimal string
  • rtp-max-src <integer [1 .. 255]> : How many distinct active RTP sources are allowed at a time default value: 1
  • rtp-timeout <integer> : How long to wait (in seconds) for any packet before a source is expired default value: 5
  • rtp-max-dropout <integer [0 .. 32767]> : RTP packets will be discarded if they are too much ahead (i.e. in the future) by this many packets from the last received packet default value: 3000
  • rtp-max-misorder <integer [0 .. 32767]> : RTP packets will be discarded if they are too far behind (i.e. in the past) by this many packets from the last received packet default value: 100
  • rtp-dynamic-pt <string> : This payload format will be assumed for dynamic payload types (between 96 and 127) if it can't be determined otherwise with out-of-band mappings (SDP) default value: NULL

Source code

This page is part of official VLC media player Documentation (User GuideStreaming HowToHacker GuideModules)
Please read the Documentation Editing Guidelines before you edit the documentation
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.