211 lines
7.0 KiB
Groff
211 lines
7.0 KiB
Groff
.TH LIBRTMP 3 "2011-07-20" "RTMPDump v2.4"
|
|
.\" Copyright 2011 Howard Chu.
|
|
.\" Copying permitted according to the GNU General Public License V2.
|
|
.SH NAME
|
|
librtmp \- RTMPDump Real-Time Messaging Protocol API
|
|
.SH LIBRARY
|
|
RTMPDump RTMP (librtmp, -lrtmp)
|
|
.SH SYNOPSIS
|
|
.B #include <librtmp/rtmp.h>
|
|
.SH 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
|
|
.BR 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
|
|
.BR RTMP_Alloc ()
|
|
and initialized using
|
|
.BR RTMP_Init ().
|
|
All session parameters are provided using
|
|
.BR RTMP_SetupURL ().
|
|
The network connection is established using
|
|
.BR RTMP_Connect (),
|
|
and then the RTMP session is established using
|
|
.BR RTMP_ConnectStream ().
|
|
The stream is read using
|
|
.BR RTMP_Read ().
|
|
A client can publish a stream by calling
|
|
.BR RTMP_EnableWrite ()
|
|
before the
|
|
.BR RTMP_Connect ()
|
|
call, and then using
|
|
.BR RTMP_Write ()
|
|
after the session is established.
|
|
While a stream is playing it may be paused and unpaused using
|
|
.BR RTMP_Pause ().
|
|
The stream playback position can be moved using
|
|
.BR RTMP_Seek ().
|
|
When
|
|
.BR RTMP_Read ()
|
|
returns 0 bytes, the stream is complete and may be closed using
|
|
.BR RTMP_Close ().
|
|
The session handle is freed using
|
|
.BR RTMP_Free ().
|
|
|
|
All data is transferred using FLV format. The basic session requires
|
|
an RTMP URL. The RTMP URL format is of the form
|
|
.nf
|
|
rtmp[t][e|s]://hostname[:port][/app[/playpath]]
|
|
.fi
|
|
|
|
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 \fB\\20\fP and backslashes must be escaped as \fB\\5c\fP.
|
|
.SH OPTIONS
|
|
.SS "Network Parameters"
|
|
These options define how to connect to the media server.
|
|
.TP
|
|
.BI socks= host:port
|
|
Use the specified SOCKS4 proxy.
|
|
.SS "Connection Parameters"
|
|
These options define the content of the RTMP Connect request packet.
|
|
If correct values are not provided, the media server will reject the
|
|
connection attempt.
|
|
.TP
|
|
.BI 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.
|
|
.TP
|
|
.BI tcUrl= url
|
|
URL of the target stream. Defaults to rtmp[t][e|s]://host[:port]/app.
|
|
.TP
|
|
.BI pageUrl= url
|
|
URL of the web page in which the media was embedded. By default no
|
|
value will be sent.
|
|
.TP
|
|
.BI swfUrl= url
|
|
URL of the SWF player for the media. By default no value will be sent.
|
|
.TP
|
|
.BI flashVer= version
|
|
Version of the Flash plugin used to run the SWF player. The
|
|
default is "LNX 10,0,32,18".
|
|
.TP
|
|
.BI 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.
|
|
.nf
|
|
conn=B:1 conn=S:authMe conn=O:1 conn=NN:code:1.23 conn=NS:flag:ok conn=O:0
|
|
.fi
|
|
.SS "Session Parameters"
|
|
These options take effect after the Connect request has succeeded.
|
|
.TP
|
|
.BI 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.
|
|
.TP
|
|
.BI 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.
|
|
.TP
|
|
.BI live= 0|1
|
|
Specify that the media is a live stream. No resuming or seeking in
|
|
live streams is possible.
|
|
.TP
|
|
.BI subscribe= path
|
|
Name of live stream to subscribe to. Defaults to
|
|
.IR playpath .
|
|
.TP
|
|
.BI start= num
|
|
Start at
|
|
.I num
|
|
seconds into the stream. Not valid for live streams.
|
|
.TP
|
|
.BI stop= num
|
|
Stop at
|
|
.I num
|
|
seconds into the stream.
|
|
.TP
|
|
.BI buffer= num
|
|
Set buffer time to
|
|
.I num
|
|
milliseconds. The default is 30000.
|
|
.TP
|
|
.BI timeout= num
|
|
Timeout the session after
|
|
.I num
|
|
seconds without receiving any data from the server. The default is 120.
|
|
.SS "Security Parameters"
|
|
These options handle additional authentication requests from the server.
|
|
.TP
|
|
.BI token= key
|
|
Key for SecureToken response, used if the server requires SecureToken
|
|
authentication.
|
|
.TP
|
|
.BI jtv= JSON
|
|
JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken
|
|
.TP
|
|
.BI swfVfy= 0|1
|
|
If the value is 1 or TRUE, the SWF player is retrieved from the
|
|
specified
|
|
.I 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
|
|
.I .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.
|
|
.TP
|
|
.BI 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.
|
|
.SH EXAMPLES
|
|
An example character string suitable for use with
|
|
.BR RTMP_SetupURL ():
|
|
.nf
|
|
"rtmp://flashserver:1935/ondemand/thefile swfUrl=http://flashserver/player.swf swfVfy=1"
|
|
.fi
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.B HOME
|
|
The value of
|
|
.RB $ HOME
|
|
is used as the location for the
|
|
.I .swfinfo
|
|
file.
|
|
.SH FILES
|
|
.TP
|
|
.I $HOME/.swfinfo
|
|
Cache of SWF Verification information
|
|
.SH "SEE ALSO"
|
|
.BR rtmpdump (1),
|
|
.BR rtmpgw (8)
|
|
.SH AUTHORS
|
|
Andrej Stepanchuk, Howard Chu, The Flvstreamer Team
|
|
.br
|
|
<http://rtmpdump.mplayerhq.hu>
|