Audio/video stream recording forums

Attention Visitor:
You may have to register or log in before you can post:
  • Click the register link to sign up.
  • Registered members please fill in the form below and click the "Log in" button.
To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Audio/video stream recording forums > Streaming media recording forum > rtmpdump
Register FAQ Members List Calendar Mark Forums Read

Reply Post New Thread
 
Thread Tools Display Modes
  #1  
Old 11-10-2010, 06:52 AM
any ANONYMOUS forum user any ANONYMOUS forum user is offline
any user of the forum who preferred to post anonymously
 
Join Date: Aug 2011
Location: Server of stream-recorder.com
Posts: 211
any ANONYMOUS forum user is on a distinguished road
Default

What is librtmp and how can I used in my GUI Windows application


What exactly is librtmp and how can I used in my GUI Windows application?
Reply With Quote
  #2  
Old 11-11-2010, 07:12 AM
Stream Recorder
 
Posts: n/a
Default

Re: What is librtmp and how can I used in my GUI Windows application


NAME
librtmpRTMPDump Real-Time Messaging Protocol API

LIBRTMP LIBRARY
RTMPDump RTMP (librtmp, -lrtmp)

LIBRTMP SYNOPSIS
#include <librtmp/rtmp.h>

LIBRTMP 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, some sample servers, and a library used to provide programmatic access to the RTMP protocol. This 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
Code:
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.

LIBRTMP OPTIONS

librtmp Network Parameters
These options define how to connect to the media server.
  • socks=host:port
    Use the specified SOCKS4 proxy.

librtmp 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.
  • 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

librtmp 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.
  • stop=num
    Stop at num seconds into the stream.
  • buffer=num
    Set buffer time to num milliseconds. The default is 30000.
  • timeout=num
    Timeout the session after num seconds without receiving any data from the server. The default is 120.

librtmp Security Parameters
These options handle additional authentication requests from the server.
  • token=key
    Key for SecureToken response, used if the server requires SecureToken authentication.
  • 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.

LIBRTMP EXAMPLES
An example character string suitable for use with RTMP_SetupURL():
Code:
rtmp://flashserver:1935/ondemand/thefile swfUrl=http://flashserver/player.swf swfVfy=1
LIBRTMP ENVIRONMENT

LIBRTMP 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
Reply With Quote
Reply Post New Thread
Tags:



Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -6. The time now is 03:35 AM.


Powered by All-streaming-media.com; 2006-2011
vB forum hacked with Zoints add-ons