In negotiating a connection, an RTMP client sends and receives a data stream containing multiple elements, as a single command line. An on-demand stream typically includes the following elements:
For a Limelight server • -r rtmp:// • -a: authentication elements (the alternative --app may be used instead) • Typically in the format -?as=&av=&te=&mp=&et=&fmta-token= • : A path address. For example, a1414/e3 • : For example, as=adobe-hmac-sha256 • : For example, av=1 • : For example, te=connect • : Typically, two or more comma-separated URL addresses, for alternative bitrate streams (MPEG format, MP3 or MP4) • : Typically, a ten-character number (numerical) • : Typically, a 64-character authentication (auth) string [that is, an authentication token] (alphanumeric) • -y: playpath (URL address of the desired bitstream, one of those specified in mp above) • Typically, in the format mp3:/.mp3 or mp4:/.mp4 • -o: Output filename The foregoing are typically the only elements (or "switches") that are essential to a connection, if neither Tunnelling nor Encryption are in use by the server. Although other elements may be encountered in practice, they are normally non-essential. Hence the following elements are typically sent by the client software application, as a single command line - rtmpdump -r rtmp://xxxxxxxx.fcod.llnwd.net -a path?as=data&av=data&te=data&mp=data&et=data&fmta-token=data -y mp4:URL/filename.mp4 -o file_mp4.flv The parts comprising the -a (or --app) element must be incorporated in it in the order shown above, as the sequence in which its parts are received by the RTMP server is critical. The authentication strings (et= and fmta-token=) contain session information, so will change on each fresh connection made to the server (which in practice typically means they will expire if a new session is begun, not literally on every attempt to resume a connection), but the other elements will not usually vary from session to session.
For an Akamai server The command line is typically as above, except that the -a (or --app) element contains the following parts instead - • : Typically, a 62-character authentication (auth) string [i.e. an authentication token] (alphanumeric) • aifp: For example, aifp=v001 • : Typically, the URL address of the stream Hence the following elements are typically sent by the client software application, as a single command line - program.exe -r rtmp://xxxxxxx.edgefcs.net -a ondemand?auth=data&aifp=data&slist=data -y mp3:URL/filename -o file_mp3.flv The parts comprising the -a (or --app) element must be incorporated in it in the order shown above, as the sequence in which its parts are received by the RTMP server is critical. The authentication string (auth=) contains session information, so will change on each fresh connection made to the server (typically, if a new session is begun, e.g. the computer is restarted, not literally on every attempt to resume a connection). The other parts will not usually vary from session to session.
Note - The above describes the simplified form, whereby the stream is first saved to the user's hard disk, to be played back thereafter in a media player capable of playing an FLV encoded file (H.263 or H.264 encoding), such as
GOM Player. If it's desired, instead, to play the stream directly from the RTMP server, thus giving immediate playback, additional elements will be needed in the command line including - -f: This specifies the version of the
Flash plugin installed on the user's computer. For example, -f "WIN 9,0,260,0" would indicate the user has the Windows version of Flash Player 9, release 260. -W: The capital W command. This is the URL address of the SWF player used to play the stream, as indicated by the web page from which the stream is derived. For example, path/9player.swf?revision=18269_21576. == Live streams ==