Software/Farstream

Farstream - Audio/Video Communications Framework

The Farstream (formerly Farsight) project is an effort to create a framework to deal with all known audio/video conferencing protocols. On one side it offers a generic API that makes it possible to write plugins for different streaming protocols, on the other side it offers an API for clients to use those plugins.

The main target clients for Farstream are Instant Messaging applications. These applications should be able to use Farstream for all their Audio/Video conferencing needs without having to worry about any of the lower level streaming and NAT traversal issues.

Farstream forms an integral part of the Telepathy framework. It is used by Empathy through the Telepathy-Farstream library. The Telepathy-Farstream library binds it to the Connection Managers via D-Bus and the Telepathy Media Stream Spec and is used for all their streaming requirements.

Telepathy and Farstream constitute the first implementation of the Jingle XMPP protocol.

Farstream deals with all the streaming specific parts of the protocol and leaves the signaling to the clients. The Farstream plugin API is heavily influenced by the ICE (Interactive Connectivity Establishment) RFC draft. This API allows for an easy interaction between the signaling and streaming parts of the sessions.

Farstream uses GStreamer for all it's media streaming needs. A large part of the project is to provide the required elements and improvements to GStreamer in order to deal with streaming protocols such as RTP.

Farstream will also be using the GstFilters library to make it easier to build the GStreamer pipelines.

Farstream is written in C/Glib and uses GObjects extensively. Python bindings are available for Farstream.

This project is sponsored by http://www.collabora.com/

License

Farstream is licensed under the GNU Lesser General Public License, version 2.1 or later.

Documentation

The old core API documentation is available for Farsight2 and its plugins.

There is a Software/Farstream/FAQ and some videos/slides from Software/Farstream/Talks about Farstream.

The H263/H263+/H263++ RTP fiasco is explained in Software/Farstream/H263Jungle.

A page documenting the new RTP design for GStreamer : Software/Farstream/GstRtpDesign. The farstream API is being discussed Software/Farstream/Design and the list of left todo Software/Farstream/Todo

Available Plugins

Available Transmitters

Transmitters are plugins that are used by Farstream plugins in order to implement lower level connectivity establishment methods such as ICE or GTalk-P2P.


Git repositories

Browse the Farstream development tree.
Fetch it using: git clone git://git.collabora.co.uk/git/farstream.git


Releases

http://freedesktop.org/software/farstream/releases


Mailing list and IRC

You can reach the developers and other users of Farstream at our mailing list or in the #farstream channel on freenode.


Please report bugs in the freedesktop.org bugzilla.