FreeBSD manual
download PDF document: librtmp.3.pdf
LIBRTMP(3) FreeBSD Library Functions Manual LIBRTMP(3)
NAME
librtmp - RTMPDump Real-Time Messaging Protocol API
LIBRARY
RTMPDump RTMP (librtmp, -lrtmp)
SYNOPSIS
#include <librtmp/rtmp.h>
DESCRIPTION
The Real-Time Messaging Protocol (RTMP) is used for streaming
multimedia content across a TCP/IP network. This API provides most
client functions and a few server functions needed to support RTMP,
RTMP tunneled in HTTP (RTMPT), encrypted RTMP (RTMPE), RTMP over
SSL/TLS (RTMPS) and tunneled variants of these encrypted types (RTMPTE,
RTMPTS). The basic RTMP specification has been published by Adobe but
this API was reverse-engineered without use of the Adobe specification.
As such, it may deviate from any published specifications but it
usually duplicates the actual behavior of the original Adobe clients.
The RTMPDump software package includes a basic client utility program
in rtmpdump(1), some sample servers, and a library used to provide
programmatic access to the RTMP protocol. This man page gives an
overview of the RTMP library routines. These routines are found in the
-lrtmp library. Many other routines are also available, but they are
not documented yet.
The basic interaction is as follows. A session handle is created using
RTMP_Alloc() and initialized using RTMP_Init(). All session parameters
are provided using RTMP_SetupURL(). The network connection is
established using RTMP_Connect(), and then the RTMP session is
established using RTMP_ConnectStream(). The stream is read using
RTMP_Read(). A client can publish a stream by calling
RTMP_EnableWrite() before the RTMP_Connect() call, and then using
RTMP_Write() after the session is established. While a stream is
playing it may be paused and unpaused using RTMP_Pause(). The stream
playback position can be moved using RTMP_Seek(). When RTMP_Read()
returns 0 bytes, the stream is complete and may be closed using
RTMP_Close(). The session handle is freed using RTMP_Free().
All data is transferred using FLV format. The basic session requires an
RTMP URL. The RTMP URL format is of the form
rtmp[t][e|s]://hostname[:port][/app[/playpath]]
Plain rtmp, as well as tunneled and encrypted sessions are supported.
Additional options may be specified by appending space-separated
key=value pairs to the URL. Special characters in values may need to be
escaped to prevent misinterpretation by the option parser. The escape
encoding uses a backslash followed by two hexadecimal digits
representing the ASCII value of the character. E.g., spaces must be
escaped as \20 and backslashes must be escaped as \5c.
OPTIONS
Network Parameters
These options define how to connect to the media server.
app=name
Name of application to connect to on the RTMP server. Overrides
the app in the RTMP URL. Sometimes the librtmp URL parser cannot
determine the app name automatically, so it must be given
explicitly using this option.
tcUrl=url
URL of the target stream. Defaults to
rtmp[t][e|s]://host[:port]/app.
pageUrl=url
URL of the web page in which the media was embedded. By default
no value will be sent.
swfUrl=url
URL of the SWF player for the media. By default no value will be
sent.
flashVer=version
Version of the Flash plugin used to run the SWF player. The
default is "LNX 10,0,32,18".
conn=type:data
Append arbitrary AMF data to the Connect message. The type must
be B for Boolean, N for number, S for string, O for object, or Z
for null. For Booleans the data must be either 0 or 1 for FALSE
or TRUE, respectively. Likewise for Objects the data must be 0
or 1 to end or begin an object, respectively. Data items in
subobjects may be named, by prefixing the type with 'N' and
specifying the name before the value, e.g. NB:myFlag:1. This
option may be used multiple times to construct arbitrary AMF
sequences. E.g.
conn=B:1 conn=S:authMe conn=O:1 conn=NN:code:1.23 conn=NS:flag:ok conn=O:0
Session Parameters
These options take effect after the Connect request has succeeded.
playpath=path
Overrides the playpath parsed from the RTMP URL. Sometimes the
rtmpdump URL parser cannot determine the correct playpath
automatically, so it must be given explicitly using this option.
playlist=0|1
If the value is 1 or TRUE, issue a set_playlist command before
sending the play command. The playlist will just contain the
current playpath. If the value is 0 or FALSE, the set_playlist
command will not be sent. The default is FALSE.
live=0|1
Specify that the media is a live stream. No resuming or seeking
in live streams is possible.
subscribe=path
Name of live stream to subscribe to. Defaults to playpath.
start=num
Start at num seconds into the stream. Not valid for live
streams.
timeout=num
Timeout the session after num seconds without receiving any data
from the server. The default is 120.
Security Parameters
These options handle additional authentication requests from the
server.
token=key
Key for SecureToken response, used if the server requires
SecureToken authentication.
jtv=JSON
JSON token used by legacy Justin.tv servers. Invokes
NetStream.Authenticate.UsherToken
swfVfy=0|1
If the value is 1 or TRUE, the SWF player is retrieved from the
specified swfUrl for performing SWF Verification. The SWF hash
and size (used in the verification step) are computed
automatically. Also the SWF information is cached in a .swfinfo
file in the user's home directory, so that it doesn't need to be
retrieved and recalculated every time. The .swfinfo file records
the SWF URL, the time it was fetched, the modification timestamp
of the SWF file, its size, and its hash. By default, the cached
info will be used for 30 days before re-checking.
swfAge=days
Specify how many days to use the cached SWF info before re-
checking. Use 0 to always check the SWF URL. Note that if the
check shows that the SWF file has the same modification
timestamp as before, it will not be retrieved again.
EXAMPLES
An example character string suitable for use with RTMP_SetupURL():
"rtmp://flashserver:1935/ondemand/thefile swfUrl=http://flashserver/player.swf swfVfy=1"
ENVIRONMENT
HOME The value of $HOME is used as the location for the .swfinfo
file.
FILES
$HOME/.swfinfo
Cache of SWF Verification information
SEE ALSO
rtmpdump(1), rtmpgw(8)
AUTHORS
Andrej Stepanchuk, Howard Chu, The Flvstreamer Team
<http://rtmpdump.mplayerhq.hu>
RTMPDump v2.4 2011-07-20 LIBRTMP(3)