Broccoli Products home | contact us | about us
(by Lou Burne, last updated 31-JAN-2011)
.NET RTMP CLIENT LIBRARY
Project Summary
This is a guide for C# developers who want to connect to an RTMP server and download streamed content. To introduce the project I will start by describing the RTMP protocol and the quickest way to implement an RTMP client using RtmpClient, and then explain the sample projects and development advice available.

The libraries are packaged as zip files. Each zip file includes the RtmpClient library (BroccoliProducts.RtmpClient), and a low level library (BroccoliProducts.LowLevel) that the RtmpClient library uses.

The most recent builds are as follows:
File: RtmpClient32_34.zip   MOST RECENT BUILD x32
Current Build: BroccoliProducts.RtmpClient32.dll   1.4.32.34   (1st February 2012)
Current Build: BroccoliProducts.LowLevel32.dll   1.4.32.228   (7th December 2011)
System Requirements:    Windows XP, Windows 7
File: RtmpClient64_34.zip   MOST RECENT BUILD x64
Current Build: BroccoliProducts.RtmpClient64.dll   1.4.64.34   (1st February2012)
Current Build: BroccoliProducts.LowLevel64.dll   1.4.64.228   (7th December 2011)
System Requirements:    Windows 7 (x64)
Previous builds and change history can be found in the build archive.
What is RTMP?
RTMP (Real Time Messaging Protocol) is the dominant protocol for streaming audio and video content over the Internet. If you watch web-TV or listen to Internet radio, the chances are the data is being transmitted as RTMP messages (or one of its variants), from an RTMP server, to an RTMP client embedded in your browser. The most widely used RTMP client is Adobe's Flash Player.

RTMP streams data in three separate channels, or sub-streams - audio data, video data and meta-data. For a film, the audio-data is the soundtrack, the video-data is the images. For audio streaming, such as mp3 files, there is no video data. The meta-data describes the format of the video and audio data, for example, the dimensions of the video (e.g. 640x480), or the duration of the audio track. The main body of meta-data arrives when streaming starts.

RTMP is a complex protocol. It is owned by Adobe, and Adobe's official RTMP specification is not complete. The majority of usable information available on the workings of RTMP has been discovered by software developers' reverse engineering raw network port data. If your application requirement is to grab streamed RTMP data from a media server, a freely available .Net RTMP client library will save you a lot of time.
The RTMP Client Library
The RTMP Client Library (BroccoliProducts.RtmpClient) provides a simple interface to an RTMP Server, with enough functionality to connect, disconnect, invoke commands, open and delete streams, and control the flow of the stream (pause, seek etc...). There are also classes to help you roll-your-own RTMP messages, and a feature for pre-processing incoming RTMP messages.
Connection Help
If you cannot connect to an RTMP source using RtmpClient, or the download does not complete, please send us the details of the RTMP server in the boxes below.  The RTMP server must be on the Internet for us to connect to.

Please do not send us details of RTMP servers on an address that begins with 192.168, for example, 192.168.1.12, as this is most likely to be an internal network address for your network, and inaccessible to anyone else.
Server:    Mandatory
Port: Mandatory
App: Mandatory
TcUrl: Mandatory
Stream: Mandatory
Your email: Mandatory
Comments:
Sample Projects
To develop with RtmpClient a good start is to look at the some of the sample projects.

Each sample project is a simple console applications that demonstrates downloading RTMP data from the Internet and saving it to a file or displaying it on screen. 

These sample projects have compiled and run on Windows 7 with VS2010. If you want to run these programs, make sure you include a reference to the BroccoliProducts.RtmpClient library.

The sample projects include:

FileDump Streams a file from an RTMP server and saves it to an FLV file.

LiveTv Streams a live stream of news or television into an FLV file.
BBC Radio Downloader    Downloads a BBC radio programme to an FLV file, which can then be converted to an MP3.
Red5 Servers Downloading a stream from a Red5 server.
Tinychat Implementing a chatroom application using an online service.

There is a technical reference that documents the classes in the RtmpClient, and some additional development notes.

For troubleshooting an RtmpClient project see the development FAQ.

A list of online RTMP servers that can be used for testing can be found in the feed directory.
More information
Contact form 
Use the contact form to send comments and requests for information to Broccoli Products.
Topic:
Message:
Email:
Broccoli Products Ltd © 1998-2012 Broccoli Products Ltd
Reg Number: 2895355
Reg Office: 27 Old Gloucester Street, London. WC1N 3AX
Privacy Policy
Copyright Notice
Liability Disclaimer
Contact Us